#include "protocol.h" void protocol_decode(uint8_t encode_message[], size_t len_encode_message, char decode_message[], size_t* len_decode_message){ int count = 0; for(int i = 0; i < len_encode_message; i++){ switch (encode_message[i]) { case FLAG_NUMBER: i++; decode_message[count++] = encode_message[i]; // max 127 i++; break; case FLAG_WORD: i++; for (int z = 0; z < encode_message[i]; z++){ i++; decode_message[count++] = encode_message[i]; } break; } } *len_decode_message = count; } void protocol_encode_number(char number, uint8_t encode_message[], size_t* len_encode_message){ int count = 0; encode_message[count++] = FLAG_NUMBER; encode_message[count++] = number; *len_encode_message = count; } void protocol_encode_word(char decode_word[], size_t len_encode_word, uint8_t encode_message[], size_t* len_encode_message){ int count = 0; encode_message[count++] = FLAG_WORD; encode_message[count++] = len_encode_word; for (int i = 0; i < len_encode_word; i++){ encode_message[count++] = decode_word[i]; } *len_encode_message = count; }