Changeset 4 for trunk/UFormMain.pas


Ignore:
Timestamp:
Nov 23, 2014, 12:56:33 AM (9 years ago)
Author:
chronos
Message:
  • Added: Now applications can write text to serial device which is displayed on form.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UFormMain.pas

    r3 r4  
    66
    77uses
    8   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, UKernel;
     8  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
     9  UKernel, UMemory;
    910
    1011type
     
    1314
    1415  TForm1 = class(TForm)
     16    Memo1: TMemo;
    1517    procedure FormCreate(Sender: TObject);
    1618    procedure FormDestroy(Sender: TObject);
    1719    procedure FormShow(Sender: TObject);
    1820  private
    19     { private declarations }
     21    SerialText: string;
     22    procedure SerialDeviceReceiveDataSync;
     23    procedure SerialDeviceReceiveData(Data: TMemory);
    2024  public
    2125    Kernel: TKernel;
     
    2832
    2933uses
    30   UList, UAPI, UClock, UPlatformBase;
     34  UList, UApp, UAPI, UClock, UPlatformBase, UThreadEx;
    3135
    3236{$R *.lfm}
     
    3741var
    3842  NewApp: TApp;
     43  SerialDevice: TBaseSerialDevice;
    3944begin
    4045  Kernel := TKernel.Create;
    4146  Kernel.SchedulerClass := TBaseScheduler;
    4247  Kernel.FileSystemClass := TBaseFileSystem;
    43 
     48  SerialDevice := TBaseSerialDevice.Create;
     49  SerialDevice.Name := 'Serial0';
     50  SerialDevice.OnReceiveData := SerialDeviceReceiveData;
     51  Kernel.Devices.Add(SerialDevice);
    4452  NewApp := TAppClock.Create;
    4553  Kernel.Apps.Add(NewApp);
     
    5664end;
    5765
     66procedure TForm1.SerialDeviceReceiveDataSync;
     67begin
     68  Memo1.Lines.AddText(SerialText);
     69end;
     70
     71procedure TForm1.SerialDeviceReceiveData(Data: TMemory);
     72begin
     73  SetLength(SerialText, Data.Size);
     74  Move(Data.Data^, SerialText[1], Data.Size);
     75  TThreadEx.Synchronize(TThreadEx.CurrentThread, SerialDeviceReceiveDataSync);
     76end;
     77
    5878end.
    5979
Note: See TracChangeset for help on using the changeset viewer.