From 111a9b94781ddf1380bd6095b0772cf5a57926ec Mon Sep 17 00:00:00 2001 From: Sandy Noble Date: Wed, 18 Mar 2015 17:33:13 +0000 Subject: [PATCH] Some changes to help the PolargraphPro --- controlsActions.pde | 9 +++++++++ controlsSetup.pde | 8 ++++++++ drawing.pde | 3 +++ polargraphcontroller.pde | 20 +++++++++++++++++--- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/controlsActions.pde b/controlsActions.pde index 27a8848..66223c2 100644 --- a/controlsActions.pde +++ b/controlsActions.pde @@ -710,4 +710,13 @@ void revertToLastMode() currentMode = lastMode; } +void button_mode_sendButtonActivate() +{ + addToCommandQueue(CMD_ACTIVATE_MACHINE_BUTTON+",END"); +} +void button_mode_sendButtonDeactivate() +{ + addToCommandQueue(CMD_DEACTIVATE_MACHINE_BUTTON+",END"); +} + diff --git a/controlsSetup.pde b/controlsSetup.pde index 65115f3..a0347dd 100644 --- a/controlsSetup.pde +++ b/controlsSetup.pde @@ -781,6 +781,9 @@ List getControlNamesForDetailPanel() controlNames.add(MODE_CHANGE_MACHINE_ACCELERATION); controlNames.add(MODE_SEND_MACHINE_SPEED); controlNames.add(MODE_SEND_MACHINE_SPEED_PERSIST); + + controlNames.add(MODE_SEND_BUTTON_ACTIVATE); + controlNames.add(MODE_SEND_BUTTON_DEACTIVATE); controlNames.add(MODE_CHANGE_SERIAL_PORT); @@ -954,6 +957,8 @@ Map buildControlLabels() result.put(MODE_FLIP_WEBCAM_INPUT, "Flip video"); result.put(MODE_ROTATE_WEBCAM_INPUT, "Rotate webcam"); + result.put(MODE_SEND_BUTTON_ACTIVATE, "Activate button"); + result.put(MODE_SEND_BUTTON_DEACTIVATE, "Deactivate button"); return result; @@ -1094,6 +1099,9 @@ Set buildControlNames() result.add(MODE_SHOW_WEBCAM_RAW_VIDEO); result.add(MODE_FLIP_WEBCAM_INPUT); result.add(MODE_ROTATE_WEBCAM_INPUT); + + result.add(MODE_SEND_BUTTON_ACTIVATE); + result.add(MODE_SEND_BUTTON_DEACTIVATE); return result; diff --git a/drawing.pde b/drawing.pde index 8a4756b..4952b13 100644 --- a/drawing.pde +++ b/drawing.pde @@ -73,6 +73,9 @@ static final String CMD_SETPENLIFTRANGE = "C45,"; static final String CMD_SELECT_ROVE_SOURCE_IMAGE = "C46"; static final String CMD_RENDER_ROVE = "C47"; +static final String CMD_ACTIVATE_MACHINE_BUTTON = "C49"; +static final String CMD_DEACTIVATE_MACHINE_BUTTON = "C50"; + static final int PATH_SORT_NONE = 0; static final int PATH_SORT_MOST_POINTS_FIRST = 1; static final int PATH_SORT_GREATEST_AREA_FIRST = 2; diff --git a/polargraphcontroller.pde b/polargraphcontroller.pde index 8d7ce3b..7688662 100644 --- a/polargraphcontroller.pde +++ b/polargraphcontroller.pde @@ -63,6 +63,7 @@ boolean drawbotConnected = false; static final int HARDWARE_VER_UNO = 1; static final int HARDWARE_VER_MEGA = 100; static final int HARDWARE_VER_MEGA_POLARSHIELD = 200; +static final int HARDWARE_VER_POLARPRO = 300; int currentHardware = HARDWARE_VER_MEGA_POLARSHIELD; final int HARDWARE_ATMEGA328_SRAM = 2048; @@ -325,6 +326,9 @@ static final String MODE_SHOW_WEBCAM_RAW_VIDEO = "toggle_mode_showWebcamRawVideo static final String MODE_FLIP_WEBCAM_INPUT = "toggle_mode_flipWebcam"; static final String MODE_ROTATE_WEBCAM_INPUT = "toggle_mode_rotateWebcam"; +static final String MODE_SEND_BUTTON_ACTIVATE = "button_mode_sendButtonActivate"; +static final String MODE_SEND_BUTTON_DEACTIVATE = "button_mode_sendButtonDeactivate"; + PVector statusTextPosition = new PVector(300.0, 12.0); @@ -2096,6 +2100,8 @@ void drawStatusText(int x, int y) drawbotStatus = "Polargraph READY! (PolargraphSD)"; else if (currentHardware >= HARDWARE_VER_MEGA) drawbotStatus = "Polargraph READY! (Mega)"; + else if (currentHardware >= HARDWARE_VER_POLARPRO) + drawbotStatus = "Polargraph READY! (PRO)"; else drawbotStatus = "Polargraph READY! (Uno)"; } @@ -2473,11 +2479,19 @@ void serialEvent(Serial myPort) drawbotReady = false; else if (incoming.startsWith("MEMORY")) extractMemoryUsage(incoming); + + else if (incoming.startsWith("BUTTON")) + handleMachineButton(incoming); if (drawbotReady) drawbotConnected = true; } +void handleMachineButton(String msg) +{ + machineMessageLog.add(msg); +} + void extractMemoryUsage(String mem) { String[] splitted = split(mem, ","); @@ -2664,9 +2678,9 @@ void dispatchCommandQueue() commandQueue.remove(0); println("Dispatching command: " + command); } - Checksum crc = new CRC32(); - crc.update(lastCommand.getBytes(), 0, lastCommand.length()); - lastCommand = lastCommand+":"+crc.getValue(); +// Checksum crc = new CRC32(); +// crc.update(lastCommand.getBytes(), 0, lastCommand.length()); +// lastCommand = lastCommand+":"+crc.getValue(); println("Last command:" + lastCommand); myPort.write(lastCommand); myPort.write(10); // OH *$%! of COURSE you should terminate it.