int16_t parse_cmd_ask_2272_send(char *cmd, char *output, uint16_t len) { (void) output; (void) len; uint8_t command[3]; uint8_t delay = 74; uint8_t cnt = 10; uint8_t sync = 96; #ifdef TEENSY_SUPPORT uint16_t val; uint8_t ret; for (uint8_t i = 0; i < sizeof(command); i++) { ret = next_uint16(cmd, &val); if (!ret) return ECMD_ERR_PARSE_ERROR; command[i] = (uint8_t) val; cmd += ret; if (i < sizeof(command) - 1 && *cmd != ',') return ECMD_ERR_PARSE_ERROR; cmd++; } ret = next_uint16(cmd, &val); if (ret) { delay = (uint8_t) val; cmd += ret; ret = next_uint16(cmd, &val); if (ret) { cnt = (uint8_t) val; cmd += ret; ret = next_uint16(cmd, &val); if (ret) { sync = (uint8_t) val; } } } #else int ret = sscanf_P(cmd, PSTR("%hhu,%hhu,%hhu %hhu %hhu %hhu"), &(command[0]), &(command[1]), &(command[2]), &delay, &cnt, &sync); if (ret < 3) return ECMD_ERR_PARSE_ERROR; #endif ask_2272_send(command, delay, cnt, sync); return ECMD_FINAL_OK; }
int16_t parse_cmd_ask_2272_send(char *cmd, char *output, uint16_t len) { (void) output; (void) len; uint8_t command[3]; uint8_t delay = 74; uint8_t cnt = 10; #ifdef TEENSY_SUPPORT while (*cmd == ' ') cmd++; command[0] = getIntFromString(cmd); while (*cmd != ',') cmd++; cmd++; command[1] = getIntFromString(cmd); while (*cmd != ',') cmd++; cmd++; command[2] = getIntFromString(cmd); while (*cmd != ' ') cmd++; cmd++; delay = getIntFromString(cmd); while (*cmd != ' ') cmd++; cmd++; cnt = getIntFromString(cmd); int ret = 5; #else int ret = sscanf_P(cmd, PSTR("%hhu,%hhu,%hhu %hhu %hhu"), &(command[0]), &(command[1]), &(command[2]), &delay, &cnt); #endif if (ret < 3) return ECMD_ERR_PARSE_ERROR; ask_2272_send(command, delay, cnt); return ECMD_FINAL_OK; }