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