質問編集履歴

2

不要なコメントを削除

2021/08/07 11:32

投稿

Yhaya
Yhaya

スコア439

test CHANGED
File without changes
test CHANGED
@@ -216,8 +216,6 @@
216
216
 
217
217
 
218
218
 
219
- // #[link(name = "TUSB16AD", kind = "dylib")]
220
-
221
219
  #[link(name = "ad_mock.dll", kind = "dylib")]
222
220
 
223
221
  #[allow(dead_code)]
@@ -278,12 +276,6 @@
278
276
 
279
277
  unsafe {
280
278
 
281
- // TODO: ステージ位置に関しては、+/-10Vが最適かわからない
282
-
283
- // CH1, 2ともに+/-10Vの入力を受け付ける
284
-
285
- // 入力が+/-10VなのはSR830の仕様
286
-
287
279
  TUSB0216AD_Input_Set(id, 0, 0);
288
280
 
289
281
  TUSB0216AD_Start(id, &(2 as u8), 0, 0, 0);

1

使っていないコードを消した

2021/08/07 11:32

投稿

Yhaya
Yhaya

スコア439

test CHANGED
File without changes
test CHANGED
@@ -268,148 +268,124 @@
268
268
 
269
269
 
270
270
 
271
+ pub fn continuous_read(id: i32, seconds: u64, flag: Arc<Mutex<i8>>) {
272
+
271
- struct Data {
273
+ println!("Timer start!");
272
-
273
- x: f32,
274
+
274
-
275
- y: f32,
276
-
277
- len: u32,
275
+ let sleeping_time = time::Duration::from_secs(seconds);
278
-
279
- }
276
+
280
-
281
-
282
-
277
+
278
+
283
- impl Data {
279
+ unsafe {
280
+
284
-
281
+ // TODO: ステージ位置に関しては、+/-10Vが最適かわからない
282
+
285
- fn new(x: f32, y: f32) -> Self {
283
+ // CH1, 2ともに+/-10Vの入力を受け付ける
284
+
286
-
285
+ // 入力が+/-10VなのはSR830の仕様
286
+
287
- Data { x: x, y: y, len: 1 }
287
+ TUSB0216AD_Input_Set(id, 0, 0);
288
+
289
+ TUSB0216AD_Start(id, &(2 as u8), 0, 0, 0);
290
+
291
+ TUSB0216AD_Trigger(id);
288
292
 
289
293
  }
290
294
 
291
- }
295
+
292
-
293
-
294
-
296
+
295
- pub fn continuous_read(id: i32, seconds: u64, flag: Arc<Mutex<i8>>) {
297
+ *flag.lock().unwrap() = 0; // 計測開始のフラグを立てる
296
-
298
+
297
- println!("Timer start!");
299
+ thread::sleep(sleeping_time);
298
-
299
- let sleeping_time = time::Duration::from_secs(seconds);
300
300
 
301
301
 
302
302
 
303
303
  unsafe {
304
304
 
305
- // TODO: ステージ位置に関しては、+/-10Vが最適かわからない
306
-
307
- // CH1, 2ともに+/-10Vの入力を受け付ける
308
-
309
- // 入力が+/-10VなのはSR830の仕様
310
-
311
- TUSB0216AD_Input_Set(id, 0, 0);
312
-
313
- TUSB0216AD_Start(id, &(2 as u8), 0, 0, 0);
314
-
315
- TUSB0216AD_Trigger(id);
305
+ TUSB0216AD_Stop(id);
316
306
 
317
307
  }
318
308
 
319
309
 
320
310
 
321
- *flag.lock().unwrap() = 0; // 計測開始のフラグを立てる
311
+ *flag.lock().unwrap() = 1; // 計測終了のフラグを立てる
312
+
322
-
313
+ println!("Timer stopped");
314
+
315
+ }
316
+
317
+
318
+
319
+ /// CH1, CH2 からのデータを取得する
320
+
321
+ pub fn get_data(
322
+
323
+ id: i32,
324
+
325
+ flag: Arc<Mutex<i8>>,
326
+
327
+ _position: &mut Vec<f32>,
328
+
329
+ _intensity: &mut Vec<f32>,
330
+
331
+ ) {
332
+
333
+ const MAX_LENGTH: usize = 262142;
334
+
335
+ let mut length = MAX_LENGTH as u32;
336
+
337
+
338
+
339
+ println!("Data acquisition started");
340
+
341
+ loop {
342
+
343
+ if *flag.lock().unwrap() != -1 {
344
+
345
+ break;
346
+
347
+ }
348
+
323
- thread::sleep(sleeping_time);
349
+ thread::sleep(time::Duration::from_millis(10));
324
-
325
-
326
-
327
- unsafe {
328
-
329
- TUSB0216AD_Stop(id);
330
350
 
331
351
  }
332
352
 
333
353
 
334
354
 
335
- *flag.lock().unwrap() = 1; // 計測終了のフラグを立てる
336
-
337
- println!("Timer stopped");
338
-
339
- }
340
-
341
-
342
-
343
- /// CH1, CH2 からのデータを取得する
344
-
345
- pub fn get_data(
346
-
347
- id: i32,
348
-
349
- flag: Arc<Mutex<i8>>,
350
-
351
- _position: &mut Vec<f32>,
352
-
353
- _intensity: &mut Vec<f32>,
354
-
355
- ) {
356
-
357
- const MAX_LENGTH: usize = 262142;
358
-
359
- let mut length = MAX_LENGTH as u32;
355
+ let mut data1 = [0; MAX_LENGTH];
356
+
360
-
357
+ let mut data2 = [0; MAX_LENGTH];
361
-
362
-
358
+
363
- println!("Data acquisition started");
359
+ let l_ptr = &mut length as *mut u32;
360
+
361
+
364
362
 
365
363
  loop {
366
364
 
367
- if *flag.lock().unwrap() != -1 {
365
+ if *flag.lock().unwrap() == 1 {
368
366
 
369
367
  break;
370
368
 
371
369
  }
372
370
 
371
+
372
+
373
+ // 問題の部分!!!!!!!!!!!!
374
+
375
+ unsafe {
376
+
373
- thread::sleep(time::Duration::from_millis(10));
377
+ TUSB0216AD_Ad_Data(id, 1, data1.as_mut_ptr(), l_ptr);
378
+
379
+ TUSB0216AD_Ad_Data(id, 2, data2.as_mut_ptr(), l_ptr);
380
+
381
+ }
382
+
383
+
384
+
385
+
374
386
 
375
387
  }
376
388
 
377
-
378
-
379
- let mut data1 = [0; MAX_LENGTH];
380
-
381
- let mut data2 = [0; MAX_LENGTH];
382
-
383
- let l_ptr = &mut length as *mut u32;
384
-
385
-
386
-
387
- loop {
388
-
389
- if *flag.lock().unwrap() == 1 {
390
-
391
- break;
392
-
393
- }
394
-
395
-
396
-
397
- // 問題の部分!!!!!!!!!!!!
398
-
399
- unsafe {
400
-
401
- TUSB0216AD_Ad_Data(id, 1, data1.as_mut_ptr(), l_ptr);
402
-
403
- TUSB0216AD_Ad_Data(id, 2, data2.as_mut_ptr(), l_ptr);
404
-
405
- }
406
-
407
-
408
-
409
-
410
-
411
- }
412
-
413
389
  println!("Data acquisition stopped");
414
390
 
415
391
  }