tengo esta cadena que se transmite continuamente
<STX>DDDDDDDDUMS<CR><LF><STX>DDDDDDDDUMS<CR><LF><STX>DDDDDDDDUMS<CR><LF><STX>DDDDDDDDUMS<CR><LF>
//<STX> Caracter de inicio
//DDDDDDDD Cadena de Datos
//UMS Señalizadores de 1 caracter c/u
//<CR> Fin de cadena
//<LF> No lo uso para fines practicos
Con un boton quiero capturar esa cadena desde el puerto serie (este ya está abierto y funcionando OK)
procedure TfrmMain.Button1Click(Sender: TObject); var n: integer; num: byte; Cad: string; begin // Los datos se repiten y terminan con #13(CR) repeat repeat until FileRead(HandlePuerto,Num,1)=1; until Num=13; // Final de cadena anterior Cad:='I'; //Aqui deberia ser una cadena vacia. [u]El valor es solo por prueba[/u] //Aqui esperaria a capturar y llenar la variable Cad en este orden <LF><STX>DDDDDDDDUMS for n := 1 to 8 do begin repeat until FileRead(HandlePuerto,Num,1)= 1; //lee un byte Cad:=Cad + chr(Num); end; Label1.Caption := Cad; //Muestra la lectura end;
Bueno, el detalle es que en la label1.caption solo obtengo I + el 7 caracter (p.e. <LF><STX> 104000UMS) = I4
He probado con diferentes valores de n pero no, los resultados on erroneos o simplemente se queda en el bucle. Debe ser una tontera pero no me puedo dar cuenta.