Selaa lähdekoodia

代码规范

master
qdjjx 4 vuotta sitten
vanhempi
commit
bf570f48fd

+ 672
- 0
团队/2020.10.25代码规范.md Näytä tiedosto

@@ -0,0 +1,672 @@
1
+> 本篇代码规范中的C#部分源自苏州盛派网络科技有限公司创始人Jeffrey Su的《C#编码规范》,本篇是在Markdown下的复述和实践,并且加入前端和手机端的代码规范。
2
+
3
+# 1、概述
4
+
5
+> 1.1 为什么需要代码规范
6
+
7
+- 便于团队协作和维护
8
+- 方便阅读
9
+- 美观
10
+
11
+> 1.2 类型
12
+
13
+- Pascal: BackColor
14
+- Camel: backColor
15
+
16
+建议后端使用Pascal规范,前端使用Camel规范。
17
+
18
+# 2、代码外观
19
+
20
+> 2.1 每行字符数
21
+
22
+不超过110个字符。
23
+
24
+> 2.2 换行
25
+
26
+当每行即将超出110个字符时,优先在逗号后换行,其次在操作符前换行。
27
+
28
+> 2.3 缩进
29
+
30
+4个空格。
31
+
32
+Viusal Studio可在文本编辑器中设置。
33
+
34
+> 2.4 空行
35
+
36
+以下情况空两行
37
+```
38
+--接口和类的定义之间
39
+--枚举和类的定义之间
40
+--类与类的定义之间
41
+```
42
+
43
+以下情况空一行
44
+```
45
+--方法与方法之间
46
+--属性与属性之间
47
+--方法中变量声明与语句之间
48
+--方法的不同逻辑块之间
49
+--方法的返回语句与其它语句之间
50
+--属性与方法之间
51
+--属性与字段之间
52
+--方法与字段之间
53
+--注释与其它语句间
54
+```
55
+
56
+> 2.5 空格
57
+
58
+关键字和左括号之间用空格
59
+```
60
+while (true)
61
+```
62
+
63
+方法名和左括号之间不使用空格
64
+```
65
+SayHello(string name)
66
+```
67
+
68
+方法中的多个参数用逗号隔开,每个逗号后加一个空格
69
+```
70
+ShowMessage(string name, int age)
71
+```
72
+
73
+二元操作符需要用空格和其后面的操作数隔开
74
+```
75
+a += c + d;
76
+a = (a + b) / (c * d);
77
+```
78
+
79
+一元操作符、++、--与操作数之间不需要空格
80
+```
81
+n++
82
+```
83
+
84
+语句中的表达式之间用空格隔开
85
+```
86
+foreach(Person p in People)
87
+```
88
+
89
+> 2.6 括号
90
+
91
+左括号不要紧靠关键字,中间用一个空格隔开
92
+```
93
+if (a > 0)
94
+```
95
+
96
+方法名之后的左括号不需要空格
97
+```
98
+void SayHello(string name)
99
+```
100
+
101
+> 2.7 花括号
102
+
103
+左括号`{`放在关键字或方法名的下一行并与之对齐
104
+```
105
+if (true)
106
+{
107
+
108
+}
109
+
110
+public int Add(int x, int y)
111
+{
112
+
113
+}
114
+```
115
+
116
+左括号与右括号对齐。  
117
+左括号单独成行,不与任何语句并列一行。  
118
+右括号建议加一个注释,方便找到与之对应的左括号。
119
+```
120
+while (true)
121
+{
122
+    if (isValid == true)
123
+    {
124
+
125
+    }//ifvalid
126
+    else
127
+    {
128
+
129
+    }//not valid
130
+}//end forever
131
+```
132
+
133
+# 3、注释
134
+
135
+- 修改代码的同时,也需要修改注释
136
+- 注释内容:有关用途、假设、限制、为什么存在等
137
+- 注释不应该产生多义:阐明代码就足够,不如注释中不该出现幽默
138
+- 注释中的印刷框:不推荐
139
+- 无关注释:在发布之前去掉
140
+- 对代码段的注释过于复杂:建议重构代码段
141
+- 对错误的修复和解决方法:建议使用注释
142
+
143
+> 3.1 文档型注释
144
+
145
+在接口、类、方法、属性、字段中使用注释,方便阅读和生成代码文档。
146
+```
147
+///<summary>
148
+///<para>
149
+///this is description
150
+///</para>
151
+///</summary>
152
+```
153
+
154
+> 3.2 不再使用或者临时屏蔽的代码。
155
+```
156
+/*
157
+    [修改标识]
158
+    [修改原因]
159
+*/
160
+```
161
+> 3.3 单行注释
162
+
163
+```
164
+//this is comment
165
+private int number;
166
+
167
+if(a=='')//always true
168
+{
169
+
170
+}//always true
171
+    
172
+```
173
+
174
+> 3.4 C#中的注释标签
175
+
176
+- 将说明中的文本标记为代码.
177
+```
178
+<c>contentt</c>
179
+```
180
+- <remarks>或<returns>等标记内的<para>
181
+```
182
+<para>content</para>
183
+```
184
+- 描述方法参数
185
+```
186
+<param name='name'>description</param>
187
+```
188
+- paramref
189
+```
190
+<paramref name="name" />
191
+```
192
+- see
193
+```
194
+<see cref="memeber" />
195
+```
196
+- seealso
197
+```
198
+<seealso cref="member" />
199
+```
200
+- example
201
+```
202
+<example>description</example>
203
+```
204
+- code
205
+```
206
+<code>content</code>
207
+```
208
+- summary
209
+```
210
+<summary>description</summary>
211
+```
212
+- exception
213
+```
214
+<exception cref="member">description</exception>
215
+```
216
+- include
217
+- list
218
+- permission
219
+- remarks
220
+- returns
221
+- value
222
+
223
+# 4、申明
224
+
225
+> 4.1 每行声明一个变量,并按字母顺序排列
226
+```
227
+int level;//remark
228
+int size;//remark
229
+```
230
+> 4.2 变量声明时初始化
231
+```
232
+int a = 0;
233
+```
234
+> 4.3 变量放在代码块的开始处
235
+```
236
+void MyMethod()
237
+{
238
+    int a = 0;
239
+    ...
240
+}
241
+```
242
+# 5、命名规范
243
+
244
+- 避免多义: AnalyzeThis()不推荐
245
+- 属性名称不需要包含类名:Book.BookTitle,不推荐
246
+- 在变量名称末尾或开头加计算限定符:MyAvg
247
+- 在变量名中使用互补配对:min/max, begin/end, open/close
248
+- bool类型变量名加is: isEnabled
249
+- 状态变量,具有多个可能的状态:documentType
250
+- 在循环中带上语义
251
+```
252
+int NUM_DAYS_IN_WEEK = 10;
253
+for (int i = 0; i <=NUM_DAYS_IN_WEEK; i++)
254
+{
255
+
256
+}
257
+```
258
+
259
+> 5.1 大小写规则
260
+
261
+- 类:AppDomain
262
+- 枚举类型:ErrorLevel
263
+- 枚举值:FatalError
264
+- 事件:ValueChanged
265
+- 异常类:WebException
266
+- 只读静态字段:RedValue
267
+- 接口:IDisposable
268
+- 方法:ToString
269
+- 命名空间:System.Drawing
270
+- 属性:BackColor
271
+- 公共实例字段:RedValue
272
+- 受保护的实例字段:redValue
273
+- 私有的实例字段:redValue
274
+- 参数:typeName
275
+- 方法内的变量:backColor
276
+
277
+> 5.2 缩写
278
+
279
+- 计算机领域未被普遍接受的缩写:不推荐用
280
+- 计算机领域众所周知的缩写:推荐用。比如UI作为User Interface的缩写
281
+- 仅有两个字符的缩写:两个字符都大写。比如System.IO
282
+- 超出两个字符的缩写:使用Pascal或Camel。比如HtmlButton
283
+- 参数名称中可以缩写吗:不推荐
284
+
285
+> 5.3 命名空间
286
+
287
+- 格式:CompanyName.TechnologyName或ProjectName.[.Feature][.Design]
288
+- 命名空间和类不能使用同样的名字
289
+
290
+> 5.4 类
291
+
292
+- 使用Pascal:MyClass
293
+- 使用名称或名词短语
294
+- 避免缩写,除非缩写是大众周知的
295
+- 不使用类型前缀,推荐使用`FileStream`,不推荐使用`CFileStream`
296
+- 不推荐使用下划线
297
+- 有时可以以I开头:IdentityStore
298
+- 派生类的第二部分是基类名称:`ApplicationException`
299
+
300
+> 5.5 接口
301
+
302
+- 使用描述性名词:`IComponent`
303
+- 使用名词短语:`ICustomAttributeProvider`
304
+- 使用形容词:`IPersistable`
305
+- 使用Pascal: 
306
+- 少用缩写
307
+- I前缀
308
+- 不要使用下划线
309
+
310
+> 5.6 特性
311
+```
312
+public class ObsoleteAttribute
313
+{}
314
+```
315
+
316
+> 5.7 枚举
317
+
318
+- 使用Pascal
319
+- 少用缩写
320
+- 不要在Enum类型名称上使用Enum后缀
321
+- 对大多数Enume类型使用单数名称
322
+
323
+
324
+> 5.8 参数
325
+
326
+- 具有描述性
327
+- 使用Camel
328
+- 不要使用保留参数
329
+
330
+> 5.9 方法
331
+- 使用动词或动词短语
332
+- 使用Pascal
333
+
334
+> 5.10 属性
335
+
336
+- 使用名词或名词短语
337
+- 使用Pascal
338
+
339
+> 5.11 事件
340
+
341
+- 事件处理程序名称使用EvengHandler后缀
342
+- 使用`sender`和`e`两个参数,`sender`表示引发事件的对象,`sender`的参数类型始终是`object`类型,即使在可以使用特定类型时也如此。与事件相关的状态封装在名为`e`的参数中,对`e`参数类型使用适当而特定的事件类。
343
+- 用`EventArgs`后缀命名事件参数类
344
+- 使用动词命名事件
345
+- 使用进行时:`Closing`
346
+- 使用过去式:`Closed`
347
+- 不要使用BeforeXxx/AfterXxx命名模式
348
+- 不要在类型的事件申明上使用前缀或后缀。比如,使用`Close`,不使用`OnClose`
349
+- 在派生类中可以重写的事件,应在类型上提供一个受保护的方法,比如`OnXxx`
350
+
351
+定义事件处理程序:
352
+```
353
+public delegate void MouseEventHandler(object sender, MouseEventArgs e);
354
+
355
+public class MouseEventArgs : EventArgs
356
+{
357
+    int x;
358
+    int y;
359
+
360
+    public MouseEventArgs(int x, int y)
361
+    {
362
+        this.x = x;
363
+        this.y = y;
364
+    }
365
+
366
+    public int X
367
+    {
368
+        get{
369
+            return x;
370
+        }
371
+    }
372
+
373
+    public int Y
374
+    {
375
+        get
376
+        {
377
+            return y;
378
+        }
379
+    }
380
+}
381
+```
382
+> 5.12 常量
383
+
384
+所有单词大写,多个单词之间用`_`分隔。
385
+```
386
+public const string Page_Title = "Welcome";
387
+```
388
+
389
+> 5.13 字段
390
+
391
+- private, protected类型的字段使用Camel
392
+- public类型的字段使用Pascal
393
+- 不轻易使用缩写,除非是众所周知的缩写
394
+- 字段名称前不加前缀。比如,`g_`或`s_`
395
+- 公共静态只读字段
396
+```
397
+public struct Color
398
+{
399
+    public static readonly Color Red = new Color();
400
+
401
+    public Color(int rgb)
402
+    {
403
+        public Color(byte r, byte g, byte, b)
404
+        {
405
+
406
+        }
407
+    }
408
+}
409
+```
410
+
411
+> 5.14 静态字段
412
+
413
+- 使用名词、名词短语或者名词缩写
414
+- 使用Pascal
415
+
416
+
417
+> 5.15 集合
418
+
419
+建议使用复数。
420
+
421
+> 5.16 措词
422
+
423
+不要将以下名称作为类名称:
424
+```
425
+AddHandler AddressOf  Alias  And  Ansi
426
+As  Assembly  Auto  Base  Boolean
427
+ByRef  Byte  ByVal  Call  Case
428
+Catch  CBool  CByte  Cchar  CDate
429
+CDec  CDbl  Char  Cint  Class
430
+CLng  CObj  Const  Cshort  CSng
431
+CStr  CType  Date  Decimal  Declare
432
+Default  Delegate  Dim  Do  Double
433
+Each  Else  ElseIf  End  Enum
434
+Erase  Error  Event  Exit  ExternalSource
435
+False  Finalize  Finally Float  For
436
+Friend  Function  Get  GetType  Goto
437
+Handles  If  Implements  Imports  In
438
+Inherits  Integer  Interface  Is  Let
439
+Lib  Like  Long  Loop  Me
440
+Mod  Module  MustInherit  MustOverride MyBase
441
+MyClass  Namespace  New  Next  Not
442
+Nothing  NotInheritable NotOverridable Object  On
443
+Option  Optional  Or  Overloads  Overridable
444
+Overrides ParamArray  Preserve  Private  Property
445
+Protected Public  RaiseEvent  ReadOnly  ReDim
446
+Region  REM  RemoveHandler  Resume  Return
447
+Select  Set  Shadows  Shared  Short
448
+Single  Static  Step  Stop  String
449
+Structure Sub  SyncLock  Then  Throw
450
+To  True  Try  TypeOf  Unicode
451
+Until  volatile  When  While  With
452
+WithEvents WriteOnly  Xor  Eval  extends
453
+instanceof package  var
454
+```
455
+
456
+# 6、语句
457
+
458
+> 6.1 每行一个语句
459
+
460
+> 6.2 复合语句
461
+
462
+- 子语句要缩进
463
+- 左花括号在父语句的下一行并与之对齐,单独成行
464
+- 即使只有一条子语句也不要省略花括号
465
+
466
+```
467
+while (d += s++)
468
+{
469
+    n++;
470
+}
471
+```
472
+> 6.3 return语句
473
+
474
+return语句不使用括号,除非能使返回值更加清晰。
475
+
476
+> 6.4 if, if-else, if else-if
477
+
478
+```
479
+if (condition)
480
+{
481
+
482
+}
483
+
484
+if (condition)
485
+{
486
+
487
+}
488
+else
489
+{
490
+
491
+}
492
+
493
+if (condition)
494
+{
495
+
496
+}
497
+else if (condition)
498
+{
499
+
500
+}
501
+else
502
+{
503
+
504
+}
505
+```
506
+
507
+> 6.5 for, foreach语句
508
+
509
+```
510
+for (initialization; condition; update)
511
+{
512
+
513
+}
514
+
515
+foreach (object obj in array)
516
+{
517
+
518
+}
519
+```
520
+
521
+> 6.6 while
522
+
523
+```
524
+while (condition)
525
+{
526
+
527
+}
528
+
529
+while (condition);
530
+```
531
+
532
+> 6.7 do-while
533
+
534
+```
535
+do
536
+{
537
+
538
+} while (condition);
539
+```
540
+
541
+> 6.8 switch-case
542
+```
543
+switch (condition)
544
+{
545
+    case 1:
546
+        statements;
547
+        break;
548
+    case 2:
549
+        statements;
550
+        break;
551
+    default:
552
+        statements;
553
+        break;
554
+}
555
+```
556
+> 6.9 try-catch
557
+
558
+```
559
+try
560
+{
561
+
562
+}
563
+catch (ExceptionClass ex)
564
+{
565
+
566
+}
567
+finally
568
+{
569
+
570
+}
571
+```
572
+
573
+> 6.10 using
574
+
575
+```
576
+using (object)
577
+{
578
+
579
+}
580
+```
581
+
582
+> 6.11 got
583
+```
584
+goto Label1:
585
+        statements;
586
+    Label:
587
+        statements;
588
+```
589
+# 7、其它
590
+
591
+> 7.1 文件头标注
592
+
593
+文件头顶格(没有空行或空格),放置协议或关键说明
594
+```
595
+#region Apache License Version 2.0
596
+/*----------------------------------------------------------------
597
+
598
+Copyright 2017 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
599
+
600
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
601
+except in compliance with the License. You may obtain a copy of the License at
602
+
603
+http://www.apache.org/licenses/LICENSE-2.0
604
+
605
+Unless required by applicable law or agreed to in writing, software distributed under the
606
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
607
+either express or implied. See the License for the specific language governing permissions
608
+and limitations under the License.
609
+
610
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
611
+
612
+----------------------------------------------------------------*/
613
+#endregion Apache License Version 2.0
614
+```
615
+紧跟协议或关键说明,为文件说明及版本更新内容
616
+如:
617
+```
618
+/*----------------------------------------------------------------
619
+    Copyright (C) 2017 Senparc
620
+
621
+    文件名:ModifyDomainApi.cs
622
+    文件功能描述:修改域名接口
623
+
624
+
625
+    创建标识:Senparc - 20170601
626
+
627
+
628
+    修改标识:Senparc - 20171201
629
+    修改描述:v1.7.3 修复ModifyDomainApi.ModifyDomain()方法判断问题
630
+        
631
+    修改标识:Senparc - 20171231
632
+    修改描述:v1.7.4 更新API地址
633
+        
634
+----------------------------------------------------------------*/
635
+```
636
+创建
637
+```
638
+其中“文件名”“文件功能描述”及“创建标识”必须在文件创建时时填写。
639
+
640
+“创建标识”上下各空 2 行。
641
+```
642
+
643
+修改
644
+```
645
+每次更新文件必须填写“修改标识”及对应的“修改描述”。“修改标识”下,需要填写“修改人”和“时间”,使用“ - ”分隔。
646
+
647
+每次修改填写的一组“修改标识”和“修改描述”中间不空行,每组修改信息上下各空 1 行(第一次修改是,上方空 2 行,配合“创建标识”标准)。
648
+```
649
+
650
+> 7.2 异步方法标记
651
+
652
+严格按照以下换行格式:
653
+```
654
+#if !NET35 && !NET40
655
+        #region 异步方法
656
+        
657
+        /// <summary>
658
+        /// 【异步方法】修改服务器地址 接口
659
+        /// </summary>
660
+        public static async Task<ModifyDomainResultJson> ModifyDomainAsync()
661
+        {
662
+            //...
663
+        }
664
+        
665
+        #endregion
666
+#endif
667
+```
668
+
669
+> 重点注意:<br>
670
+> 1、`#if` 和 `#region 异步方法` 中间没有空行,结束标签也是如此。<br>
671
+> 2、方法名称备注的 summary 信息必须以 `【异步方法】` 开头。<br>
672
+> 3、 #region 的下一行、#endregion 的上一行,应该为空行。

+ 27
- 0
实践/安装/2020胶州问题汇总.md Näytä tiedosto

@@ -1829,4 +1829,31 @@ D区
1829 1829
 第二排4、5 187ed53273b8
1830 1830
 第五排 2、3、4、5、7、9、187ed532a628
1831 1831
 第六排2、5、6、7、8、 187ed532bd34
1832
+```
1833
+
1834
+# 2020年10月21日
1835
+
1836
+```
1837
+二期雨棚关 1262
1838
+187ed532ba70 5
1839
+利群胶州购物广场,二期一层,1-3下班场景中删除
1840
+
1841
+一期天井和雨棚下班 1259
1842
+187ed5324c78 16,17,18,19 利群胶州购物广场,一期一层,B
1843
+187ed5322488 12,13,19
1844
+187ed53252e0 8
1845
+187ed53257a8 2,3,4,5,6 利群胶州购物广场,一期一层,C
1846
+187ed5329a0c 1 利群胶州购物广场,一期二层,A
1847
+187ed532a084 7,8,9,10 利群胶州购物广场,一期二层,C
1848
+187ed5328754 13,14 利群胶州购物广场,一期三层,B
1849
+187ed5323a58 2,4,5,6,7利群胶州购物广场,一期三层,B
1850
+187ed532a1fc 2,5 利群胶州购物广场,一期三层,B
1851
+187ed53208c4 7 利群胶州购物广场,一期四层,A
1852
+187ed5328af0 2,3,4,5
1853
+187ed532a2fc 2,11,12,13 利群胶州购物广场,一期四层,B
1854
+187ed53290f0 4,7 利群胶州购物广场,一期四层,C
1855
+187ed532933c 8,9
1856
+187ed5329bc8 2 利群胶州购物广场,一期三层,B
1857
+187ed5329254 2,4,5,7,9
1858
+187ed53298b0 8 利群胶州购物广场,一期一层,A
1832 1859
 ```

+ 17
- 0
实践/安装/固件更新等.md Näytä tiedosto

@@ -58,6 +58,23 @@
58 58
 - echo stop > /var/run/ProgramHB
59 59
 - /etc/init.d/uart_test start
60 60
 
61
+# 查看胶州模块
62
+```
63
+模块号:187ED53288D4
64
+IP:145
65
+替换固件:T25V1_3_0dbg.bin
66
+-- 确认安装putty
67
+sudo apt-get update
68
+sudo apt-get install putty
69
+-- 更新固件
70
+-- putty连模块
71
+192.168.88.145 22
72
+root abc123
73
+-- killall Uart_Test
74
+-- /etc/init.d/uart_test stop
75
+-- echo stop > /var/run/ProgramHB
76
+-- /etc/init.d/uart_test start
77
+```
61 78
 
62 79
 
63 80
 

+ 46
- 0
实践/安装/更换模块.md Näytä tiedosto

@@ -58,6 +58,52 @@ S3上班
58 58
 S3下班
59 59
 
60 60
 
61
+> 更新某个模块的所有开关
62
+
63
+```
64
+update KaiGuan Set Name='插座', Code='1' where Mac='187ed532d2cc' and LineAddress='1';
65
+update KaiGuan Set Name='插座', Code='2' where Mac='187ed532d2cc' and LineAddress='2';
66
+update KaiGuan Set Name='插座', Code='3' where Mac='187ed532d2cc' and LineAddress='3';
67
+update KaiGuan Set Name='插座', Code='4' where Mac='187ed532d2cc' and LineAddress='4';
68
+update KaiGuan Set Name='插座', Code='5' where Mac='187ed532d2cc' and LineAddress='5';
69
+update KaiGuan Set Name='插座', Code='6' where Mac='187ed532d2cc' and LineAddress='6';
70
+update KaiGuan Set Name='插座', Code='7' where Mac='187ed532d2cc' and LineAddress='7';
71
+update KaiGuan Set Name='插座', Code='8' where Mac='187ed532d2cc' and LineAddress='8';
72
+update KaiGuan Set Name='插座', Code='9' where Mac='187ed532d2cc' and LineAddress='9';
73
+update KaiGuan Set Name='插座', Code='10' where Mac='187ed532d2cc' and LineAddress='10';
74
+update KaiGuan Set Name='插座', Code='11' where Mac='187ed532d2cc' and LineAddress='11';
75
+update KaiGuan Set Name='插座', Code='12' where Mac='187ed532d2cc' and LineAddress='12';
76
+update KaiGuan Set Name='插座', Code='13' where Mac='187ed532d2cc' and LineAddress='13';
77
+update KaiGuan Set Name='插座', Code='14' where Mac='187ed532d2cc' and LineAddress='14';
78
+update KaiGuan Set Name='插座', Code='15' where Mac='187ed532d2cc' and LineAddress='15';
79
+update KaiGuan Set Name='插座', Code='16' where Mac='187ed532d2cc' and LineAddress='16';
80
+update KaiGuan Set Name='插座', Code='17' where Mac='187ed532d2cc' and LineAddress='17';
81
+update KaiGuan Set Name='插座', Code='18' where Mac='187ed532d2cc' and LineAddress='18';
82
+update KaiGuan Set Name='插座', Code='19' where Mac='187ed532d2cc' and LineAddress='19';
83
+update KaiGuan Set Name='插座', Code='20' where Mac='187ed532d2cc' and LineAddress='20';
84
+
85
+update KaiGuan Set Name='插座', Code='1' where Mac='187ed532d2cc' and LineAddress='1';
86
+update KaiGuan Set Name='筒灯', Code='2' where Mac='187ed532d2cc' and LineAddress='2';
87
+update KaiGuan Set Name='筒灯', Code='3' where Mac='187ed532d2cc' and LineAddress='3';
88
+update KaiGuan Set Name='筒灯', Code='4' where Mac='187ed532d2cc' and LineAddress='4';
89
+update KaiGuan Set Name='筒灯', Code='5' where Mac='187ed532d2cc' and LineAddress='5';
90
+update KaiGuan Set Name='筒灯', Code='6' where Mac='187ed532d2cc' and LineAddress='6';
91
+update KaiGuan Set Name='筒灯', Code='7' where Mac='187ed532d2cc' and LineAddress='7';
92
+update KaiGuan Set Name='筒灯', Code='8' where Mac='187ed532d2cc' and LineAddress='8';
93
+update KaiGuan Set Name='筒灯', Code='9' where Mac='187ed532d2cc' and LineAddress='9';
94
+update KaiGuan Set Name='筒灯', Code='10' where Mac='187ed532d2cc' and LineAddress='10';
95
+update KaiGuan Set Name='筒灯', Code='11' where Mac='187ed532d2cc' and LineAddress='11';
96
+update KaiGuan Set Name='筒灯', Code='12' where Mac='187ed532d2cc' and LineAddress='12';
97
+update KaiGuan Set Name='筒灯', Code='13' where Mac='187ed532d2cc' and LineAddress='13';
98
+update KaiGuan Set Name='筒灯', Code='14' where Mac='187ed532d2cc' and LineAddress='14';
99
+update KaiGuan Set Name='筒灯', Code='15' where Mac='187ed532d2cc' and LineAddress='15';
100
+update KaiGuan Set Name='筒灯', Code='16' where Mac='187ed532d2cc' and LineAddress='16';
101
+update KaiGuan Set Name='筒灯', Code='17' where Mac='187ed532d2cc' and LineAddress='17';
102
+update KaiGuan Set Name='插座', Code='18' where Mac='187ed532d2cc' and LineAddress='18';
103
+update KaiGuan Set Name='插座', Code='19' where Mac='187ed532d2cc' and LineAddress='19';
104
+update KaiGuan Set Name='筒灯', Code='20' where Mac='187ed532d2cc' and LineAddress='20';
105
+```
106
+
61 107
 > 14E38更换成14784
62 108
 
63 109
 - 确认缓存中是否有14784的数据

BIN
需求/办公楼智能照明系统V1.0.0需求文档.docx Näytä tiedosto


Loading…
Peruuta
Tallenna