🎂 Houdini 150 🚚 FREE FEDEX SHIPPING from 397 USD 🌎 WORLDWIDE SHIPPING for 25 USD
Créons une mini-application basique pour régler l'heure sur la SB Watch à l'aide d'un clavier numérique. La fonctionnalité sera similaire à celle que vous pouvez obtenir avec l'application TimeSmith, cependant, vous pouvez connecter directement Atom et la SB Watch et vous n'aurez pas besoin de téléphone. Cette mini-application s'appelle Atom Time !
Techniquement, vous n'avez besoin que d'Atom et d'une SB Watch, mais cette application supporte également PeekSmith 3 pour afficher l'heure saisie et vous donner un retour visuel sur l'heure que vous avez réglée. Si vous n'avez pas de PeekSmith connecté, l'application sera ignorée.
function main() {
ps.connect('*');
ps.print('AtomTime');
sbwatch.connect('SBWatch-155309');
// sbwatch.setTime('12:00');
}
let time = ''; // the time entered
let timeout = 0; // will contain a timeout ID
let mapping = [ // button layour
'1', '2', '3',
'4', '5', '6',
'7', '8', '9',
's', '0', 'x'
];
function send() {
clearTimeout(timeout); // don't trigger send
if (time === '') return; // nothing to set
if (time === '9999') {
sbwatch.setCurrentTime();
} else {
sbwatch.setTime(time);
}
time = ''; // reset to empty string
}
function onButtonClick(buttonId) {
let key = mapping[buttonId];
// send immediately
if (key === 's') {
send();
return;
}
// delete the last number or add a new
if (key === 'x') {
if (strLen(time) > 0) time = strSub(time, 0, strLen(time) - 1);
} else {
time = time + key;
}
// delete the previous timer, and start a new with 4s
clearTimeout(timeout);
timeout = setTimeout(send, 4000);
// display the time entered
ps.print(`<${time}>`);
}
// displays the processed time, and hand movement indicator
function printFormattedTime(time, moving) {
if (moving) time = `*${time}*`;
ps.print(time);
}
// there are events coming from the SB Watch and the buttons of Atom
function onEvent(e) {
console.log(e.value, e.type, e.source);
if (e.source === 'sbwatch:hands' && e.type === 'started') {
atom.vibrate('\'');
printFormattedTime(e.value, true);
}
if (e.source === 'sbwatch:hands' && e.type === 'finished') {
atom.vibrate('\'');
printFormattedTime(e.value, false);
}
if (e.type === 'click' && e.source === 'atom:button') {
onButtonClick(parseInt(e.value));
}
}