1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #ifndef CMDQUEUE_H
- #define CMDQUEUE_H
- #include "Marlin.h"
- #include "language.h"
- #define CMDBUFFER_CURRENT_TYPE_UNKNOWN 0
- #define CMDBUFFER_CURRENT_TYPE_USB 1
- #define CMDBUFFER_CURRENT_TYPE_SDCARD 2
- #define CMDBUFFER_CURRENT_TYPE_UI 3
- #define CMDBUFFER_CURRENT_TYPE_CHAINED 4
- #define CMDBUFFER_CURRENT_TYPE_TO_BE_REMOVED 5
- #define CMDBUFFER_CURRENT_TYPE_USB_WITH_LINENR 6
- #define CMDBUFFER_RESERVE_FRONT (5*21)
- extern char cmdbuffer[BUFSIZE * (MAX_CMD_SIZE + 1) + CMDBUFFER_RESERVE_FRONT];
- extern int bufindr;
- extern int bufindw;
- extern int buflen;
- extern bool cmdbuffer_front_already_processed;
- #define CMDBUFFER_CURRENT_TYPE (cmdbuffer[bufindr])
- #define CMDBUFFER_CURRENT_STRING (cmdbuffer+bufindr+CMDHDRSIZE)
- extern int serial_count;
- extern boolean comment_mode;
- extern char *strchr_pointer;
- extern unsigned long TimeSent;
- extern unsigned long TimeNow;
- extern long gcode_N;
- extern long gcode_LastN;
- extern long Stopped_gcode_LastN;
- extern bool cmdqueue_pop_front();
- extern void cmdqueue_reset();
- extern bool cmdqueue_could_enqueue_front(int len_asked);
- extern bool cmdqueue_could_enqueue_back(int len_asked, bool atomic_update = false);
- #ifdef CMDBUFFER_DEBUG
- extern void cmdqueue_dump_to_serial_single_line(int nr, const char *p);
- extern void cmdqueue_dump_to_serial();
- #endif
- extern bool cmd_buffer_empty();
- extern void enquecommand(const char *cmd, bool from_progmem);
- extern void enquecommand_front(const char *cmd, bool from_progmem);
- extern void repeatcommand_front();
- extern bool is_buffer_empty();
- extern void get_command();
- extern uint16_t cmdqueue_calc_sd_length();
- static inline bool code_seen(char code) { return (strchr_pointer = strchr(CMDBUFFER_CURRENT_STRING, code)) != NULL; }
- static inline bool code_seen(const char *code) { return (strchr_pointer = strstr(CMDBUFFER_CURRENT_STRING, code)) != NULL; }
- static inline float code_value() { return strtod(strchr_pointer+1, NULL);}
- static inline long code_value_long() { return strtol(strchr_pointer+1, NULL, 10); }
- static inline int16_t code_value_short() { return int16_t(strtol(strchr_pointer+1, NULL, 10)); };
- static inline uint8_t code_value_uint8() { return uint8_t(strtol(strchr_pointer+1, NULL, 10)); };
- static inline float code_value_float()
- {
- char* e = strchr(strchr_pointer, 'E');
- if (!e) return strtod(strchr_pointer + 1, NULL);
- *e = 0;
- float ret = strtod(strchr_pointer + 1, NULL);
- *e = 'E';
- return ret;
- }
- #endif
|