Changeset 413 for PinConnection/UCommSerialPort.pas
- Timestamp:
- Aug 16, 2012, 12:59:53 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
PinConnection/UCommSerialPort.pas
r407 r413 13 13 { TCommSerialPort } 14 14 15 TCommSerialPort = class(T SerialPort)15 TCommSerialPort = class(TCommNode) 16 16 private 17 17 procedure Receive(Sender: TCommPin; Stream: TListByte); 18 18 procedure SetStatus(Sender: TCommPin; AValue: Integer); 19 19 procedure ReceiveData(Stream: TListByte); 20 protected 21 procedure SetActive(AValue: Boolean); override; 20 22 public 23 SerialPort: TSerialPort; 21 24 Lock: TCriticalSection; 22 25 Pin: TCommPin; 23 26 destructor Destroy; override; 24 constructor Create ;27 constructor Create(AOwner: TComponent); override; 25 28 end; 26 29 … … 33 36 procedure TCommSerialPort.ReceiveData(Stream: TListByte); 34 37 begin 35 if Active then Pin.Send(Stream); 38 if SerialPort.Active then Pin.Send(Stream); 39 end; 40 41 procedure TCommSerialPort.SetActive(AValue: Boolean); 42 begin 43 inherited SetActive(AValue); 44 SerialPort.Active := AValue; 36 45 end; 37 46 … … 40 49 try 41 50 Lock.Acquire; 42 if (AValue and 1) = 1 then Parity := paMark else Parity := paSpace; 51 if (AValue and 1) = 1 then SerialPort.Parity := paMark 52 else SerialPort.Parity := paSpace; 43 53 finally 44 54 Lock.Release; … … 46 56 end; 47 57 48 constructor TCommSerialPort.Create ;58 constructor TCommSerialPort.Create(AOwner: TComponent); 49 59 begin 50 60 inherited; 61 SerialPort := TSerialPort.Create; 62 SerialPort.OnReceiveData := ReceiveData; 51 63 Lock := TCriticalSection.Create; 52 64 Pin := TCommPin.Create; 53 65 Pin.OnReceive := Receive; 54 66 Pin.OnSetSatus := SetStatus; 55 OnReceiveData := ReceiveData;67 Pin.Node := Self; 56 68 end; 57 69 58 70 destructor TCommSerialPort.Destroy; 59 71 begin 60 OnReceiveData := nil;72 SerialPort.OnReceiveData := nil; 61 73 Pin.Free; 62 74 Lock.Free; 75 SerialPort.Free; 63 76 inherited; 64 77 end; … … 71 84 S := TMemoryStream.Create; 72 85 Stream.WriteToStream(S); 73 if Active then begin86 if SerialPort.Active then begin 74 87 S.Position := 0; 75 88 repeat 76 89 try 77 90 Lock.Acquire; 78 if CanWrite(0) then79 Se ndStreamRaw(S);91 if SerialPort.CanWrite(0) then 92 SerialPort.SendStreamRaw(S); 80 93 finally 81 94 Lock.Release;
Note:
See TracChangeset
for help on using the changeset viewer.