回答編集履歴
6
夜に投稿した分ソースが変わってないので差し替え
test
CHANGED
@@ -18,46 +18,68 @@
|
|
18
18
|
|
19
19
|
```C#
|
20
20
|
|
21
|
-
// dataの先頭がMSなら。数字を10進数から
|
21
|
+
// dataの先頭がMSなら。数字を10進数から
|
22
22
|
|
23
|
-
// Bit変換(5なら5Bit目を1)して
|
23
|
+
// Bit変換(5なら5Bit目を1)して
|
24
24
|
|
25
|
-
if (data.ToUpper().StartsWith("MS,") == true)
|
25
|
+
if (data.ToUpper().StartsWith("MS,") == true)
|
26
26
|
|
27
|
-
{
|
27
|
+
{
|
28
28
|
|
29
|
-
int iLampNo = 0;
|
29
|
+
int iLampNo = 0;
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
string sLampNo = data.Substring(3);
|
33
|
+
string sLampNo = data.Substring(3);
|
34
34
|
|
35
|
-
if (int.TryParse(sLampNo, out iLampNo) == false)
|
35
|
+
if (int.TryParse(sLampNo, out iLampNo) == false)
|
36
36
|
|
37
|
-
{
|
37
|
+
{
|
38
38
|
|
39
|
-
// MS,の後が数字ではない
|
39
|
+
// MS,の後が数字ではない
|
40
40
|
|
41
|
-
MessageBox.Show("MS,の後が数字ではない");
|
41
|
+
MessageBox.Show("MS,の後が数字ではない");
|
42
42
|
|
43
|
-
return;
|
43
|
+
return;
|
44
44
|
|
45
|
-
}
|
45
|
+
}
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
+
if (iLampNo >16)
|
50
|
+
|
51
|
+
{
|
52
|
+
|
53
|
+
// 16より大きいのでエラー
|
54
|
+
|
49
|
-
|
55
|
+
MessageBox.Show("16まで");
|
56
|
+
|
57
|
+
return;
|
58
|
+
|
59
|
+
}
|
50
60
|
|
51
61
|
|
52
62
|
|
53
|
-
|
63
|
+
// Bit変換
|
54
64
|
|
55
|
-
|
65
|
+
int bitLamp = 1 << (iLampNo-1);
|
56
66
|
|
57
67
|
|
58
68
|
|
69
|
+
// 16進数に変換
|
70
|
+
|
59
|
-
s
|
71
|
+
string hLamp = Convert.ToString(bitLamp, 16);
|
60
72
|
|
61
73
|
|
62
74
|
|
75
|
+
// 送信用文字列
|
76
|
+
|
77
|
+
data = "MS," + hLamp;
|
78
|
+
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
serialPort1.Write(data + "\n");
|
84
|
+
|
63
85
|
```
|
5
夜に投稿した分
test
CHANGED
File without changes
|
4
変更
test
CHANGED
@@ -8,7 +8,11 @@
|
|
8
8
|
|
9
9
|
---
|
10
10
|
|
11
|
+
###**追記**
|
12
|
+
|
13
|
+
コメントにともない、"MS,"で始まる場合は、
|
14
|
+
|
11
|
-
|
15
|
+
","以降を10進数としてBit変換し、16進数に置き換える
|
12
16
|
|
13
17
|
|
14
18
|
|
3
処理修正
test
CHANGED
@@ -8,6 +8,52 @@
|
|
8
8
|
|
9
9
|
---
|
10
10
|
|
11
|
-
追記 MSの場合は、","以降を10進数として16進数に置き換える
|
11
|
+
追記 MSの場合は、","以降を10進数としてBit変換し、16進数に置き換える
|
12
12
|
|
13
13
|
|
14
|
+
|
15
|
+
```C#
|
16
|
+
|
17
|
+
// dataの先頭がMSなら。数字を10進数から
|
18
|
+
|
19
|
+
// Bit変換(5なら5Bit目を1)して
|
20
|
+
|
21
|
+
if (data.ToUpper().StartsWith("MS,") == true)
|
22
|
+
|
23
|
+
{
|
24
|
+
|
25
|
+
int iLampNo = 0;
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
string sLampNo = data.Substring(3);
|
30
|
+
|
31
|
+
if (int.TryParse(sLampNo, out iLampNo) == false)
|
32
|
+
|
33
|
+
{
|
34
|
+
|
35
|
+
// MS,の後が数字ではない
|
36
|
+
|
37
|
+
MessageBox.Show("MS,の後が数字ではない");
|
38
|
+
|
39
|
+
return;
|
40
|
+
|
41
|
+
}
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
string hLamp = Convert.ToString(iLampNo, 16);
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
data = "MS," + hLamp;
|
50
|
+
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
serialPort1.Write(data + "\n");
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
```
|
2
ちょっと修正
test
CHANGED
@@ -11,45 +11,3 @@
|
|
11
11
|
追記 MSの場合は、","以降を10進数として16進数に置き換える
|
12
12
|
|
13
13
|
|
14
|
-
|
15
|
-
```C#
|
16
|
-
|
17
|
-
// dataの先頭がMSなら。数字を10進数から16進数に変換し送信文字列を作る
|
18
|
-
|
19
|
-
if (data.ToUpper().StartsWith("MS,") == true)
|
20
|
-
|
21
|
-
{
|
22
|
-
|
23
|
-
int iLampNo = 0;
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
string sLampNo = data.Substring(3);
|
28
|
-
|
29
|
-
if (int.TryParse(sLampNo, out iLampNo) == false)
|
30
|
-
|
31
|
-
{
|
32
|
-
|
33
|
-
// MS,の後が数字ではない
|
34
|
-
|
35
|
-
MessageBox.Show("MS,の後が数字ではない");
|
36
|
-
|
37
|
-
return;
|
38
|
-
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
string hLamp = Convert.ToString(iLampNo, 16);
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
data = "MS," + hLamp;
|
48
|
-
|
49
|
-
}
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
serialPort1.Write(data + "\n");
|
54
|
-
|
55
|
-
```
|
1
コメントに伴い追記
test
CHANGED
@@ -3,3 +3,53 @@
|
|
3
3
|
[追加情報依頼]に書かれているかたもいらっしゃいますが、
|
4
4
|
|
5
5
|
MS,0001と送らないと認識しないのではないでしょうか?
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
追記 MSの場合は、","以降を10進数として16進数に置き換える
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
```C#
|
16
|
+
|
17
|
+
// dataの先頭がMSなら。数字を10進数から16進数に変換し送信文字列を作る
|
18
|
+
|
19
|
+
if (data.ToUpper().StartsWith("MS,") == true)
|
20
|
+
|
21
|
+
{
|
22
|
+
|
23
|
+
int iLampNo = 0;
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
string sLampNo = data.Substring(3);
|
28
|
+
|
29
|
+
if (int.TryParse(sLampNo, out iLampNo) == false)
|
30
|
+
|
31
|
+
{
|
32
|
+
|
33
|
+
// MS,の後が数字ではない
|
34
|
+
|
35
|
+
MessageBox.Show("MS,の後が数字ではない");
|
36
|
+
|
37
|
+
return;
|
38
|
+
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
string hLamp = Convert.ToString(iLampNo, 16);
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
data = "MS," + hLamp;
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
serialPort1.Write(data + "\n");
|
54
|
+
|
55
|
+
```
|