Skip to content

Commit 5bf070e

Browse files
committed
Add button menu system for Facet.
1 parent 4f926fb commit 5bf070e

File tree

1 file changed

+105
-3
lines changed

1 file changed

+105
-3
lines changed

Firmware/RTK_Surveyor/Tasks.ino

Lines changed: 105 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,9 +319,111 @@ void ButtonCheckTask(void *e)
319319
} //End Platform = RTK Express
320320
else if (productVariant == RTK_FACET) //Check one momentary button
321321
{
322-
Serial.println("WIP");
323-
delay(500);
324-
} //End Platform = RTK Facet
322+
if (powerBtn != NULL) powerBtn->read();
323+
324+
if (systemState == STATE_SHUTDOWN)
325+
{
326+
//Ignore button presses while shutting down
327+
}
328+
else if (powerBtn != NULL && powerBtn->pressedFor(shutDownButtonTime))
329+
{
330+
forceSystemStateUpdate = true;
331+
requestChangeState(STATE_SHUTDOWN);
332+
}
333+
// else if ((setupBtn != NULL && setupBtn->pressedFor(500)) &&
334+
// (powerBtn != NULL && powerBtn->pressedFor(500)))
335+
// {
336+
// forceSystemStateUpdate = true;
337+
// requestChangeState(STATE_TEST);
338+
// }
339+
else if (powerBtn != NULL && powerBtn->wasReleased())
340+
{
341+
switch (systemState)
342+
{
343+
//If we are in any running state, change to STATE_DISPLAY_SETUP
344+
case STATE_ROVER_NOT_STARTED:
345+
case STATE_ROVER_NO_FIX:
346+
case STATE_ROVER_FIX:
347+
case STATE_ROVER_RTK_FLOAT:
348+
case STATE_ROVER_RTK_FIX:
349+
case STATE_BASE_NOT_STARTED:
350+
case STATE_BASE_TEMP_SETTLE:
351+
case STATE_BASE_TEMP_SURVEY_STARTED:
352+
case STATE_BASE_TEMP_TRANSMITTING:
353+
case STATE_BASE_TEMP_WIFI_STARTED:
354+
case STATE_BASE_TEMP_WIFI_CONNECTED:
355+
case STATE_BASE_TEMP_CASTER_STARTED:
356+
case STATE_BASE_TEMP_CASTER_CONNECTED:
357+
case STATE_BASE_FIXED_NOT_STARTED:
358+
case STATE_BASE_FIXED_TRANSMITTING:
359+
case STATE_BASE_FIXED_WIFI_STARTED:
360+
case STATE_BASE_FIXED_WIFI_CONNECTED:
361+
case STATE_BASE_FIXED_CASTER_STARTED:
362+
case STATE_BASE_FIXED_CASTER_CONNECTED:
363+
case STATE_BUBBLE_LEVEL:
364+
case STATE_WIFI_CONFIG_NOT_STARTED:
365+
case STATE_WIFI_CONFIG:
366+
lastSystemState = systemState; //Remember this state to return after we mark an event
367+
requestChangeState(STATE_DISPLAY_SETUP);
368+
setupState = STATE_MARK_EVENT;
369+
lastSetupMenuChange = millis();
370+
break;
371+
372+
case STATE_MARK_EVENT:
373+
//If the user presses the setup button during a mark event, do nothing
374+
//Allow system to return to lastSystemState
375+
break;
376+
377+
case STATE_TEST:
378+
//Do nothing. User is releasing the setup button.
379+
break;
380+
381+
case STATE_TESTING:
382+
//If we are in testing, return to Rover Not Started
383+
requestChangeState(STATE_ROVER_NOT_STARTED);
384+
break;
385+
386+
case STATE_DISPLAY_SETUP:
387+
//If we are displaying the setup menu, cycle through possible system states
388+
//Exit display setup and enter new system state after ~1500ms in updateSystemState()
389+
lastSetupMenuChange = millis();
390+
391+
forceDisplayUpdate = true; //User is interacting so repaint display quickly
392+
393+
switch (setupState)
394+
{
395+
case STATE_MARK_EVENT:
396+
setupState = STATE_ROVER_NOT_STARTED;
397+
break;
398+
case STATE_ROVER_NOT_STARTED:
399+
//If F9R, skip base state
400+
if (zedModuleType == PLATFORM_F9R)
401+
setupState = STATE_BUBBLE_LEVEL;
402+
else
403+
setupState = STATE_BASE_NOT_STARTED;
404+
break;
405+
case STATE_BASE_NOT_STARTED:
406+
setupState = STATE_BUBBLE_LEVEL;
407+
break;
408+
case STATE_BUBBLE_LEVEL:
409+
setupState = STATE_WIFI_CONFIG_NOT_STARTED;
410+
break;
411+
case STATE_WIFI_CONFIG_NOT_STARTED:
412+
setupState = STATE_MARK_EVENT;
413+
break;
414+
default:
415+
Serial.printf("ButtonCheckTask unknown setup state: %d\n\r", setupState);
416+
setupState = STATE_MARK_EVENT;
417+
break;
418+
}
419+
break;
420+
421+
default:
422+
Serial.printf("ButtonCheckTask unknown system state: %d\n\r", systemState);
423+
requestChangeState(STATE_ROVER_NOT_STARTED);
424+
break;
425+
}
426+
} } //End Platform = RTK Facet
325427

326428
taskYIELD();
327429
}

0 commit comments

Comments
 (0)