timeSharing lock.
DESCRIPTION
The TIMESHARING array also has a field 'lock'. You use this field to lock a specific function, so it stops running
SYNTAX
timeSharingArray[x].lock
PARAMETERS
Where X is the number in the array. First item in the array has the value 0.
RETURNS
HIGH or LOW.
Example TIME SHARING ENABLE/DISABLE
#include
#include
InvIoT_U1 lcd(A0, A1); void VOID() { } aIoTRunTime functionTimeSharing; TIMESHARING timeSharingArray[] = { {1000,everySec}, //***********THIS IS #0 IN THE ARRAY. YOU WILL USE THIS TO LOCK {10000,beep}, //***********THIS IS #1 IN THE ARRAY. YOU WILL USE THIS TO LOCK }; aIoTMenu menu; MENU menuOptions[] = { {0, "TIMESHARRING EX.", 't', VOID, 0}, {0, "Disable TimeSharing", 'f', stopTimeSharing, 0}, {0, "Enable TimeSharing", 'f', startTimeSharing, 0}, {0, "Stop only everySec", 'f', stopEverySec, 0}, {0, "Start only everySec", 'f', startEverySec, 0}, {0, "Stop only beep", 'f', stopbeep, 0}, {0, "Start only beep", 'f', startbeep, 0}, {255, "", ' ', 0}, }; //*************************** SETUP and LOOP void setup() { menu.menu = menuOptions; menu.init('>', sizeof(menuOptions), lcd); functionTimeSharing.init(timeSharingArray, sizeof(timeSharingArray)); } void loop() { functionTimeSharing.run(); menu.runMenu(); } //*************************** TIME SHARING FUNCTIONS void everySec() { lcd.led(!lcd.ledIs()); lcd.printCursor(16, 0, millis() / 1000); //lcd.setBuzzer(2); } void beep() { lcd.setBuzzer(5); } //*************** M E N U F U N C T I O N S void startTimeSharing() { functionTimeSharing.enable(); } void stopTimeSharing() { //NOTE THAT IT CAN STOP AT ANY STATE functionTimeSharing.disable(); } void stopEverySec() { timeSharingArray[0].lock=HIGH; //0 IS THE FUNCTION EVERYSEC IS THE FIRST ITEM ON timeSharingArray } void startEverySec() { timeSharingArray[0].lock=LOW; } void stopbeep() { timeSharingArray[1].lock=HIGH; //1 IS THE FUNCTION beep IS THE FIRST ITEM ON timeSharingArray } void startbeep() { timeSharingArray[1].lock=LOW; } void displayMillis() { lcd.clear(); lcd.print("millis()="); lcd.print(millis()); delay(3000); }
SEE ALSO
.init