0
RS 422 기반의 ADA를 사용하여 다음과 같이 을 직렬 통신 "COM1"에서 읽으려고합니다.GNAT 직렬 통신 (ADA)
S_Port : Serial_Port;
Buffer : Ada.Streams.Stream_Element_Array(1..150);
GNAT.Serial_Communications.Open(Port => S_Port,Name => "COM1");
GNAT.Serial_Communications.Set(
Port => S_Port, Parity => Even, Block => False,
TimeOut => 4.0
);
GNAT.Serial_Communications.Read(S_Port,Buffer,Last);
문제는 그 9에서 27 '최종'의 값이 변경은 버퍼 보다 훨씬 9 또는 27 바이트가 있지만. 나는 메시지의 끝을 표시하기 위해 'Last'를 사용할 수 있다고 생각했는데, 하지만 그럴 수 있습니까? 또한 읽기 기능을 사용할 수있는 버퍼가없는 것처럼 보일 수 있으며 특정 크기를 정의해야합니까?
미리 감사드립니다.
고맙습니다. 기본적으로 Ada는 초기화 전에 모든 요소를 null로 설정합니다. 내 배열 실제로 쓰레기가 포함되어 있지만. – Iman