PageRenderTime 52ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/Beta_3_70_2/ObjCOM/octwin.inc

#
Pascal | 218 lines | 116 code | 57 blank | 45 comment | 7 complexity | 9d97b11693d27de3b81f7c84b623aec6 MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
  1. (*
  2. ** ObjCOM tcp communication implementation include file
  3. **
  4. ** Written by M.Kiesel 2000
  5. *)
  6. Const WriteTimeout = 20000; { Wait max. 20 secs }
  7. ReadTimeOut = 20000; { General event, 20 secs max }
  8. Const TelnetCarrier : Boolean = true;
  9. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  10. constructor TTelnetObj.Init;
  11. begin
  12. SOpened:=False; Dontclose:=False; InBuffer.Init(8192); IgnoreCD:=True;
  13. inherited Init;
  14. end; { constructor Init }
  15. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  16. destructor TTelnetObj.Done;
  17. begin
  18. InBuffer.Done;
  19. inherited done;
  20. end; { destructor Done }
  21. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  22. function TTelnetObj.GetHandle: Longint;
  23. begin
  24. GetHandle:=SHandle;
  25. end; { func. GetHandle }
  26. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  27. procedure TTelnetObj.OpenQuick(Handle: Longint);
  28. begin
  29. end; { proc. TTelnetObj.OpenQuick }
  30. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  31. function TTelnetObj.OpenKeep(Comport: Byte): Boolean;
  32. begin
  33. OpenKeep:=False;
  34. end; { func. OpenKeep }
  35. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  36. procedure TTelnetObj.ProcIncoming;
  37. var C: Char;
  38. begin
  39. while not eof(SIn)do
  40. begin Read(SIn,C); InBuffer.Put(C,SizeOf(C))end;
  41. end;
  42. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  43. function TTelnetObj.Connect(Dest: String): Boolean;
  44. const isocket: TInetSockAddr= (Family:AF_INET;Port:$274E;Addr:$0100A8C0);
  45. begin
  46. Connect:=False;
  47. SHandle:=Socket(AF_INET,SOCK_STREAM,0);
  48. if SocketError<>0 then begin ErrorStr:='Error opening socket'; exit end;
  49. if not Sockets.Connect(SHandle,isocket,SIn,SOut)then begin ErrorStr:='Error connecting socket'; exit end;
  50. ReWrite(sout); Reset(sin); SOpened:=True; Connect:=True;
  51. end; { func. TTelnetObj.OpenCom }
  52. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  53. procedure TTelnetObj.SetLine(BpsRate: longint; Parity: Char; DataBits, Stopbits: Byte);
  54. begin
  55. // Duhhh ;)
  56. end; { proc. TTelnetObj.SetLine }
  57. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  58. procedure TTelnetObj.Close;
  59. begin
  60. if DontClose then EXIT;
  61. shutdown(SHandle,2); System.Close(SIn); System.Close(SOut); SOpened:=False;
  62. end; { func. TTelnetObj.CloseCom }
  63. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  64. function TTelnetObj.SendChar(C: Char): Boolean;
  65. begin
  66. write(SOut,C); SendChar:=True;
  67. end; { proc. TTelnetObj.SendChar }
  68. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  69. function TTelnetObj.GetChar: Char;
  70. var R: Char;
  71. begin
  72. ProcIncoming; InBuffer.Get(R,SizeOf(R),True); GetChar:=R;
  73. end; { func. TTelnetObj.GetChar }
  74. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  75. type CBuffer= array[1..65000]of Char;
  76. procedure TTelnetObj.SendBlock(var Block; BlockLen: Longint; var Written: Longint);
  77. var i: Longint;
  78. begin
  79. for i:=1 to BlockLen do write(SOut,CBuffer(Block)[i]);
  80. Written:=BlockLen;
  81. end; { proc. TTelnetObj.SendBlock }
  82. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  83. procedure TTelnetObj.ReadBlock(var Block; BlockLen: Longint; var Reads: Longint);
  84. begin
  85. repeat ProcIncoming until CharCount>=BlockLen;
  86. InBuffer.Get(Block,Blocklen,True);
  87. Reads:=BlockLen;
  88. end; { proc. TTelnetObj.ReadBlock }
  89. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  90. function TTelnetObj.CharAvail: Boolean;
  91. begin
  92. ProcIncoming; CharAvail:=InBuffer.BufUsed>0;
  93. end; { func. TTelnetObj.CharAvail }
  94. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  95. function TTelnetObj.CharCount: Integer;
  96. begin
  97. ProcIncoming; CharCount:=InBuffer.BufUsed;
  98. end; { func. TTelnetObj.CharAvail }
  99. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  100. function TTelnetObj.Carrier: Boolean;
  101. begin
  102. Carrier:=SOpened;
  103. end; { func. TTelnetObj.Carrier }
  104. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  105. procedure TTelnetObj.GetModemStatus(var LineStatus, ModemStatus: Byte);
  106. begin
  107. LineStatus := 00;
  108. ModemStatus := 08;
  109. if Carrier then ModemStatus := ModemStatus OR (1 SHL 7);
  110. end; { proc. TTelnetObj.GetModemStatus }
  111. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  112. procedure TTelnetObj.SetDtr(State: Boolean);
  113. begin
  114. if NOT State then Close;
  115. end; { proc. TTelnetObj.SetDtr }
  116. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  117. function TTelnetObj.GetBpsRate: Longint;
  118. begin
  119. GetBpsRate := 115200;
  120. end; { func. TTelnetObj.GetBpsRate }
  121. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  122. procedure TTelnetObj.GetBufferStatus(var InFree, OutFree, InUsed, OutUsed: Longint);
  123. begin
  124. InFree:=InBuffer.BufRoom; OutFree:=65000; InUsed:=InBuffer.BufRoom; OutUsed:=0;
  125. end; { proc. TTelnetObj.GetBufferStatus }
  126. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  127. procedure TTelnetObj.PurgeInBuffer;
  128. begin
  129. InBuffer.Clear;
  130. end; { proc. TTelnetObj.PurgeInBuffer }
  131. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  132. procedure TTelnetObj.PurgeOutBuffer;
  133. begin
  134. end; { proc. TTelnetObj.PurgeInBuffer }
  135. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  136. function TTelnetObj.ReadyToSend(BlockLen: Longint): Boolean;
  137. begin
  138. ReadyToSend := True;
  139. end; { func. ReadyToSend }
  140. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  141. procedure TTelnetObj.PauseCom(CloseCom: Boolean);
  142. begin
  143. end; { proc. PauseCom }
  144. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  145. procedure TTelnetObj.ResumeCom(OpenCom: Boolean);
  146. begin
  147. end; { proc. ResumeCom }
  148. (*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-+-*-*)
  149. {
  150. $Log: octwin.inc,v $
  151. Revision 1.3 2000/09/29 23:21:15 ma
  152. - SendChar result := true
  153. Revision 1.2 2000/09/11 23:00:13 ma
  154. - provisional outgoing TCP support added
  155. Revision 1.1 2000/06/22 17:30:02 mk
  156. - initial release
  157. - please keep comments in English
  158. }