Changeset 4 for trunk/UAPI.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/UAPI.pas

    r3 r4  
    66
    77uses
    8   Classes, SysUtils, UList;
     8  Classes, SysUtils, UList, UKernel, DateUtils, UMemory;
    99
    1010type
     
    1313
    1414  TAPI = class
     15    Kernel: TKernel;
    1516    procedure WriteText(Text: string);
    1617    procedure Sleep(Time: TDateTime);
    1718  end;
    1819
    19   { TApp }
    20 
    21   TApp = class(TNamedObject)
    22     API: TAPI;
    23     constructor Create; virtual;
    24     destructor Destroy; override;
    25     procedure Run; virtual;
    26   end;
    2720
    2821implementation
     
    3124
    3225procedure TAPI.WriteText(Text: string);
     26var
     27  Device: TDevice;
     28  DataIn: TMemory;
    3329begin
    34 
     30  Device := TDevice(Kernel.Devices.FindByName('Serial0'));
     31  if Assigned(Device) then begin
     32    DataIn := TMemory.Create;
     33    DataIn.Size := Length(Text);
     34    Move(Text[1], DataIn.Data^, DataIn.Size);
     35    Device.Service(0, DataIn, nil);
     36    DataIn.Free;
     37  end else raise Exception.Create('Device Serial0 not found');
    3538end;
    3639
    3740procedure TAPI.Sleep(Time: TDateTime);
    3841begin
    39 
     42  SysUtils.Sleep(Trunc(Time / OneMillisecond));
    4043end;
    4144
    42 { TApp }
    43 
    44 constructor TApp.Create;
    45 begin
    46   inherited Create;
    47   API := TAPI.Create;
    48 end;
    49 
    50 destructor TApp.Destroy;
    51 begin
    52   API.Free;
    53   inherited Destroy;
    54 end;
    55 
    56 procedure TApp.Run;
    57 begin
    58 
    59 end;
    6045
    6146end.
Note: See TracChangeset for help on using the changeset viewer.