> Based on you question and the information you have gathered thus far,
> anything else you need to know, maybe I can help?
Thank you for this offer!
I don't know if this mailing list accepts attachments so I have copied
the program "serialtest.pas" at the end of this mail.

I have connected my sending unit with my PC on /dev/ttyS1. This unit
sends data, I have checked this with a terminal program. The parameters
are 9600, 8N1. The data consist of a string (ASCII) with 21 characters,
followed by two LF (dec.10). It is sent every 2 s, sometimes 1 s.

Now I've looked to the rs232_connect-procedure. The loop "
repeat
write(ser.recvbyte(1000), ' ');
until keypressed;
" should result in showing the received bytes on the screen. But all I
get is "0 0 0 0...", even, if the unit is switched off. 
I am sorry, but the study of the definitions of RecvByte in the
SynaSer-unit didn't help me (function TBlockSerial.RecvByte...).
Is it a timeout, which is to small?

I hope, I made it clear to you.
Any help appreciated!
Richard



----------------------------------------------------------------------------------




program serialtest; {found anywhere in the www}
 
{$mode objfpc}{$H+}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes,SysUtils,Synaser,Crt
  { you can add units after this };
 
  var l:boolean;
 
{ function check_affirmation():boolean;
  var k:string;
  begin
       Writeln('To quit the application please do NOT use CTRL-C!
Instead, please press any key to quit the application! '+
       'Please confirm this notification before the application
continues! '+
       '[0]=Quit, [1]=Confirm, please continue! ');
       Writeln('Your decision: ');
       Read(k);
       if StrtoInt(k) = 1 then
       begin
            check_affirmation:=true;
            Writeln('OK, application continues ...');
       end
       else
       begin
            check_affirmation:=false;
            Writeln('Abort');
       end
  end; }
 
  procedure RS232_connect;
  var
     ser: TBlockSerial;
  begin
       ser:=TBlockSerial.Create;
       try
          ser.Connect('/dev/ttyS1'); //ComPort
{Sleep(1000);}

          ser.config(9600, 8, 'N', 1, False, False);
          Write('Device: ' + ser.Device + '   Status: ' +
ser.LastErrorDesc +' '+
          Inttostr(ser.LastError) + ' ');
{Sleep(1000);}
          repeat
{Write(IntToHex(ser.RecvByte(1000), 2), ' ');}
                
               Write(ser.RecvByte(1000), ' ');
          until keypressed; //Important!!!
       finally
              Writeln; writeln('Serial Port will be freed...');
              ser.free;
              Writeln('Serial Port was freed successfully!');
       end;
  end;
 
  begin
{l:=check_affirmation();
     if l=true then}
     RS232_connect()
{ else
     Writeln('Program quit! ');}
  end.
 

-- 
Richard Müller - Am Spring 9 - D-58802 Balve-Eisborn
Ökologische Station in der JH Sorpesee
www.oeko-sorpe.de - www.wasserreise.info


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
synalist-public mailing list
synalist-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synalist-public

Reply via email to