@@ -5,7 +5,8 @@ let rosnodejs = require('./index.js');
55// const SetBool = rosnodejs.require('std_srvs').srv.SetBool;
66
77// aspirational:
8- rosnodejs . use ( [ 'std_msgs/String' ] , function ( ) {
8+ rosnodejs . use ( [ 'std_msgs/String' ] ,
9+ [ 'std_srvs/SetBool' ] , function ( ) {
910
1011 const msg = new ( rosnodejs . message ( 'std_msgs/String' ) ) (
1112 { data : "howdy" } ) ;
@@ -18,36 +19,48 @@ rosnodejs.use(['std_msgs/String'], function() {
1819 rosnodejs . initNode ( '/my_node' )
1920 . then ( ( rosNode ) => {
2021 // EXP 1) Service Server
21- // let service = rosNode.advertiseService({
22- // service: '/set_bool',
23- // type: 'std_srvs/SetBool'
24- // }, (req, resp) => {
25- // console.log('Handling request! ' + JSON.stringify(req));
26- // resp.success = !req.data;
27- // resp.message = 'Inverted!';
28- // return true;
29- // });
22+ let service = rosNode . advertiseService ( {
23+ service : '/set_bool' ,
24+ type : 'std_srvs/SetBool'
25+ } , ( req , resp ) => {
26+ console . log ( 'Handling request! ' + JSON . stringify ( req ) ) ;
27+ resp . success = ! req . data ;
28+ resp . message = 'Inverted!' ;
29+ return true ;
30+ } ) ;
3031
3132 // // EXP 2) Service Client
32- // let serviceClient = rosNode.serviceClient({
33- // service: '/set_bool',
34- // type: 'std_srvs/SetBool'
35- // });
36- // rosNode.waitForService(serviceClient.getService(), 2000)
37- // .then((available) => {
38- // if (available) {
39- // const request = new SetBool.Request();
40- // request.data = true;
41- // serviceClient.call(request, (resp) => {
42- // console.log('Service response ' + JSON.stringify(resp));
43- // });
44- // }
45- // });
33+ setTimeout ( function ( ) {
34+ let serviceClient = rosNode . serviceClient ( {
35+ service : '/set_bool' ,
36+ type : 'std_srvs/SetBool'
37+ } ) ;
38+ rosNode . waitForService ( serviceClient . getService ( ) , 2000 )
39+ . then ( ( available ) => {
40+ if ( available ) {
41+ console . log ( 'Service available' ) ;
42+ // const request = new SetBool.Request();
43+ // request.data = true;
44+ // #HERE
45+ const request =
46+ new ( rosnodejs . serviceRequest ( 'std_srvs/SetBool' ) ) ( {
47+ data : true } ) ;
48+ console . log ( "call service" , request ) ;
49+ serviceClient . call ( request , ( resp ) => {
50+ console . log ( 'Service response ' + JSON . stringify ( resp ) ) ;
51+ } ) ;
52+ } else {
53+ console . log ( 'Service not available' ) ;
54+ }
55+ } ) ;
56+ } , 1000 ) ; // wait a second before calling our service
4657
47- // // EXP 3) Params
48- // rosNode.setParam('~junk', {'hi': 2}).then(() => {
49- // rosNode.getParam('~junk').then((val) => { console.log('Got Param!!! ' + JSON.stringify(val)); });
50- // });
58+ // EXP 3) Params
59+ rosNode . setParam ( '~junk' , { 'hi' : 2 } ) . then ( ( ) => {
60+ rosNode . getParam ( '~junk' ) . then ( ( val ) => {
61+ console . log ( 'Got Param!!! ' + JSON . stringify ( val ) ) ;
62+ } ) ;
63+ } ) ;
5164
5265 // // EXP 4) Publisher
5366 let pub = rosNode . advertise ( {
0 commit comments