質問編集履歴

3

誤字

2019/07/04 03:21

投稿

kawauso
kawauso

スコア56

test CHANGED
File without changes
test CHANGED
@@ -298,7 +298,7 @@
298
298
 
299
299
  abcdefghijklmnopqrstuvwxyz
300
300
 
301
- 'Caracol.exe' (CLR v4.0.30319: Caracol.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.resources\v4.0_4.0.0.0_ja_b77a5c561934e089\System.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。
301
+ 'Hoge.exe' (CLR v4.0.30319: Caracol.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.resources\v4.0_4.0.0.0_ja_b77a5c561934e089\System.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。
302
302
 
303
303
  例外がスローされました: 'System.IO.IOException' (System.dll の中)
304
304
 

2

プログラム追記

2019/07/04 03:21

投稿

kawauso
kawauso

スコア56

test CHANGED
File without changes
test CHANGED
@@ -134,27 +134,147 @@
134
134
 
135
135
  ```C#
136
136
 
137
- public SerialPort Port;
138
-
139
-
140
-
141
- public void main(){
142
-
143
- Port = new SerialPort(port, 9600, Parity.None, 8, StopBits.One);
144
-
145
- Port.NewLine = "\n";
146
-
147
- Port.Open();
148
-
149
-
150
-
151
- while (true)
152
-
153
- {
154
-
155
- var msg = Port.ReadLine();
156
-
157
- Console.WriteLine(msg);
137
+ public SerialPort Port;
138
+
139
+
140
+
141
+ public void main()
142
+
143
+ {
144
+
145
+ var port = GetPortName();
146
+
147
+ if (port != null)
148
+
149
+ {
150
+
151
+ try
152
+
153
+ {
154
+
155
+ Port = new SerialPort(port, 9600, Parity.None, 8, StopBits.One);
156
+
157
+ Port.Open();
158
+
159
+ while (true)
160
+
161
+ {
162
+
163
+ var msg = Port.ReadLine();
164
+
165
+ Console.WriteLine(msg);
166
+
167
+ }
168
+
169
+ }
170
+
171
+ catch (ArgumentException ae)
172
+
173
+ {
174
+
175
+ Console.WriteLine(ae);
176
+
177
+ }
178
+
179
+ catch (SystemException se)
180
+
181
+ {
182
+
183
+ Console.WriteLine(se);
184
+
185
+ }
186
+
187
+ }
188
+
189
+ }
190
+
191
+
192
+
193
+ private IEnumerable<string> GetSerialDeviceNames()
194
+
195
+ {
196
+
197
+ // System.Managementを参照に追加
198
+
199
+ var pnpEntity = new ManagementClass("Win32_PnPEntity");
200
+
201
+ var comRegex = new Regex(@"(COM[1-9][0-9]?[0-9]?)");
202
+
203
+
204
+
205
+ return pnpEntity
206
+
207
+ .GetInstances()
208
+
209
+ .Cast<ManagementObject>()
210
+
211
+ .Select(managementObj => managementObj.GetPropertyValue("Name"))
212
+
213
+ .Where(nameObj => nameObj != null)
214
+
215
+ .Select(nameObj => nameObj.ToString())
216
+
217
+ .Where(name => comRegex.IsMatch(name));
218
+
219
+ }
220
+
221
+
222
+
223
+ private string GetPortName()
224
+
225
+ {
226
+
227
+ foreach (string device in GetSerialDeviceNames())
228
+
229
+ {
230
+
231
+ if (device.Contains("mbed"))
232
+
233
+ {
234
+
235
+ var com = new Regex(@"[^0-9]").Replace(device, "");
236
+
237
+ int num;
238
+
239
+ if (int.TryParse(com, out num))
240
+
241
+ {
242
+
243
+ return ("COM" + num);
244
+
245
+ }
246
+
247
+ }
248
+
249
+ }
250
+
251
+
252
+
253
+ return null;
254
+
255
+ }
256
+
257
+ ```
258
+
259
+
260
+
261
+ ```Cpp
262
+
263
+ #include "mbed.h"
264
+
265
+
266
+
267
+ Serial pc(USBTX, USBRX); // tx, rx
268
+
269
+
270
+
271
+ int main() {
272
+
273
+ while(1) {
274
+
275
+ pc.printf("abcdefghijklmnopqrstuvwxyz\n");
276
+
277
+ wait_ms(50);
158
278
 
159
279
  }
160
280
 
@@ -164,33 +284,21 @@
164
284
 
165
285
 
166
286
 
167
- ```Cpp
287
+ **エラー**
168
-
169
- #include "mbed.h"
288
+
170
-
171
-
172
-
173
- Serial pc(USBTX, USBRX); // tx, rx
174
-
175
-
176
-
177
- int main() {
178
-
179
- while(1) {
289
+ ...
180
-
290
+
181
- pc.printf("abcdefghijklmnopqrstuvwxyz\n");
291
+ abcdefghijklmnopqrstuvwxyz
182
-
292
+
183
- wait_ms(50);
293
+ abcdefghijklmnopqrstuvwxyz
184
-
185
- }
294
+
186
-
187
- }
188
-
189
- ```
295
+ abcdefghijklmnopqrstuvwxyz
190
-
191
-
192
-
296
+
193
- エラー
297
+ abcdefghijklmnopqrstuvwxyz
298
+
299
+ abcdefghijklmnopqrstuvwxyz
300
+
301
+ 'Caracol.exe' (CLR v4.0.30319: Caracol.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.resources\v4.0_4.0.0.0_ja_b77a5c561934e089\System.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。
194
302
 
195
303
  例外がスローされました: 'System.IO.IOException' (System.dll の中)
196
304
 

1

修正後プログラムを追記

2019/07/04 03:18

投稿

kawauso
kawauso

スコア56

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,85 @@
125
125
  }
126
126
 
127
127
  ```
128
+
129
+
130
+
131
+ **修正後**
132
+
133
+
134
+
135
+ ```C#
136
+
137
+ public SerialPort Port;
138
+
139
+
140
+
141
+ public void main(){
142
+
143
+ Port = new SerialPort(port, 9600, Parity.None, 8, StopBits.One);
144
+
145
+ Port.NewLine = "\n";
146
+
147
+ Port.Open();
148
+
149
+
150
+
151
+ while (true)
152
+
153
+ {
154
+
155
+ var msg = Port.ReadLine();
156
+
157
+ Console.WriteLine(msg);
158
+
159
+ }
160
+
161
+ }
162
+
163
+ ```
164
+
165
+
166
+
167
+ ```Cpp
168
+
169
+ #include "mbed.h"
170
+
171
+
172
+
173
+ Serial pc(USBTX, USBRX); // tx, rx
174
+
175
+
176
+
177
+ int main() {
178
+
179
+ while(1) {
180
+
181
+ pc.printf("abcdefghijklmnopqrstuvwxyz\n");
182
+
183
+ wait_ms(50);
184
+
185
+ }
186
+
187
+ }
188
+
189
+ ```
190
+
191
+
192
+
193
+ エラー
194
+
195
+ 例外がスローされました: 'System.IO.IOException' (System.dll の中)
196
+
197
+ System.IO.IOException: スレッドの終了またはアプリケーションの要求によって、I/O 操作が中止されました。
198
+
199
+ 場所 System.IO.Ports.SerialStream.EndRead(IAsyncResult asyncResult)
200
+
201
+ 場所 System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
202
+
203
+ 場所 System.IO.Ports.SerialStream.Read(Byte[] array, Int32 offset, Int32 count)
204
+
205
+ 場所 System.IO.Ports.SerialPort.InternalRead(Char[] buffer, Int32 offset, Int32 count, Int32 timeout, Boolean countMultiByteCharsAsOne)
206
+
207
+ 場所 System.IO.Ports.SerialPort.ReadTo(String value)
208
+
209
+ 場所 System.IO.Ports.SerialPort.ReadLine()