forked from Michel2/timex-datalink-arduino
Repeat all received bytes to serial host.
This commit is contained in:
2 files changed
+16
-32
No files matched your search
+16
-30
@@ -1,7 +1,6 @@
|
|||||||
#define COMMAND_PING 'x'
|
|
||||||
#define COMMAND_QUERY '?'
|
#define COMMAND_QUERY '?'
|
||||||
#define COMMAND_TRANSMIT 'U'
|
#define COMMAND_TRANSMIT 'U'
|
||||||
#define COMMAND_QUERY_PAYLOAD "?107\r M764 rev 764100"
|
#define COMMAND_QUERY_PAYLOAD "107\r M764 rev 764100"
|
||||||
|
|
||||||
#define DATA_MODE_TIMEOUT_MS 1000
|
#define DATA_MODE_TIMEOUT_MS 1000
|
||||||
|
|
||||||
@@ -11,40 +10,27 @@ namespace NotebookAdapter {
|
|||||||
unsigned long last_data_ms = 0;
|
unsigned long last_data_ms = 0;
|
||||||
bool command_mode = true;
|
bool command_mode = true;
|
||||||
|
|
||||||
void emulate_command_mode(uint8_t serial_byte) {
|
void emulate(uint8_t serial_byte) {
|
||||||
switch(serial_byte) {
|
|
||||||
case COMMAND_PING:
|
|
||||||
Serial.write(COMMAND_PING);
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMMAND_QUERY:
|
|
||||||
Serial.print(COMMAND_QUERY_PAYLOAD);
|
|
||||||
Serial.write(0);
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMMAND_TRANSMIT:
|
|
||||||
Serial.write(COMMAND_TRANSMIT);
|
|
||||||
command_mode = false;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void emulate_data_mode(uint8_t serial_byte) {
|
|
||||||
if (millis() - last_data_ms > DATA_MODE_TIMEOUT_MS) {
|
if (millis() - last_data_ms > DATA_MODE_TIMEOUT_MS) {
|
||||||
command_mode = true;
|
command_mode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.write(serial_byte);
|
Serial.write(serial_byte);
|
||||||
|
|
||||||
|
switch(serial_byte) {
|
||||||
|
case COMMAND_QUERY:
|
||||||
|
if (command_mode) {
|
||||||
|
Serial.print(COMMAND_QUERY_PAYLOAD);
|
||||||
|
Serial.write(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case COMMAND_TRANSMIT:
|
||||||
|
command_mode = true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
last_data_ms = millis();
|
last_data_ms = millis();
|
||||||
}
|
}
|
||||||
|
|
||||||
void emulate(uint8_t serial_byte) {
|
|
||||||
void(*function)(uint8_t) = command_mode ? emulate_command_mode : emulate_data_mode;
|
|
||||||
|
|
||||||
function(serial_byte);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -4,8 +4,6 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
namespace NotebookAdapter {
|
namespace NotebookAdapter {
|
||||||
void emulate_command_mode(uint8_t serial_byte);
|
|
||||||
void emulate_data_mode(uint8_t serial_byte);
|
|
||||||
void emulate(uint8_t serial_byte);
|
void emulate(uint8_t serial_byte);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user