Olá pessoal!
Estou desenvolvendo uma aplicação no C++ Builder 6 na qual preciso passar alguns caracteres e alguns tempos via serial para um hardware externo. os caracteres estão armazenados em um array do tipo unsigned char e o tempo está armazenado em um unsigned short int que está dentro do seguinte union:
union tempos {
unsigned short int tempo; //16 bits ou 2 bytes
unsigned char t[2]; //8 bits ou 1 byte cada
}temp;
Estando dentro desse union, eu posso acessar a variável tempo em duas "partes", armazenadas em temp.t[0] e temp.t[1].
Até aí tudo bem, o problema é o seguinte, quando temp.t[0] == 0 ou temp.t[1] == 0 a minha variável que armazena a sequência de chars a serem enviadas não é completamente formada.
Pesquisando entendi que era devido ao fato do caracter 0 corresponder à NULL na tabela ASCII, caracter esse que encerra uma string.
Não consegui identificar até agora como contornar esse problema, caso alguém tenha alguma sugestão ficarei muito grato.
Obrigado.