Switching to Dalek app

master
hopkira 2020-06-01 18:42:35 +01:00
parent 93f818eef4
commit 5c2bf29850
2 changed files with 255 additions and 255 deletions

View File

@ -19,19 +19,18 @@ bottom_btn = false;
msgNum = 0; // message number
NRF.setConnectionInterval(100);
Bangle.loadWidgets();
Bangle.drawWidgets();
/*
CONFIGURATION AREA - STATE VARIABLES
declare global variables for the toggle button
statuses; if you add an additional toggle button
you should declare it and initiase it here */
var status_printer = {value: false};
var status_tv = {value: false};
var status_light_hall = {value: false};
var status_light_study = {value: false};
var status_spk = {value: true};
var status_face = {value: true};
var status_iris_light = {value: false};
var status_iris = {value: false};
var status_hover = {value: false};
var status_dome = {value: false};
/* trsnsmit message
where
@ -71,16 +70,52 @@ with a unique name and the data from the Image Object
*/
const icons = [
{
name: "switch",
data: "gEBAP4B/AP4B/AP4B/AMgA3HPJdlVvI7/Hf47/Hf47/Hf47/Hf47/Hf4AvIPKRXAP4B/AP4B/AP4B/AJgA=="
name: "back",
data: "gEBAP4B/AP4B/AKgADHPI71HP45/HP45/HP45/HP45/Hf49/Hv49/Hv49/Hv49/Hv497He4B/AP4B/AJAA=="
},
{
name: "spk_on",
data: "gEBAP4B/AP4Bic/YAFPP4v1HrYZRVJo7ZDKp5jMJYvZHaYAHVL4LHACZrhADLBTJKI7dPLI7/Hf47/HeZBVFqZHZRJp1lAJ47LOtZTnHbIZDKLpHNAL69ZANp1tQbY5/AP4B/ANQ"
},
{
name: "spk_off",
data: "gEBAPhB7P/o9rFKI9pFKY9tXNYZNHrZXfMaoAHPOZhNF7LdXHpKpZEJpvPDZK1ZAB49NPLo9jHdI9NHd49PHebvxEJY9NI6I7dHpaDXcKqfPHLKjZHcpTjHbIZDKa73JHa4BXGY45xe5Y7zV+o9/Hv49JHe4BEA="
},
{
name: "facerecog",
data: "gEBAP4BSLuozNH9YpTHsolXPsYfdDraZhELIZhHeLtJELY1VC4Y7HHqoXJABYdNHa5bJDrLvfHfbrPZJI7nGZpdVNJ4lRIpaznRqp1hCq55ZC6IRPd8oPjW8Y5jSr45dEJppNHcIjLHZY5ja6rrhFK45pVqI5rGI4AHHNpx3ANA="
},
{
name: "sleep",
data: "gEBAP4B/AP4B2ACY7/Quq95HP45/HP4APOdY7fACZfnHcaZZAL45/HP45/E7YAHCaZFZHfbh/HP45/HOoAHHf4B/AP4B/AP4BIA="
},
{
name: "awake",
data: "gEBAP4B/AKyb7HfIAFHPI77Ov451Hf453Hf453HdoAbHf45/Hf5HrHNY7NHNo7/HO47/HO47HHPJ1/Heo51HfoB/ALg="
},
{
name: "happy",
data: "gEBAP4B/AP4BKa+oAXHNITfHK4ZtD5JZfHOojZaMYlXHMYnXHfI5nFaYPLaaIRNHf47/d/47/HtInTCZrfZHa4vNABYlVKLI3PbLrzfD7qTXDLaphHMIpLAB45hIKY1pAP4B/AMA"
},
{
name: "sad",
data: "gEBAP4B/AP4BKa+oAXHNITfHK4ZtD5JZfHOojZaMYlXHMYnXHfI5nFaYPLaaIRNHf47/d/47/CK4njCZ4APHcIVJBbbdTecYjZHr4fdSa4ZbEZ4lNCaY9dAB45hIKY1pAP4B/AMA"
},
{
name: "hover",
data: "gEBAP4B/AP7NedL4fZK7ojNHeJ35DJI7vC5Y7tVMI7XHNYnNYro7hHKI7lAK47/HdoAhHPI7/Hf47/Hf4AtHPI7/Hf47/Hd45LAP4B/ANwA="
},
{
name: "light",
data: "gEBAP4B/APi/Na67lfACZ/nNaI9lE6o9jEbI9hD7Y7dDsJZ3D6YRJHdIJHHfaz7Hf5Z/Hf4hZHMIjFEqIVVHsY5hDpI7TEqL1jVsqlTdM55THOJvHOuY7/HfI9JHOI9HHOoBgA=="
},
{
name: "back",
data: "gEBAP4B/AP4B/AKgADHPI71HP45/HP45/HP45/HP45/Hf49/Hv49/Hv49/Hv49/Hv497He4B/AP4B/AJAA=="
name: "speak",
data: "gEBAP4B/AP4BIbO4AXG+4/hAEY55HqoArHPI9PHfIAzHf47/Hf47/HeY9xHJI79Hto5NHtY5RHc45THco5VHcI3XHJpHRG7I7LEro5ZG+IB/AP4BwA=="
},
{
name: "dalek",
data: "gEBAP4B/AP4B/AJMQwQBBGucIoMAkADBhFhAoZBcAAQfJhEgB45BCHYMBjGiB4ZLCK5APDFpphBC5AbEJosY0YfCG4IAEJIYdGFYR5LHJYlEAI0Y4cY8YXMOpQBFlNFlMkOZA7MKII7JOAXkE4T1UERKtFHoxJBABY5QiGiD5kANYTnCiFiWIJVOgDZCOra3FoKxFDKI7hADQ7PkEIaoIHEaKYfJAoKPFAJcIGYIJHkI7UgMY8ZFHC5rVDKIZTCDIJhBA4ILBBoYFHC4QBEBogpBjHDdsJJEAoYAHKoTxWWb5tNWZOiHZRbBHbwtLF5ynBL7wtLjHjd6oAZkHkI5JJKAAZ3TkAjJhALBsJ5K0a/KkLvfkMEFpVhO8hrIU4QLGG4QAzkCdVAP4B/AP4Bb"
}
];
@ -110,61 +145,78 @@ the program and it may be adviable to use the 'status_name'
format to ensure it is clear.
*/
var lightBtn = {
var happyBtn = {
primary_colour: 0x653E,
primary_text: 'Lights',
primary_icon: 'light',
primary_text: 'Speak',
primary_icon: 'happy',
};
var socketsBtn = {
var sadBtn = {
primary_colour: 0x33F9,
primary_text: 'Sockets',
primary_icon: 'switch',
primary_text: 'Speak',
primary_icon: 'sad',
};
var lightHallBtn = {
var speakBtn = {
primary_colour: 0x33F9,
primary_text: 'Speak',
primary_icon: 'speak',
};
var faceBtn = {
primary_colour: 0xE9C7,
primary_text: 'Hall Off',
primary_text: 'Off',
primary_icon: 'facerecog',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'On',
secondary_icon : 'facerecog',
value: status_face
};
var irisLightBtn = {
primary_colour: 0xE9C7,
primary_text: 'Off',
primary_icon: 'light',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'Hall On',
secondary_text: 'On',
secondary_icon : 'light',
value: status_light_hall
value: status_iris_light
};
var lightStudyBtn = {
var irisBtn = {
primary_colour: 0xE9C7,
primary_text: 'Study Off',
primary_icon: 'light',
primary_text: 'Closed',
primary_icon: 'sleep',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'Study On',
secondary_icon : 'light',
value: status_light_study
};
var socketTVBtn = {
primary_colour: 0xE9C7,
primary_text: 'TV Off',
primary_icon: 'switch',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'TV On',
secondary_icon : 'switch',
value: status_tv
secondary_text: 'Open',
secondary_icon : 'awake',
value: status_iris
};
var socketPrinterBtn = {
var hoverBtn = {
primary_colour: 0xE9C7,
primary_text: 'Printer Off',
primary_icon: 'switch',
primary_text: 'Off',
primary_icon: 'hover',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'Printer On',
secondary_icon : 'switch',
value: status_printer
};
secondary_text: 'On',
secondary_icon : 'hover',
value: status_hover
};
var domeBtn = {
primary_colour: 0xE9C7,
primary_text: 'Off',
primary_icon: 'dalek',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'On',
secondary_icon : 'dalek',
value: status_dome
};
/*
CONFIGURATION AREA - SCREEN DEFINITIONS
@ -176,20 +228,30 @@ the left hand side of the screen. These
are defined as btn1, bt2 and bt3. The
values are names from the icon array.
*/
const homeScreen = {
left: lightBtn,
right: socketsBtn,
};
const lightsScreen = {
left: lightHallBtn,
right: lightStudyBtn,
const menuScreen = {
left: faceBtn,
right: speakBtn,
btn1: "hover",
btn2: "light",
btn3: "back"
};
const socketsScreen = {
left: socketTVBtn,
right: socketPrinterBtn,
const speakScreen = {
left: happyBtn,
right: sadBtn,
btn3: "back"
};
const irisScreen = {
left: irisBtn,
right: irisLightBtn,
btn3: "back"
};
const lightsScreen = {
left: hoverBtn,
right: domeBtn,
btn3: "back"
};
@ -227,63 +289,78 @@ one, then the state machine will change to that new State and redrsw
the screen appropriately.
To add in additional capabilities for button presses, simply add
an additional 'if' statement.
For toggle buttons, the value of the appropiate status object is
For toggle buttons, the value of the sppropiate status object is
inversed and the new value transmitted.
*/
/* The Home State/Page is where the application beings */
const Home = new State({
state: "Home",
screen: homeScreen,
state: "DalekMenu",
screen: menuScreen,
events: (event) => {
if ((event.object == "right") && (event.status == "end")) {
return SocketsMenu;
return Speak;
}
if ((event.object == "left") && (event.status == "end")) {
return LightsMenu;
status_face.value = !status_face.value;
transmit(this.state, "face", onOff(status_face.value));
return this;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const LightsMenu = new State({
state: "LightsMenu",
const Speak = new State({
state: "Speak",
screen: speakScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const Iris = new State({
state: "Iris",
screen: irisScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
if ((event.object == "right") && (event.status == "end")) {
status_iris_light.value = !status_iris_light.value;
transmit(this.state, "iris_light", onOff(status_iris_light.value));
return this;
}
if ((event.object == "left") && (event.status == "end")) {
status_iris.value = !status_iris.value;
transmit(this.state, "iris_servo", onOff(status_iris.value));
return this;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const Lights = new State({
state: "Lights",
screen: lightsScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
if ((event.object == "right") && (event.status == "end")) {
status_light_study.value = !status_light_study.value;
transmit(this.state, "study", onOff(status_light_study.value));
status_dome.value = !status_dome.value;
transmit(this.state, "dome", onOff(status_dome.value));
return this;
}
if ((event.object == "left") && (event.status == "end")) {
status_light_hall.value = !status_light_hall.value;
transmit(this.state, "hall", onOff(status_light_hall.value));
return this;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const SocketsMenu = new State({
state: "SocketsMenu",
screen: socketsScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
if ((event.object == "right") && (event.status == "end")) {
status_printer.value = !status_printer.value;
transmit(this.state, "printer", onOff(status_printer.value));
return this;
}
if ((event.object == "left") && (event.status == "end")) {
status_tv.value = !status_tv.value;
transmit(this.state, "tv", onOff(status_tv.value));
status_hover.value = !status_hover.value;
transmit(this.state, "hover", onOff(status_hover.value));
return this;
}
transmit(this.state, event.object, event.status);
@ -344,7 +421,7 @@ const drawButton = (params,side) => {
text = params.secondary_text;
icon = drawIcon(params.secondary_icon);
}
g.fillRect(0+x,28,119+x, 239);
g.fillRect(0+x,24,119+x, 239);
g.setColor(0x000);
g.setFont("Vector",15);
g.setFontAlign(0,0.0);

View File

@ -19,18 +19,19 @@ bottom_btn = false;
msgNum = 0; // message number
NRF.setConnectionInterval(100);
Bangle.loadWidgets();
Bangle.drawWidgets();
/*
CONFIGURATION AREA - STATE VARIABLES
declare global variables for the toggle button
statuses; if you add an additional toggle button
you should declare it and initiase it here */
var status_spk = {value: true};
var status_face = {value: true};
var status_iris_light = {value: false};
var status_iris = {value: false};
var status_hover = {value: false};
var status_dome = {value: false};
var status_printer = {value: false};
var status_tv = {value: false};
var status_light_hall = {value: false};
var status_light_study = {value: false};
/* trsnsmit message
where
@ -70,52 +71,16 @@ with a unique name and the data from the Image Object
*/
const icons = [
{
name: "back",
data: "gEBAP4B/AP4B/AKgADHPI71HP45/HP45/HP45/HP45/Hf49/Hv49/Hv49/Hv49/Hv497He4B/AP4B/AJAA=="
},
{
name: "spk_on",
data: "gEBAP4B/AP4Bic/YAFPP4v1HrYZRVJo7ZDKp5jMJYvZHaYAHVL4LHACZrhADLBTJKI7dPLI7/Hf47/HeZBVFqZHZRJp1lAJ47LOtZTnHbIZDKLpHNAL69ZANp1tQbY5/AP4B/ANQ"
},
{
name: "spk_off",
data: "gEBAPhB7P/o9rFKI9pFKY9tXNYZNHrZXfMaoAHPOZhNF7LdXHpKpZEJpvPDZK1ZAB49NPLo9jHdI9NHd49PHebvxEJY9NI6I7dHpaDXcKqfPHLKjZHcpTjHbIZDKa73JHa4BXGY45xe5Y7zV+o9/Hv49JHe4BEA="
},
{
name: "facerecog",
data: "gEBAP4BSLuozNH9YpTHsolXPsYfdDraZhELIZhHeLtJELY1VC4Y7HHqoXJABYdNHa5bJDrLvfHfbrPZJI7nGZpdVNJ4lRIpaznRqp1hCq55ZC6IRPd8oPjW8Y5jSr45dEJppNHcIjLHZY5ja6rrhFK45pVqI5rGI4AHHNpx3ANA="
},
{
name: "sleep",
data: "gEBAP4B/AP4B2ACY7/Quq95HP45/HP4APOdY7fACZfnHcaZZAL45/HP45/E7YAHCaZFZHfbh/HP45/HOoAHHf4B/AP4B/AP4BIA="
},
{
name: "awake",
data: "gEBAP4B/AKyb7HfIAFHPI77Ov451Hf453Hf453HdoAbHf45/Hf5HrHNY7NHNo7/HO47/HO47HHPJ1/Heo51HfoB/ALg="
},
{
name: "happy",
data: "gEBAP4B/AP4BKa+oAXHNITfHK4ZtD5JZfHOojZaMYlXHMYnXHfI5nFaYPLaaIRNHf47/d/47/HtInTCZrfZHa4vNABYlVKLI3PbLrzfD7qTXDLaphHMIpLAB45hIKY1pAP4B/AMA"
},
{
name: "sad",
data: "gEBAP4B/AP4BKa+oAXHNITfHK4ZtD5JZfHOojZaMYlXHMYnXHfI5nFaYPLaaIRNHf47/d/47/CK4njCZ4APHcIVJBbbdTecYjZHr4fdSa4ZbEZ4lNCaY9dAB45hIKY1pAP4B/AMA"
},
{
name: "hover",
data: "gEBAP4B/AP7NedL4fZK7ojNHeJ35DJI7vC5Y7tVMI7XHNYnNYro7hHKI7lAK47/HdoAhHPI7/Hf47/Hf4AtHPI7/Hf47/Hd45LAP4B/ANwA="
name: "switch",
data: "gEBAP4B/AP4B/AP4B/AMgA3HPJdlVvI7/Hf47/Hf47/Hf47/Hf47/Hf4AvIPKRXAP4B/AP4B/AP4B/AJgA=="
},
{
name: "light",
data: "gEBAP4B/APi/Na67lfACZ/nNaI9lE6o9jEbI9hD7Y7dDsJZ3D6YRJHdIJHHfaz7Hf5Z/Hf4hZHMIjFEqIVVHsY5hDpI7TEqL1jVsqlTdM55THOJvHOuY7/HfI9JHOI9HHOoBgA=="
},
{
name: "speak",
data: "gEBAP4B/AP4BIbO4AXG+4/hAEY55HqoArHPI9PHfIAzHf47/Hf47/HeY9xHJI79Hto5NHtY5RHc45THco5VHcI3XHJpHRG7I7LEro5ZG+IB/AP4BwA=="
},
{
name: "dalek",
data: "gEBAP4B/AP4B/AJMQwQBBGucIoMAkADBhFhAoZBcAAQfJhEgB45BCHYMBjGiB4ZLCK5APDFpphBC5AbEJosY0YfCG4IAEJIYdGFYR5LHJYlEAI0Y4cY8YXMOpQBFlNFlMkOZA7MKII7JOAXkE4T1UERKtFHoxJBABY5QiGiD5kANYTnCiFiWIJVOgDZCOra3FoKxFDKI7hADQ7PkEIaoIHEaKYfJAoKPFAJcIGYIJHkI7UgMY8ZFHC5rVDKIZTCDIJhBA4ILBBoYFHC4QBEBogpBjHDdsJJEAoYAHKoTxWWb5tNWZOiHZRbBHbwtLF5ynBL7wtLjHjd6oAZkHkI5JJKAAZ3TkAjJhALBsJ5K0a/KkLvfkMEFpVhO8hrIU4QLGG4QAzkCdVAP4B/AP4Bb"
name: "back",
data: "gEBAP4B/AP4B/AKgADHPI71HP45/HP45/HP45/HP45/Hf49/Hv49/Hv49/Hv49/Hv497He4B/AP4B/AJAA=="
}
];
@ -145,78 +110,61 @@ the program and it may be adviable to use the 'status_name'
format to ensure it is clear.
*/
var happyBtn = {
var lightBtn = {
primary_colour: 0x653E,
primary_text: 'Speak',
primary_icon: 'happy',
primary_text: 'Lights',
primary_icon: 'light',
};
var sadBtn = {
var socketsBtn = {
primary_colour: 0x33F9,
primary_text: 'Speak',
primary_icon: 'sad',
primary_text: 'Sockets',
primary_icon: 'switch',
};
var speakBtn = {
primary_colour: 0x33F9,
primary_text: 'Speak',
primary_icon: 'speak',
};
var faceBtn = {
var lightHallBtn = {
primary_colour: 0xE9C7,
primary_text: 'Off',
primary_icon: 'facerecog',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'On',
secondary_icon : 'facerecog',
value: status_face
};
var irisLightBtn = {
primary_colour: 0xE9C7,
primary_text: 'Off',
primary_text: 'Hall Off',
primary_icon: 'light',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'On',
secondary_text: 'Hall On',
secondary_icon : 'light',
value: status_iris_light
value: status_light_hall
};
var irisBtn = {
var lightStudyBtn = {
primary_colour: 0xE9C7,
primary_text: 'Closed',
primary_icon: 'sleep',
primary_text: 'Study Off',
primary_icon: 'light',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'Open',
secondary_icon : 'awake',
value: status_iris
};
secondary_text: 'Study On',
secondary_icon : 'light',
value: status_light_study
};
var hoverBtn = {
var socketTVBtn = {
primary_colour: 0xE9C7,
primary_text: 'Off',
primary_icon: 'hover',
primary_text: 'TV Off',
primary_icon: 'switch',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'On',
secondary_icon : 'hover',
value: status_hover
secondary_text: 'TV On',
secondary_icon : 'switch',
value: status_tv
};
var domeBtn = {
primary_colour: 0xE9C7,
primary_text: 'Off',
primary_icon: 'dalek',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'On',
secondary_icon : 'dalek',
value: status_dome
};
var socketPrinterBtn = {
primary_colour: 0xE9C7,
primary_text: 'Printer Off',
primary_icon: 'switch',
toggle: true,
secondary_colour: 0x3F48,
secondary_text: 'Printer On',
secondary_icon : 'switch',
value: status_printer
};
/*
CONFIGURATION AREA - SCREEN DEFINITIONS
@ -228,30 +176,20 @@ the left hand side of the screen. These
are defined as btn1, bt2 and bt3. The
values are names from the icon array.
*/
const menuScreen = {
left: faceBtn,
right: speakBtn,
btn1: "hover",
btn2: "light",
btn3: "back"
};
const speakScreen = {
left: happyBtn,
right: sadBtn,
btn3: "back"
};
const irisScreen = {
left: irisBtn,
right: irisLightBtn,
btn3: "back"
const homeScreen = {
left: lightBtn,
right: socketsBtn,
};
const lightsScreen = {
left: hoverBtn,
right: domeBtn,
left: lightHallBtn,
right: lightStudyBtn,
btn3: "back"
};
const socketsScreen = {
left: socketTVBtn,
right: socketPrinterBtn,
btn3: "back"
};
@ -289,78 +227,63 @@ one, then the state machine will change to that new State and redrsw
the screen appropriately.
To add in additional capabilities for button presses, simply add
an additional 'if' statement.
For toggle buttons, the value of the sppropiate status object is
For toggle buttons, the value of the appropiate status object is
inversed and the new value transmitted.
*/
/* The Home State/Page is where the application beings */
const Home = new State({
state: "DalekMenu",
screen: menuScreen,
state: "Home",
screen: homeScreen,
events: (event) => {
if ((event.object == "right") && (event.status == "end")) {
return Speak;
return SocketsMenu;
}
if ((event.object == "left") && (event.status == "end")) {
status_face.value = !status_face.value;
transmit(this.state, "face", onOff(status_face.value));
return this;
return LightsMenu;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const Speak = new State({
state: "Speak",
screen: speakScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const Iris = new State({
state: "Iris",
screen: irisScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
if ((event.object == "right") && (event.status == "end")) {
status_iris_light.value = !status_iris_light.value;
transmit(this.state, "iris_light", onOff(status_iris_light.value));
return this;
}
if ((event.object == "left") && (event.status == "end")) {
status_iris.value = !status_iris.value;
transmit(this.state, "iris_servo", onOff(status_iris.value));
return this;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const Lights = new State({
state: "Lights",
const LightsMenu = new State({
state: "LightsMenu",
screen: lightsScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
if ((event.object == "right") && (event.status == "end")) {
status_dome.value = !status_dome.value;
transmit(this.state, "dome", onOff(status_dome.value));
status_light_study.value = !status_light_study.value;
transmit(this.state, "study", onOff(status_light_study.value));
return this;
}
if ((event.object == "left") && (event.status == "end")) {
status_hover.value = !status_hover.value;
transmit(this.state, "hover", onOff(status_hover.value));
status_light_hall.value = !status_light_hall.value;
transmit(this.state, "hall", onOff(status_light_hall.value));
return this;
}
transmit(this.state, event.object, event.status);
return this;
}
});
const SocketsMenu = new State({
state: "SocketsMenu",
screen: socketsScreen,
events: (event) => {
if ((event.object == "bottom") && (event.status == "end")) {
return Home;
}
if ((event.object == "right") && (event.status == "end")) {
status_printer.value = !status_printer.value;
transmit(this.state, "printer", onOff(status_printer.value));
return this;
}
if ((event.object == "left") && (event.status == "end")) {
status_tv.value = !status_tv.value;
transmit(this.state, "tv", onOff(status_tv.value));
return this;
}
transmit(this.state, event.object, event.status);
@ -421,7 +344,7 @@ const drawButton = (params,side) => {
text = params.secondary_text;
icon = drawIcon(params.secondary_icon);
}
g.fillRect(0+x,24,119+x, 239);
g.fillRect(0+x,28,119+x, 239);
g.setColor(0x000);
g.setFont("Vector",15);
g.setFontAlign(0,0.0);