diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/export/usb_serial.h | 2 | ||||
-rw-r--r-- | firmware/usb_serial.c | 23 |
2 files changed, 25 insertions, 0 deletions
diff --git a/firmware/export/usb_serial.h b/firmware/export/usb_serial.h index 5daefeeff2..32bb8525b4 100644 --- a/firmware/export/usb_serial.h +++ b/firmware/export/usb_serial.h | |||
@@ -22,5 +22,7 @@ | |||
22 | void usb_serial_init(void); | 22 | void usb_serial_init(void); |
23 | void usb_serial_put_byte(int b); | 23 | void usb_serial_put_byte(int b); |
24 | int usb_serial_get_byte(void); | 24 | int usb_serial_get_byte(void); |
25 | int usb_serial_try_put_byte(int b); | ||
26 | int usb_serial_try_get_byte(void); | ||
25 | 27 | ||
26 | #endif | 28 | #endif |
diff --git a/firmware/usb_serial.c b/firmware/usb_serial.c index acf19e3b1a..0c4fb9d896 100644 --- a/firmware/usb_serial.c +++ b/firmware/usb_serial.c | |||
@@ -1081,6 +1081,17 @@ int usb_serial_get_byte(void) | |||
1081 | return fifo_get_byte(&serial_in_fifo); | 1081 | return fifo_get_byte(&serial_in_fifo); |
1082 | } | 1082 | } |
1083 | 1083 | ||
1084 | int usb_serial_try_get_byte(void) | ||
1085 | { | ||
1086 | int r; | ||
1087 | if (fifo_empty(&serial_in_fifo)) | ||
1088 | r = -1; | ||
1089 | else | ||
1090 | r = fifo_get_byte(&serial_in_fifo); | ||
1091 | usb_serial_handle(); | ||
1092 | return r; | ||
1093 | } | ||
1094 | |||
1084 | /* | 1095 | /* |
1085 | Not used: | 1096 | Not used: |
1086 | static int usb_serial_out_full(void) | 1097 | static int usb_serial_out_full(void) |
@@ -1097,6 +1108,18 @@ void usb_serial_put_byte(int b) | |||
1097 | usb_serial_handle(); | 1108 | usb_serial_handle(); |
1098 | } | 1109 | } |
1099 | 1110 | ||
1111 | int usb_serial_try_put_byte(int b) | ||
1112 | { | ||
1113 | int r = -1; | ||
1114 | if (!fifo_full(&serial_out_fifo)) | ||
1115 | { | ||
1116 | fifo_put_byte(&serial_out_fifo, b); | ||
1117 | r = 0; | ||
1118 | } | ||
1119 | usb_serial_handle(); | ||
1120 | return r; | ||
1121 | } | ||
1122 | |||
1100 | void usb_serial_init(void) | 1123 | void usb_serial_init(void) |
1101 | { | 1124 | { |
1102 | fifo_init(&serial_in_fifo); | 1125 | fifo_init(&serial_in_fifo); |