ICACHE_FLASH_ATTR void CMD_ProtoWriteBuf(uint8_t *data, uint32_t len) { uint8_t* data_send = data; while(len--){ CMD_ProtoWrite(*data_send++); } }
ICACHE_FLASH_ATTR uint16 CMD_ResponseBody(uint16_t crc_in, uint8_t* data, uint16_t len) { uint8_t temp = 0; uint16_t pad_len = len; while(pad_len % 4 != 0) pad_len++; CMD_ProtoWriteBuf((uint8_t*)&pad_len, 2); crc_in = crc16_data((uint8_t*)&pad_len, 2, crc_in); while(len --){ CMD_ProtoWrite(*data); crc_in = crc16_data((uint8_t*)data, 1, crc_in); data ++; if(pad_len > 0) pad_len --; } while(pad_len --){ CMD_ProtoWrite(temp); crc_in = crc16_data((uint8_t*)&temp, 1, crc_in); } return crc_in; }
static void ICACHE_FLASH_ATTR CMD_ProtoWriteBuf(uint8_t *data, short len) { while (len--) CMD_ProtoWrite(*data++); }