回答編集履歴

5

追記

2018/04/13 19:52

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  1, 受信処理の解析と思われる部分に変数名:Sendbuffaがあるのが気になります。
4
4
 
5
- 送信バッファ/受信バッファは分けると思いますが単純に変数名の命名がそうなっていただけでしょうか
5
+ データの混在を避けるため送信バッファ/受信バッファの変数は分けると思いますが単純に変数名の命名がそうなっていただけでしょうか
6
6
 
7
7
  ```C#
8
8
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  2,`temporary.IndexOf`と`temporary.Split`を同時に行っているのが気になります。
14
14
 
15
- `while`ループからforループに変換して、こんな感じ書けるような
15
+ `while`ループからforループに変換して、以下のコード
16
16
 
17
17
  ```C#
18
18
 
@@ -36,7 +36,7 @@
36
36
 
37
37
  ```
38
38
 
39
- 3,デミリタ(区切り文字)にEnvironment.NewLineを使っている
39
+ 3,デミリタ(区切り文字)にEnvironment.NewLineを使っている
40
40
 
41
41
  参考 ->[environment.newline](https://msdn.microsoft.com/ja-jp/library/system.environment.newline(v=vs.110).aspx)
42
42
 
@@ -60,6 +60,8 @@
60
60
 
61
61
  4)はクラスを作らずに`Action<string>`を`SerialPortServer`クラスに定義します。
62
62
 
63
+ 参考 -> [Action<T> デリゲート](https://msdn.microsoft.com/ja-jp/library/018hxwa8(v=vs.110).aspx)
64
+
63
65
  ```C#
64
66
 
65
67
  public Action<string> logWrite;
@@ -76,6 +78,8 @@
76
78
 
77
79
 
78
80
 
79
- 最後に通信に関わる部分は通信プロトコル解析処理(`Parser`)がどうしても必要るので、使い回しはしずらいと思いますー。
81
+ 最後に通信に関わる部分は通信プロトコル解析処理(`Parser`)がどうしても必要になるので、使い回しはしずらいと思いますー。
80
82
 
81
83
  自作せずに`HTTP`などのプロトコルを上に被せる形がいいのではと。
84
+
85
+ どうしても自作するなら、状態遷移図と通信プロトコルのドキュメントは最初に作成するほうが後々苦労しないです。

4

追記

2018/04/13 19:52

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -15,6 +15,8 @@
15
15
  `while`ループからforループに変換して、こんな感じで書けるような。
16
16
 
17
17
  ```C#
18
+
19
+ var temporary = Sendbuffa + recData;
18
20
 
19
21
  var lines = temporary.Split(new[] { Environment.NewLine },
20
22
 

3

プラットフォーム間の差異について

2018/04/13 17:34

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -34,6 +34,22 @@
34
34
 
35
35
  ```
36
36
 
37
+ 3,デミリタ(区切り文字)にEnvironment.NewLineを使っている
38
+
39
+ 参考 ->[environment.newline](https://msdn.microsoft.com/ja-jp/library/system.environment.newline(v=vs.110).aspx)
40
+
41
+ > UNIX 以外のプラットフォームでは "\r\n" を含む文字列。UNIX プラットフォームでは "\n" を含む文字列。
42
+
43
+
44
+
45
+ Unixプラットフォームではenvironment.newlineの改行コードが違うため、このプログラムをUnixで動かした時に注意が必要です。
46
+
47
+
48
+
49
+ ---
50
+
51
+
52
+
37
53
  b. クラス分けについて
38
54
 
39
55
  `SerialPortServer`クラスを新規作成して、2)と3)の処理を行います。

2

追記

2018/04/13 16:22

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  呼び出し方
52
52
 
53
- `logWrite((lines[0]);`
53
+ `logWrite(lines[0]);`
54
54
 
55
55
 
56
56
 

1

補足

2018/04/13 16:01

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
  ```
12
12
 
13
- 2,temporary.IndexOf`と`temporary.Split`を同時に行っているのが気になります
13
+ 2,`temporary.IndexOf`と`temporary.Split`を同時に行っているのが気になります。
14
14
 
15
- whileループをなくして、こんな感じで書けるような。
15
+ `while`ループからforループに変換して、こんな感じで書けるような。
16
16
 
17
17
  ```C#
18
18
 
@@ -50,14 +50,14 @@
50
50
 
51
51
  呼び出し方
52
52
 
53
- logWrite((lines[0]);
53
+ `logWrite((lines[0]);`
54
54
 
55
55
 
56
56
 
57
- 画面を更新する必要がある時は、Actionイベント内でコントロール名.Dispatcher.BeginInvoke()を呼び出すのをお忘れなく。
57
+ 画面を更新する必要がある時は、`Action`イベント内で`コントロール名.Dispatcher.BeginInvoke();`を呼び出すのをお忘れなく。
58
58
 
59
59
 
60
60
 
61
61
  最後に通信に関わる部分は通信プロトコル解析処理(`Parser`)がどうしても必要するので、使い回しはしずらいと思いますー。
62
62
 
63
- 自作せずにHTTPなどのプロトコルを上に被せる形がいいのではと。
63
+ 自作せずに`HTTP`などのプロトコルを上に被せる形がいいのではと。