MCPcopy Create free account
hub / github.com/OpenEPaperLink/OpenEPaperLink / sendFlasherAnswer

Function sendFlasherAnswer

ESP32_AP-Flasher/src/usbflasher.cpp:97–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97void sendFlasherAnswer(uint8_t answer_cmd, uint8_t* ans_buff, uint32_t len, uint8_t transportType) {
98 uint8_t* answer_buffer = (uint8_t*)calloc(3 + 2 + 2 + len + 2 + 13, 1);
99 if (answer_buffer == nullptr) return;
100 uint32_t CRC_value = 0xAB34;
101 answer_buffer[0] = 'A';
102 answer_buffer[1] = 'T';
103 answer_buffer[2] = answer_cmd;
104 CRC_value += answer_cmd;
105
106 for (uint8_t c = 0; c < 4; c++) {
107 answer_buffer[3 + c] = (uint8_t)(len >> (24 - (c * 8)));
108 CRC_value += answer_buffer[3 + c];
109 }
110
111 for (int i = 0; i < len; i++) {
112 answer_buffer[7 + i] = ans_buff[i];
113 CRC_value += ans_buff[i];
114 }
115
116 answer_buffer[3 + 2 + 2 + len] = CRC_value >> 8;
117 answer_buffer[3 + 2 + 2 + len + 1] = CRC_value;
118 if (transportType == TRANSPORT_USB) {
119 cmdSerial.write(answer_buffer, 3 + 2 + 2 + len + 2);
120 } else {
121 sendDataToClient(answer_buffer, 3 + 2 + 2 + len + 2);
122 }
123 // for(uint16_t c = 0; c< 3+2+2+len+2; c++){
124
125 //}
126 free(answer_buffer);
127}
128
129void flasherDataHandler(uint8_t* data, size_t len, uint8_t transportType) {
130 static struct flasherCommand* cmd = nullptr;

Callers 1

processFlasherCommandFunction · 0.70

Calls 2

sendDataToClientFunction · 0.85
writeMethod · 0.45

Tested by

no test coverage detected