|
@@ -21,7 +21,7 @@
|
21
|
21
|
#define PRODUCT_ID 0x29
|
22
|
22
|
|
23
|
23
|
USBMassStorage MarlinMSC;
|
24
|
|
-USBCompositeSerial MarlinCompositeSerial;
|
|
24
|
+MarlinUSBCompositeSerial MarlinCompositeSerial;
|
25
|
25
|
|
26
|
26
|
#include "../../inc/MarlinConfig.h"
|
27
|
27
|
|
|
@@ -38,6 +38,17 @@ USBCompositeSerial MarlinCompositeSerial;
|
38
|
38
|
|
39
|
39
|
#endif
|
40
|
40
|
|
|
41
|
+#if ENABLED(EMERGENCY_PARSER)
|
|
42
|
+ void (*real_rx_callback)(void);
|
|
43
|
+
|
|
44
|
+ void my_rx_callback(void) {
|
|
45
|
+ real_rx_callback();
|
|
46
|
+ int len = MarlinCompositeSerial.available();
|
|
47
|
+ while (len-- > 0) // >0 because available() may return a negative value
|
|
48
|
+ emergency_parser.update(MarlinCompositeSerial.emergency_state, MarlinCompositeSerial.peek());
|
|
49
|
+ }
|
|
50
|
+#endif
|
|
51
|
+
|
41
|
52
|
void MSC_SD_init() {
|
42
|
53
|
USBComposite.setProductId(PRODUCT_ID);
|
43
|
54
|
// Just set MarlinCompositeSerial enabled to true
|
|
@@ -59,6 +70,11 @@ void MSC_SD_init() {
|
59
|
70
|
// Register composite Serial
|
60
|
71
|
MarlinCompositeSerial.registerComponent();
|
61
|
72
|
USBComposite.begin();
|
|
73
|
+ #if ENABLED(EMERGENCY_PARSER)
|
|
74
|
+ //rx is usbSerialPart.endpoints[2]
|
|
75
|
+ real_rx_callback = usbSerialPart.endpoints[2].callback;
|
|
76
|
+ usbSerialPart.endpoints[2].callback = my_rx_callback;
|
|
77
|
+ #endif
|
62
|
78
|
}
|
63
|
79
|
|
64
|
80
|
#endif // USE_USB_COMPOSITE
|