Commit 0a21bfd 1 parent 54ab368 commit 0a21bfd Copy full SHA for 0a21bfd
File tree 2 files changed +36
-2
lines changed
2 files changed +36
-2
lines changed Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 17
17
18
18
#include < USBComposite.h>
19
19
20
+ #include " ../../inc/MarlinConfigPre.h"
21
+ #if ENABLED(EMERGENCY_PARSER)
22
+ #include " ../../feature/e_parser.h"
23
+ #endif
24
+
25
+ class MarlinUSBCompositeSerial : public USBCompositeSerial {
26
+ public:
27
+ MarlinUSBCompositeSerial () : USBCompositeSerial()
28
+ #if ENABLED(EMERGENCY_PARSER)
29
+ , emergency_state(EmergencyParser::State::EP_RESET)
30
+ #endif
31
+ { }
32
+
33
+ #if ENABLED(EMERGENCY_PARSER)
34
+ EmergencyParser::State emergency_state;
35
+ #endif
36
+ };
37
+
20
38
extern USBMassStorage MarlinMSC;
21
- extern USBCompositeSerial MarlinCompositeSerial ;
39
+ extern MarlinUSBCompositeSerial MarlinCompositeSerial;
22
40
23
41
void MSC_SD_init ();
You can’t perform that action at this time.
0 commit comments