質問編集履歴
2
不要なコメントを削除
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
使っていないコードを消した
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
|
-
|
273
|
+
println!("Timer start!");
|
272
|
-
|
273
|
-
|
274
|
+
|
274
|
-
|
275
|
-
y: f32,
|
276
|
-
|
277
|
-
len:
|
275
|
+
let sleeping_time = time::Duration::from_secs(seconds);
|
278
|
-
|
279
|
-
|
276
|
+
|
280
|
-
|
281
|
-
|
282
|
-
|
277
|
+
|
278
|
+
|
283
|
-
|
279
|
+
unsafe {
|
280
|
+
|
284
|
-
|
281
|
+
// TODO: ステージ位置に関しては、+/-10Vが最適かわからない
|
282
|
+
|
285
|
-
|
283
|
+
// CH1, 2ともに+/-10Vの入力を受け付ける
|
284
|
+
|
286
|
-
|
285
|
+
// 入力が+/-10VなのはSR830の仕様
|
286
|
+
|
287
|
-
D
|
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
|
-
|
297
|
+
*flag.lock().unwrap() = 0; // 計測開始のフラグを立てる
|
296
|
-
|
298
|
+
|
297
|
-
p
|
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_
|
305
|
+
TUSB0216AD_Stop(id);
|
316
306
|
|
317
307
|
}
|
318
308
|
|
319
309
|
|
320
310
|
|
321
|
-
*flag.lock().unwrap() =
|
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(
|
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
|
355
|
+
let mut data1 = [0; MAX_LENGTH];
|
356
|
+
|
360
|
-
|
357
|
+
let mut data2 = [0; MAX_LENGTH];
|
361
|
-
|
362
|
-
|
358
|
+
|
363
|
-
pr
|
359
|
+
let l_ptr = &mut length as *mut u32;
|
360
|
+
|
361
|
+
|
364
362
|
|
365
363
|
loop {
|
366
364
|
|
367
|
-
if *flag.lock().unwrap()
|
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
|
-
t
|
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
|
}
|