1
+ var MetaWear = require ( '../index.js' ) //require('metawear');
2
+ var ref = require ( 'ref' )
3
+
4
+ async function mainAsync ( mac ) {
5
+ var device = await new Promise ( ( resolve , reject ) => MetaWear . discoverByAddress ( mac . toLowerCase ( ) , d => resolve ( d ) ) )
6
+ await new Promise ( ( resolve , reject ) => {
7
+ device . connectAndSetUp ( error => {
8
+ if ( error == null ) resolve ( null )
9
+ else reject ( error )
10
+ } )
11
+ } )
12
+
13
+ let acc = MetaWear . mbl_mw_acc_get_acceleration_data_signal ( device . board )
14
+ let gyro = MetaWear . mbl_mw_gyro_bmi160_get_rotation_data_signal ( device . board )
15
+
16
+ let fuser = await new Promise ( ( resolve , reject ) => {
17
+ //ArrayType(ref.refType(AnonymousDataSignal));
18
+ console . log ( "creating fuser? " )
19
+ console . log ( acc )
20
+ console . log ( gyro )
21
+ MetaWear . mbl_mw_dataprocessor_fuser_create ( acc , new MetaWear . ArrayDataSignalP ( [ gyro ] ) , 1 , ref . NULL , MetaWear . FnVoid_VoidP_DataProcessorP . toPointer ( ( ctx , pointer ) => {
22
+ if ( ! pointer ) {
23
+ reject ( "Failed to create fuser" )
24
+ } else {
25
+ resolve ( pointer ) ;
26
+ }
27
+ } ) )
28
+ console . log ( "fuser created?" )
29
+ } )
30
+
31
+ MetaWear . mbl_mw_datasignal_subscribe ( fuser , ref . NULL , MetaWear . FnVoid_VoidP_DataP . toPointer ( ( ctx , pointer ) => {
32
+ var data = pointer . deref ( ) ;
33
+ var values = data . parseValue ( { 'nElem' : 2 } ) ;
34
+
35
+ let acc = values [ 0 ]
36
+ let gyro = values [ 1 ]
37
+
38
+ console . log ( `acc: (${ acc . x } ,${ acc . y } ,${ acc . z } ), gyro; (${ gyro . x } ,${ gyro . y } ,${ gyro . z } )` )
39
+ } ) )
40
+
41
+ MetaWear . mbl_mw_gyro_bmi160_enable_rotation_sampling ( device . board )
42
+ MetaWear . mbl_mw_acc_enable_acceleration_sampling ( device . board )
43
+
44
+ MetaWear . mbl_mw_gyro_bmi160_start ( device . board )
45
+ MetaWear . mbl_mw_acc_start ( device . board )
46
+
47
+ process . openStdin ( ) . addListener ( "data" , data => {
48
+ MetaWear . mbl_mw_debug_reset ( device . board )
49
+ } )
50
+ }
51
+
52
+ mainAsync ( process . argv [ 2 ] )
0 commit comments