Skip to content

Commit

Permalink
added services list
Browse files Browse the repository at this point in the history
  • Loading branch information
jaguardo committed Jun 11, 2021
1 parent 2e6e356 commit ae6fc68
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 30 deletions.
89 changes: 59 additions & 30 deletions src/components/ROS.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,22 +50,47 @@ function useROS() {
resolve({
topics: topicList
});
reject({
reject({
topics: []
});
});
}, (message) => {
console.error("Failed to get topic", message)
ros.topics = []
});
});
topicsPromise.then( (topics) => setROS(ros => ({ ...ros, topics: topics.topics })));
topicsPromise.then((topics) => setROS(ros => ({ ...ros, topics: topics.topics })));
return ros.topics;
}

function getServices() {
const servicesPromise = new Promise((resolve, reject) => {
ros.ROS.getServices((services) => {
const serviceList = services.map((serviceName) => {
return {
path: serviceName,
type: "service",
}
});
resolve({
services: serviceList
});
reject({
services: []
});
}, (message) => {
console.error("Failed to get services", message)
ros.services = []
});
});
servicesPromise.then((services) => setROS(ros => ({ ...ros, services: services.services })));
return ros.services;
}

function createListener(topic, msg_type, to_queue, compression_type) {
var newListener = new ROSLIB.Topic({
ros : ros.ROS,
name : topic,
messageType : msg_type,
ros: ros.ROS,
name: topic,
messageType: msg_type,
queue_length: to_queue,
compression: compression_type,
})
Expand All @@ -80,19 +105,19 @@ function useROS() {
console.log('Listener ' + newListener.name + ' created');
return newListener;
}

const handleConnect = () => {
try {
ros.ROS = new ROSLIB.Ros({
url : ros.url,
});

if (ros.ROS) ros.ROS.on('connection', () => {
setROS(ros => ({ ...ros, isConnected: true }));
ros.ROS.connect(ros.url)
ros.ROS.on('connection', (connect) => {
// console.log(connect)
setROS(ros => ({ ...ros, isConnected: true })); // seems to take awhile for the roslibjs library to report connected
setROS(ros => ({ ...ros, ROSConfirmedConnected: false }));
getTopics();
getServices();
})

if (ros.ROS) ros.ROS.on('error', (error) => {
ros.ROS.on('error', (error) => { //gets a little annoying on the console, but probably ok for now
console.log(error);
})
} catch (e) {
Expand All @@ -106,44 +131,48 @@ function useROS() {
setROS(ros => ({ ...ros, isConnected: false }));
setROS(ros => ({ ...ros, topics: [] }));
setROS(ros => ({ ...ros, listeners: [] }));
setROS(ros => ({ ...ros, ROSConfirmedConnected: false }));
} catch (e) {
console.log(e);
}
console.log('Disconnect Requested');
console.log('Disconnected');
}

const removeAllListeners = () =>{
for(var mlistener in ros.listeners){
ros.listeners[mlistener].removeAllListeners();

const removeAllListeners = () => {
for (var mlistener in ros.listeners) {
ros.listeners[mlistener].removeAllListeners();
}
setROS(ros => ({ ...ros, listeners: [] }));
}
setROS(ros => ({ ...ros, listeners: [] }));
}

function removeListener (listener){
for(var mlistener in ros.listeners){
if(listener.name === ros.listeners[mlistener].name){
console.log('Listener: ' + listener.name + ' is removed')
ros.listeners.splice(mlistener,1)
listener.removeAllListeners();
return
function removeListener(listener) {
for (var mlistener in ros.listeners) {
if (listener.name === ros.listeners[mlistener].name) {
console.log('Listener: ' + listener.name + ' is removed')
ros.listeners.splice(mlistener, 1)
listener.removeAllListeners();
return
}
}
console.log('Listener: ' + listener + ' is not a listener')
}
console.log('Listener: ' + listener + ' is not a listener')
}

return {
toggleConnection,
changeUrl,
getTopics,
getServices,
createListener,
toggleAutoconnect,
removeAllListeners,
removeListener,
checkConnection,
ros: ros.ROS,
isConnected: ros.isConnected,
autoconnect: ros.autoconnect,
url: ros.url,
topics: ros.topics,
services: ros.services,
listeners: ros.listeners,
}
}
Expand Down
1 change: 1 addition & 0 deletions src/components/ROSContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const rosObj = {
isConnected: false,
autoconnect: false,
topics: [],
services:[],
listeners: [],
}

Expand Down

0 comments on commit ae6fc68

Please sign in to comment.