Skip to content

Instantly share code, notes, and snippets.

@elinux9000
Created August 23, 2020 15:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elinux9000/ef23cc39616650503f8f0f4744e803f8 to your computer and use it in GitHub Desktop.
Save elinux9000/ef23cc39616650503f8f0f4744e803f8 to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
//https://xstate.js.org/viz/?gist=https://gist.github.com/monzie9000/8006ab6c5db67c596802c73a6ab2a3a5
//https://app.lucidchart.com/documents/edit/de713c94-5b57-4100-a486-2fbdef83f28d/HWEp-vi-RSFO?beaconFlowId=DB76397B0359590F
"use strict";
const debug = false;
var pointer_upulse; //pointer that is used to update upulse
if (visualizing())
debugLog("VIZ", debug);
else
debugLog("LOCAL", debug);
function visualizing()
{
let getUrl = window.location;
//console.log("URL=" + getUrl.host);
if (getUrl.host.includes("xstate.js.org"))
return true;
return false;
}
function debugLog(msg, debug)
{
if (debug == undefined)
console.log("incorrect call to debugLog " + msg);
if (debug)
console.log(msg);
}
function postDone(context, event)
{
let debug = false;
debugLog("postDone",debug);
try
{
context.counter++;
$("#myBar").css("width", context.counter + "%");
if (context.counter < 100)
{
return true;
}
}
catch (err)
{
}
return false;
};
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function getCookie(c_name) {
if (document.cookie.length > 0) {
var c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
var c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
class TreatmentParms {
constructor(i)
{
if (i==9)
this.label="System";
else
this.label = "Preset " + (i+1);
}
label = "unlabelled";
delivery_device;
spot_size;
power = 0;
energy = 0;
micro_pulse_enabled = true;
micro_pulse_duty_cycle = 5;
micro_pulse_duration = 0.1;
micro_pulse_interval = 1.9;
macro_pulse_duration = 20000;
countdown_enabled = true;
macro_pulse_interval = 10;
macro_pulse_passes = 5;
macro_pulse_actual_pass;
pulses = 0;
total_energy = 0;
valid = false;
}
var preset_arr = [];
var tempParm;
var upulse_tempParm;
var preset_index = 0;
var enable_breakpoints = false;
function breakpoint()
{
let debug = true;
if (enable_breakpoints) {
debugLog("breakpoint",debug);
}
}
const guiMachine = Machine(
{
id: 'webGui',
initial: 'start_state',
context:
{
progressBar: 0,
timeout: 0,
counter: 0,
previousState: 0,
last: "",
temp: 0,
bright_value: 8,
volume_value: 6,
power: 0,
total_energy: 0,
pulses: 0,
device: "",//empty when nothing connected, otherwise name of device
},
on:
{
KEYSWITCH_OFF: "start_state.off_state",
ESTOP: "start_state.off_state",
ENERGY_RESET_CLICKED:
{
actions: "reset_energy_action",
},
PULSES_RESET_CLICKED:
{
actions: "reset_pulses_action",
},
INTERVAL_RESET_CLICKED:
{
actions: "reset_passes_action",
},
DEVICE_CONNECT:
{
target: "device_state",
actions: "device_connected",
},
DEVICE_DISCONNECT:
{
target: "operation_state.standby_state",
actions: "device_disconnected"
},
},
states:
{
start_state:
{
initial: "off_state",
states:
{
off_state:
{
on:
{
KEYSWITCH_ON: "post_state",
}
},
post_state:
{
invoke:
{
id: 'incInterval',
src: (context, event) => (callback, onReceive) =>
{
if (!visualizing())
{
// This will send the event to the parent periodically
const id = setInterval(() => callback('TICK'), 20);
// Perform cleanup
return () => clearInterval(id);
}
}
},
entry: function(context, event)
{
let debug = false;
try
{
var json_str = getCookie('preset_arr_cookie');
if (json_str) {
preset_arr = JSON.parse(json_str);
}
else {
debugLog("initialize array", debug);
preset_arr = new Array(10);
for (let i = 0; i < 10; i++)
{
preset_arr[i] = new TreatmentParms(i);
debugLog("preset[" + i + "] " + preset_arr[i].label, debug);
}
}
$("#myProgress").show();
}
catch (err)
{
console.log(err);
}
},
exit: function(context, event)
{
try
{
$("#myProgress").hide();
context.counter = 0;
}
catch (err)
{
}
},
on:
{
TICK: [
{
target: "post_state",
internal: true,
cond: postDone,
action: assign(
{
counter: context => context.counter + 1
}),
},
{
target: "#standby_id",
}, ]
},
},
},
},
bright_state:
{
id:"bright_state_uid",
entry: ["show_bright_screen", "read_bright_value"],
exit: ["hide_bright_screen"],
on:
{
CANCEL:
{
target: '#hist_state_uid'
},
OK:
{
target: '#hist_state_uid',
actions: "write_bright_value",
},
CHANGE_VAL:
{
target: 'bright_state',
actions: "update TEMP_VAR, brightness",
},
}
},
volume_state:
{
id:"volume_state_uid",
entry: ["show_volume_screen", "read_volume_value"],
exit: ["hide_volume_screen"],
on:
{
CANCEL:
{
target: '#hist_state_uid'
},
OK:
{
target: '#hist_state_uid',
actions: "write_volume_value",
},
CHANGE_VAL:
{
target: 'volume_state',
actions: "update TEMP_VAR, volume",
},
}
},
device_state:
{
entry: ["show_device_screen"],
exit: ["hide_device_screen"],
on:
{
EDIT_PRESET_CLICKED:
{
target:"operation_state.standby_state.preset_state",
},
OK_CLICKED:
{
target:"operation_state.standby_state.main_state",
actions:"load_device_defaults",
},
CANCEL_CLICKED:
{
target:"operation_state.standby_state.main_state",
},
},//on:
},
micro_pulse_state:
{
id:"micro_pulse_state_uid",
entry: ["show_micro_pulse_screen", "read_micro_pulse_value"],
exit: ["hide_micro_pulse_screen"],
on:
{
CANCEL_UPULSE:
{
target: '#hist_state_uid'
},
DEFAULT:
{
actions: "micro_pulse_defaults",
},
SAVE_UPULSE:
{
target: '#hist_state_uid',
actions: "write_micro_pulse_value",
},
DUTY:
{
actions: "update_duty_cycle",
},
DURATION_CLICKED:
{
actions: "update_micro_duration",
},
INTERVAL_CLICKED:
{
actions: "update_micro_interval",
},
}
},
operation_state:
{
initial:"standby_state",
states:
{
treat_state:
{
entry: ["show_screen", "save_state", "update_main_screen_values","handle_leds_treat","update_working_vars_entry"],
exit: ["hide_screen", "clear_main_focus","handle_leds_standby","update_working_vars_exit"],
on:
{
TICK:
{
actions: ["handle_tick"],
},
FOOTSWITCH:
{
actions: ["handle_footswitch"],
},
POWER_CLICKED:
{
actions: ["handle_power_change"],
},
INTERVAL_CLICKED:
{
actions: "update_macro_interval",
},
DURATION_CLICKED:
{
actions: "update_macro_duration",
},
TREAT_CLICKED: "standby_state.main_state",
MICRO_PULSE_CLICKED: "#micro_pulse_state_uid",
},
},//treat_state
hist_state:
{
id: "hist_state_uid",
type: 'history',
history: "deep",
target: 'standby_state.main_state'
},//hist_state
standby_state:
{
id: "standby_id",
initial: 'main_state',
on:
{
MAIN_CLICKED: 'standby_state.main_state',
PRESET_CLICKED: 'standby_state.preset_state',
SETUP_CLICKED: 'standby_state.setup_state',
INFO_CLICKED: 'standby_state.info_state',
BRIGHT_CLICKED: '#bright_state_uid',
VOLUME_CLICKED: '#volume_state_uid',
MICRO_PULSE_CLICKED: "#micro_pulse_state_uid",
CW_CLICKED:
{
actions: ["clear_main_focus", "switch_cw_button", "update_main_screen_values"],
},
BACK_CLICKED:
{
actions: "back",
},
TREAT_CLICKED: "treat_state",
},
states:
{
preset_editing_state:
{
id: "preset_editing_uid",
entry: ["show_screen","update_working_vars_entry","save_state", "populate_preset_action"],
exit: ["hide_screen"],
on:
{
EDIT_LABEL:
{
actions: "show_keyboard_action",
},
ACCEPT:
{
actions: "hide_keyboard_action",
},
CANCEL:
{
actions: "hide_keyboard_action",
},
OK_BUTTON:
{
target: "preset_state",
actions: ["update_preset_action","update_working_vars_exit"],
},
CANCEL_BUTTON: "preset_state",
RESET_BUTTON:
{
actions: "reset_preset",
},
CW_CLICKED:
{
actions: "switch_cw_button_editing",
},
POWER_CLICKED:
{
actions: ["handle_power_change"],
},
DURATION_CLICKED:
{
actions: "update_macro_duration",
},
INTERVAL_CLICKED:
{
actions: "update_macro_interval",
},
}
},
main_state:
{
entry: ["show_screen", "save_state","update_working_vars_entry"],
exit: ["hide_screen", "clear_main_focus","update_working_vars_exit"],
on:
{
POWER_CLICKED:
{
actions: ["handle_power_change"],
},
INTERVAL_CLICKED:
{
actions: "update_macro_interval",
},
DURATION_CLICKED:
{
actions: "update_macro_duration",
},
},
},
preset_state:
{
entry: ["show_screen", "save_state","populate_labels_action","show_preset_parms_action"],
exit: ["hide_screen"],
on:
{
EDIT_PRESET_CLICKED: "#preset_editing_uid",
PRESET_BUTTON_CLICKED:
{
actions: ["show_preset_parms_action"],
},
PRESET_SELECT_CLICKED:
{
actions: ["select_preset"],
},
PRESET_RESET_CLICKED:
{
actions: ["reset_all_presets"],
},
PRESET_CANCEL_CLICKED:
{
actions: "hide_preset_parms_action",
},
}
},
setup_state:
{
entry: ["show_screen", "save_state"],
exit: ["hide_screen"],
},
info_state:
{
entry: ["show_screen", "save_state"],
exit: ["hide_screen"],
},
hist_state_ORIG:
{
type: 'history',
target: 'main_state'
}
},
},//standby_state
},
}//operation_state
},
},
{
actions:
{
// action implementations
load_device_defaults: function(ctx,event,actionMeta)
{
preset_arr[9] = new TreatmentParms(9);//need to add defaults for other devices
},//load_device_defaults
show_device_screen: function(ctx,event,actionMeta)
{
if (!visualizing()) {
$("#device_screen").show();
}
},
hide_device_screen: function(ctx,event,actionMeta)
{
if (!visualizing()) {
$("#device_screen").hide();
}
},
device_connected: function(ctx,event,actionMeta)
{
let debug = true;
ctx.device = event.data;
debugLog("Device connected:"+ctx.device,debug);
},
device_disconnected: function(ctx,event,actionMeta)
{
let debug = true;
ctx.device = "";
debugLog("Device disconnected",debug);
},
reset_all_presets: function (ctx, event, actionMeta)
{
let debug = true;
//Confirm selection
if (confirm("Confirm resetting all presets to factory defaults")) {
for (let i = 0; i < 10; i++)
{
preset_arr[i] = new TreatmentParms(i);
}
populate_labels(ctx,event,actionMeta);
show_preset_parms(ctx,event,actionMeta);
}
},
select_preset: function (ctx, event, actionMeta)
{
let debug = true;
if (preset_index >-1 && preset_index <9)
{
//Confirm selection
var label = preset_arr[preset_index].label;
if (confirm("Confirm loading parameters from "+label)) {
preset_arr[9] = { ...preset_arr[preset_index] }
}
else {
}
}
},
reset_preset: function(ctx,event,actionMeta)
{
tempParm = new TreatmentParms(preset_index);
populate_preset_func(ctx, event, actionMeta);
},
handle_leds_treat: function(ctx,event,actionMeta)
{
if (!visualizing()) {
$("#treat_led").attr("data-state","on");
$("#standby_led").attr("data-state","off");
$("#treat_toggle_main").attr("data-state","pressed");
}
},
handle_leds_standby: function(ctx,event,actionMeta)
{
//Don't change leds to standby if going to uPulse editing.
if (actionMeta.state.value == "micro_pulse_state")
return;
if (!visualizing()) {
$("#treat_led").attr("data-state","off");
$("#standby_led").attr("data-state","on");
$("#treat_toggle_main").attr("data-state","unpressed");
}
},
populate_labels_action: function(ctx,event,actionMeta)
{
populate_labels(ctx,event,actionMeta);
},
update_preset_action: function(ctx,event,actionMeta)
{
tempParm.valid = true;
},
hide_preset_parms_action: function(ctx, event, actionMeta)
{
preset_index=-1;
$("#parm_screen").hide();
for (var j=0;j<9;j++) {
$("#preset_"+(j+1)).attr("data-state","unpressed");
}
},
show_preset_parms_action: function(ctx, event, actionMeta)
{
show_preset_parms(ctx, event, actionMeta);
},
hide_keyboard_action: function(ctx, event, actionMeta)
{
hide_keyboard_action(ctx, event, actionMeta);
},
show_keyboard_action: function(ctx, event, actionMeta)
{
show_keyboard_action(ctx, event, actionMeta);
},
populate_preset_action: function(ctx, event, actionMeta)
{
populate_preset_func(ctx, event, actionMeta);
},
reset_passes_action: function(context, event, actionMeta)
{
reset_passes_func(context, event, actionMeta);
},
reset_pulses_action: function(context, event, actionMeta)
{
reset_pulses_func(context, event, actionMeta);
},
reset_energy_action: function(context, event, actionMeta)
{
reset_energy_func(context, event, actionMeta);
},
handle_tick: function(context, event, actionMeta)
{
handle_tick(context, event, actionMeta);
},
handle_footswitch: function(context, event, actionMeta)
{
handle_footswitch(context);
},
update_macro_interval: function(context, event, actionMeta)
{
let delta = event.data;
if (tempParm.countdown_enabled)
{
if (delta == 1)
{
if (tempParm.macro_pulse_passes < 10)
tempParm.macro_pulse_passes += 1;
}
else
{
if (tempParm.macro_pulse_passes > 4)
tempParm.macro_pulse_passes -= 1;
}
}
else if (tempParm.macro_pulse_duration < 10000)
{
if (delta == 1)
{
if (tempParm.macro_pulse_interval < 3000)
tempParm.macro_pulse_interval += 10;
else
tempParm.macro_pulse_interval = 3010;
}
else if (delta == -1)
{
if (tempParm.macro_pulse_interval > 0)
tempParm.macro_pulse_interval -= 10;
}
}
if (!visualizing())
{
if (in_main_state(actionMeta)) {
switch_main_screen_focus("#interval_setpoint");
update_main_screen_values(tempParm, event, actionMeta);
}
else {
switch_editing_screen_focus("#interval_setpoint_editing");
update_editing_screen_values(tempParm, event, actionMeta);
}
}
},
update_macro_duration: function(context, event, actionMeta)
{
debugLog("update_macro_duration triggered", debug);
let delta = event.data;
if (tempParm.countdown_enabled)
{
if (delta == 1)
{
if (tempParm.macro_pulse_duration < 90000)
tempParm.macro_pulse_duration += 10000;
}
else
{
if (tempParm.macro_pulse_duration > 20000)
tempParm.macro_pulse_duration -= 10000;
else
{
tempParm.countdown_enabled = false;
tempParm.macro_pulse_duration = 60000;
}
}
}
else
{
if (delta == 1)
{
if (tempParm.macro_pulse_duration < 3000)
tempParm.macro_pulse_duration += 10;
else if (tempParm.macro_pulse_duration < 9000)
tempParm.macro_pulse_duration += 500;
else if (tempParm.macro_pulse_duration == 9000)
tempParm.macro_pulse_duration += 1000;
else if (tempParm.macro_pulse_duration < 60000)
tempParm.macro_pulse_duration += 10000;
else
{
tempParm.countdown_enabled = true;
tempParm.macro_pulse_duration = 20000;
}
}
else
{
if (tempParm.macro_pulse_duration > 10)
{
if (tempParm.macro_pulse_duration <= 3000)
tempParm.macro_pulse_duration -= 10;
else if (tempParm.macro_pulse_duration <= 9000)
tempParm.macro_pulse_duration -= 500;
else if (tempParm.macro_pulse_duration == 10000)
tempParm.macro_pulse_duration -= 1000;
else if (tempParm.macro_pulse_duration <= 60000)
tempParm.macro_pulse_duration -= 10000;
}
}
}
if (!visualizing())
{
if (in_main_state(actionMeta)) {
switch_main_screen_focus("#duration_setpoint");
update_main_screen_values(tempParm, event, actionMeta);
}
else {
switch_editing_screen_focus("#duration_setpoint_editing");
update_editing_screen_values(tempParm, event, actionMeta);
}
}
},
clear_main_focus: function(context, event, actionMeta)
{
switch_main_screen_focus();
preset_arr[9] = { ...tempParm };
upulse_tempParm = { ...tempParm };
},
switch_cw_button_editing: function(context, event, actionMeta)
{
tempParm.micro_pulse_enabled = false;
if (!visualizing())
{
$("#upulse_editing").attr("data-state", "unpressed");
$("#cw_editing").attr("data-state", "pressed");
$("#editing_screen_duty_cycle").hide();
}
},
switch_cw_button: function(context, event, actionMeta)
{
context.mode = "macro";
if (!visualizing())
{
$("#upulse").attr("data-state", "unpressed");
$("#cw").attr("data-state", "pressed");
$("#main_screen_duty_cycle").hide();
}
},
update_working_vars_entry: function(context, event, actionMeta)
{
update_working_vars_entry(context, event, actionMeta);
},
update_working_vars_exit: function(context, event, actionMeta)
{
update_working_vars_exit(context, event, actionMeta);
},
update_main_screen_values: function(context, event, actionMeta)
{
update_main_screen_values(context, event, actionMeta);
},
// Micro pulse
micro_pulse_defaults: function(context, event, actionMeta)
{
micro_pulse_defaults(context, event, actionMeta);
},
handle_power_change: function(context, event, actionMeta)
{
//Power is handled in 2 places, preset editing and main
//If in main then change preset_arr[9], otherwise tempParm
let delta = event.data;
if (delta == 1)
{
if (tempParm.power == 0)
tempParm.power = 50;
else if (tempParm.power < 3000)
tempParm.power += 10;
}
else
{
if (tempParm.power == 50)
tempParm.power = 0;
else if (tempParm.power > 0)
tempParm.power -= 10;
}
tempParm.energy = calculateEnergy(tempParm);
if (!visualizing())
{
if (in_main_state(actionMeta)) {
switch_main_screen_focus("#power_setpoint");
update_main_screen_values(context, event, actionMeta);
}
else {
switch_editing_screen_focus("#power_setpoint_editing","#power_setpoint_units_editing","#energy_setpoint_editing");
update_editing_screen_values(context, event, actionMeta);
}
}
},
update_micro_interval: function(context, event, actionMeta)
{
let delta = event.data;
if (delta == 1)
{
if (upulse_tempParm.micro_pulse_interval.toFixed(2) < 10.0)
{
let d = parseFloat(upulse_tempParm.micro_pulse_interval) + 0.1;
upulse_tempParm.micro_pulse_interval = d;
}
}
else if (upulse_tempParm.micro_pulse_interval > 1)
{
let d = parseFloat(upulse_tempParm.micro_pulse_interval) - 0.1;
upulse_tempParm.micro_pulse_interval = d;
}
calc_micro_duty_cycle(upulse_tempParm);
if (!visualizing())
{
$("#duty_cycle").text(upulse_tempParm.micro_pulse_duty_cycle.toFixed(1) + "%");
$("#micro_pulse_interval").text(upulse_tempParm.micro_pulse_interval.toFixed(1));
$("#micro_pulse_interval").css("background-color", "#f5f593");
$("#micro_pulse_duration").css("background-color", "white");
}
debugLog("temp interval=" + upulse_tempParm.micro_pulse_interval, debug);
},
update_micro_duration: function(context, event, actionMeta)
{
let delta = event.data;
if (delta == 1)
{
if (upulse_tempParm.micro_pulse_duration < 1)
{
let d = parseFloat(upulse_tempParm.micro_pulse_duration) + 0.05;
upulse_tempParm.micro_pulse_duration = d;
}
}
else if (upulse_tempParm.micro_pulse_duration > 0.05)
{
let d = parseFloat(upulse_tempParm.micro_pulse_duration) - 0.05;
upulse_tempParm.micro_pulse_duration = d;
}
calc_micro_duty_cycle(upulse_tempParm);
if (!visualizing())
{
$("#duty_cycle").text(upulse_tempParm.micro_pulse_duty_cycle.toFixed(1) + "%");
$("#micro_pulse_duration").text(upulse_tempParm.micro_pulse_duration.toFixed(2));
$("#micro_pulse_duration").css("background-color", "#f5f593");
$("#micro_pulse_interval").css("background-color", "white");
}
debugLog("temp duration=" + upulse_tempParm.micro_pulse_duration, debug);
},
update_duty_cycle: function(context, event, actionMeta)
{
upulse_tempParm.micro_pulse_duty_cycle = parseFloat(event.data);
debugLog("temp duty=" + JSON.stringify(upulse_tempParm), debug);
if (upulse_tempParm.micro_pulse_duty_cycle == 5)
{
upulse_tempParm.micro_pulse_duration = 0.1;
upulse_tempParm.micro_pulse_interval = 1.9;
}
if (upulse_tempParm.micro_pulse_duty_cycle == 10)
{
upulse_tempParm.micro_pulse_duration = 0.2;
upulse_tempParm.micro_pulse_interval = 1.8;
}
if (upulse_tempParm.micro_pulse_duty_cycle == 15)
{
upulse_tempParm.micro_pulse_duration = 0.3;
upulse_tempParm.micro_pulse_interval = 1.7;
}
if (upulse_tempParm.micro_pulse_duty_cycle == 31.3)
{
upulse_tempParm.micro_pulse_duration = 0.5;
upulse_tempParm.micro_pulse_interval = 1.1;
}
if (!visualizing())
{
$("#duty_cycle").text(upulse_tempParm.micro_pulse_duty_cycle + "%");
$("#micro_pulse_duration").text(upulse_tempParm.micro_pulse_duration.toFixed(1));
$("#micro_pulse_interval").text(upulse_tempParm.micro_pulse_interval.toFixed(1));
$("#micro_pulse_interval").css("background-color", "white");
$("#micro_pulse_duration").css("background-color", "white");
}
},
show_micro_pulse_screen: function(context, event, actionMeta)
{
if (!visualizing())
{
$("#micro_pulse_screen").show();
$("#micro_pulse_interval").css("background-color", "white");
$("#micro_pulse_duration").css("background-color", "white");
$("#main_screen_duty_cycle").show();
}
},
hide_micro_pulse_screen: function(context, event, actionMeta)
{
var debug = false;
if (!visualizing())
{
debugLog("Hiding micro_pulse screen", debug);
$("#micro_pulse_screen").hide();
}
},
read_micro_pulse_value: function(context, event, actionMeta)
{
upulse_tempParm = {
...tempParm
};
if (!visualizing())
{
$("#duty_cycle").text(upulse_tempParm.micro_pulse_duty_cycle.toFixed(1) + "%");
$("#micro_pulse_duration").text(upulse_tempParm.micro_pulse_duration.toFixed(1));
$("#micro_pulse_interval").text(upulse_tempParm.micro_pulse_interval.toFixed(1));
}
},
write_micro_pulse_value: function(context, event, actionMeta)
{
upulse_tempParm.micro_pulse_enabled = true;
upulse_tempParm.valid = true;
tempParm = {
...upulse_tempParm
};
//if (in_main_state(actionMeta)) {
// preset_arr[9] = { ...upulse_tempParm };
//}
debugLog("writing micro_pulse_value=" + JSON.stringify(upulse_tempParm), debug);
if (!visualizing())
{
if (in_main_state(actionMeta)) {
$("#upulse").attr("data-state", "pressed");
$("#cw").attr("data-state", "unpressed");
}
else {
$("#upulse_editing").attr("data-state", "pressed");
$("#cw_editing").attr("data-state", "unpressed");
}
}
},
//Volume screen
show_volume_screen: function(context, event, actionMeta)
{
if (!visualizing())
{
$("#volume_screen").show();
debugLog("Showing volume screen", debug);
}
},
hide_volume_screen: function(context, event, actionMeta)
{
if (!visualizing())
{
debugLog("Hiding volume screen", debug);
$("#volume_screen").hide();
}
},
read_volume_value: function(context, event, actionMeta)
{
debugLog("volume_value=" + context.volume_value, debug);
context.volume_value = $("#volume_slider")[0].value = context.volume_value;
context.temp = context.volume_value;
},
write_volume_value: function(context, event, actionMeta)
{
context.volume_value = $("#volume_slider")[0].value;
debugLog("volume_value=" + context.volume_value, debug);
if (context.volume_value == 1)
{
$("#volume_button").css("background-image", 'url(' + getBaseUrl() + "images/web_gui/main_screen/buttons/volume_control_mute.png)");
}
else
{
$("#volume_button").css("background-image", 'url(' + getBaseUrl() + "images/web_gui/main_screen/buttons/volume_control.png)");
}
},
show_bright_screen: function(context, event, actionMeta)
{
if (!visualizing())
{
$("#bright_screen").show();
debugLog("Showing bright screen", debug);
}
},
hide_bright_screen: function(context, event, actionMeta)
{
if (!visualizing())
{
debugLog("Hiding bright screen", debug);
$("#bright_screen").hide();
}
},
read_bright_value: function(context, event, actionMeta)
{
debugLog("bright_value=" + context.bright_value, debug);
context.bright_value = $("#brightness_slider")[0].value = context.bright_value;
context.temp = context.bright_value;
},
write_bright_value: function(context, event, actionMeta)
{
context.bright_value = $("#brightness_slider")[0].value;
debugLog("bright_value=" + context.bright_value, debug);
},
show_screen: function(context, event, actionMeta)
{
let state = actionMeta.state.value.operation_state.standby_state;
if (state == undefined)
state = actionMeta.state.value;
debugLog("show_screen state=" + state, debug);
const screen = getScreenFromState(state);
if (!visualizing())
{
$(screen).show();
}
},
hide_screen: function(context, event)
{
let debug = false;
const state = context.last; //state_history[state_history.length-1].value.standby_state;
debugLog("Hiding " + state,debug);
const screen = getScreenFromState(state);
if (!visualizing())
{
if (event.type.includes("BRIGHT_CLICKED") || event.type.includes("VOLUME_CLICKED"))
{
//Don't hide for dialog type widgets
}
else
$(screen).hide();
}
},
save_state: function(context, event, actionMeta)
{
let debug = false;
try
{
context.last = actionMeta.state.value.operation_state.standby_state;
if (context.last == undefined)
context.last = actionMeta.state.value;
debugLog("Saved state " + context.last, debug);
}
catch (err)
{
debugLog("Caught " + err, debug);
}
},
increment: (context, event) =>
{
debugLog("incrementing " + context.progressBar++, debug);
},
show: function(context, event)
{
debugLog("show", debug);
$("#myProgress").show();
},
update_last: function(context, event)
{
debugLog("last=" + context.last, debug);
},
back: function(context, event)
{
try
{
state_history.pop();
const t = state_history[state_history.length - 1].value.standby_state;
debugLog("hist = " + JSON.stringify(t), debug);
const ev = getEventFromState(t);
guiService.send(ev);
}
catch (err)
{}
},
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment