const rl = require('readline-sync'); const TJBot = require('tjbot'); var tj = new TJBot(['servo'], {log: {level: 'debug'}}, {}); tj.armBack(); var answer = rl.question('Is TJBot\'s arm in the BACKWARD position? Y/N > '); if (answer.toLowerCase() != 'y') { throw new Error('expected arm to be in backward position, please check servo wiring.'); } tj.raiseArm(); answer = rl.question('Is TJBot\'s arm in the RAISED position? Y/N > '); if (answer.toLowerCase() != 'y') { throw new Error('expected arm to be in raised position, please check servo wiring.'); } tj.lowerArm(); answer = rl.question('Is TJBot\'s arm in the LOWERED position? Y/N > '); if (answer.toLowerCase() != 'y') { throw new Error('expected arm to be in lowered position, please check servo wiring.'); } tj.wave(); answer = rl.question('Did TJBot wave? Y/N > '); if (answer.toLowerCase() != 'y') { throw new Error('expected tj to wave, please check servo wiring.'); }
tj.converse(WORKSPACEID, utterance, function(response) { var spoken = false; // check if an intent to control the bot was found if (response.object.intents != undefined) { var intent = response.object.intents[0]; if (intent != undefined && intent.intent != undefined) { switch (intent.intent) { case "lower-arm": tj.speak(response.description); tj.lowerArm(); spoken = true; break; case "raise-arm": tj.speak(response.description); tj.raiseArm(); spoken = true; break; case "wave": tj.speak(response.description); tj.wave(); spoken = true; break; case "greeting": tj.speak(response.description); tj.wave(); spoken = true; break; case "shine": var misunderstood = false; if (response.object.entities != undefined) { var entity = response.object.entities[0]; if (entity != undefined && entity.value != undefined) { var color = entity.value; tj.speak(response.description); tj.shine(color); spoken = true; } else { misunderstood = true; } } else { misunderstood = true; } if (misunderstood == true) { tj.speak("I'm sorry, I didn't understand your color"); spoken = true; } break; case "see": if (config.hasCamera == false) { tj.speak("I'm sorry, I don't have a camera so I can't see anything"); spoken = true; } else { tj.speak(response.description); tj.see().then(function(objects) { if (objects.length == 0) { tj.speak("I'm not sure I see anything"); } else if (objects.length == 1) { var object = objects[0].class; tj.speak("I see " + object); } else if (objects.length == 2) { var objects = objects[0].class + " and " + objects[1].class; tj.speak("I'm looking at " + objects); } else { var objects = objects[0].class + ", " + objects[1].class + ", and " + objects[2].class + ", and a few other things too"; tj.speak("I'm looking at " + objects); } }); spoken = true; } break; } } } // if we didn't speak a response yet, speak it now if (spoken == false) { tj.speak(response.description); } });