mirror of
https://github.com/synthead/timex-datalink-arduino.git
synced 2026-07-27 19:55:50 +00:00
48 lines
972 B
C++
48 lines
972 B
C++
#define COMMAND_QUERY '?'
|
|
#define COMMAND_FAST 'V'
|
|
#define COMMAND_TRANSMIT 'U'
|
|
#define COMMAND_QUERY_PAYLOAD "107\r M764 rev 764100"
|
|
|
|
#define DATA_MODE_TIMEOUT_MS 1000
|
|
|
|
#include <Arduino.h>
|
|
|
|
#include "led_blaster.h"
|
|
#include "notebook_adapter.h"
|
|
|
|
namespace NotebookAdapter {
|
|
unsigned long last_data_ms = 0;
|
|
bool command_mode = true;
|
|
|
|
void emulate(uint8_t serial_byte) {
|
|
if (millis() - last_data_ms > DATA_MODE_TIMEOUT_MS) {
|
|
LedBlaster::enable_fast_mode(false);
|
|
command_mode = true;
|
|
}
|
|
|
|
Serial.write(serial_byte);
|
|
|
|
switch(serial_byte) {
|
|
case COMMAND_QUERY:
|
|
if (command_mode) {
|
|
Serial.print(COMMAND_QUERY_PAYLOAD);
|
|
Serial.write((byte)0);
|
|
}
|
|
|
|
break;
|
|
case COMMAND_FAST:
|
|
if (command_mode) {
|
|
LedBlaster::enable_fast_mode(true);
|
|
}
|
|
|
|
break;
|
|
case COMMAND_TRANSMIT:
|
|
command_mode = false;
|
|
|
|
break;
|
|
}
|
|
|
|
last_data_ms = millis();
|
|
}
|
|
}
|