Preciso de uma luz (CCS). Eu recebo tres cadeias de dados distintas e pra isso utilizo tres seriais que alimentam um buffer: streams A, B e C, sendo duas por SW e uma por HW, o que não vem ao caso. Quando preciso receber (ou transmitir), chamo uma rotina específica pra cada stream. Funciona beleza, mas o código fica muito repetitivo. Agora, eu queria implementar uma rotina única (uma pra RX e uma pra TX), onde eu pudesse passar na chamada com qual das streams eu desejo me comunicar. Já fiz algo usando switch/case, mas imagino que exista algo mais prático. Por se tratarem de constantes, eu não sei como referenciá-las. Seria mais ou menos isso para RX, por exemplo:
- Código: Selecionar todos
int getdata(pointer* p, stream_desejada)
{
loop
.
if(kbhit(stream_desejada)) c=(fgetc(stream_desejada)); //
.
armazena_c_
trata_timeouts_etc_etc_
}
while(1)
{
.
getdata(buffer, A); //
.
.
getdata(buffer, B); //
.
.
getdata(buffer, C); //
.
.
}
Se puderem ajudar o pobre colega que não manja muito de 'C' (e nem de 'D', 'E' ou 'F'

Abços.