gbSerialParams: TRzGroupBox;
14 gbMsg: TRzGroupBox;
15 mmMsg: TMemo;
16 gbPortSet: TRzGroupBox;
17 gbSendMsg: TRzGroupBox;
18 lbCom: TLabel;
19 lbStopBit: TLabel;
20 lbByteSize: TLabel;
21 lbCheckBit: TLabel;
22 lbBaudRate: TLabel;
23 comMain: TComm;
24 cbbCOM: TComboBox;
25 cbbStopBit: TComboBox;
26 cbbByteSize: TComboBox;
27 cbbBaudRate: TComboBox;
28 cbbCheckBit: TComboBox;
29 gbMsgSendParams: TRzGroupBox;
30 gbMsgSendList: TRzGroupBox;
31 cbByte: TRzCheckBox;
32 cbAutoSend: TRzCheckBox;
33 lbCT: TLabel;
34 edtTime: TEdit;
35 advBtnConfirm: TAdvGlassButton;
36 advBtnConnect: TAdvGlassButton;
37 AdvGlassButton1: TAdvGlassButton;
38 lbMs: TLabel;
39 mmSendMsg: TMemo;
40 statusBar: TRzStatusBar;
41 clock: TRzClockStatus;
42 versionStatus: TRzVersionInfoStatus;
43 mqStatus: TRzMarqueeStatus;
44 progressBar: TRzProgressBar;
45 connectStatus: TRzStatusPane;
46 timerMain: TTimer;
47 procedure advBtnConnectClick(Sender: TObject);
48 procedure comMainReceiveData(Sender: TObject; Buffer: Pointer;
49 BufferLength: Word);
50 procedure advBtnConfirmClick(Sender: TObject);
51 procedure SendHex(S: string);
52 procedure AdvGlassButton1Click(Sender: TObject);
53 procedure timerMainTimer(Sender: TObject);
54 private
55 { Private declarations }
56 public
57 { Public declarations }
58 end;
59
60 var
61 MainFrm: TMainFrm;
62
63 implementation
64
65 {$R *.dfm}
66
67 procedure TMainFrm.SendHex(S: string);
68 var
69 s2: string;
70 buf1: array[0..50000] of char;
71 i: integer;
72 begin
73 s2 := '';
74 for i := 1 to length(s) do
75 begin
76 if ((copy(s, i, 1) >= '0') and (copy(s, i, 1) <= '9')) or ((copy(s, i, 1) >= 'a') and (copy(s, i, 1) <= 'f'))
77 or ((copy(s, i, 1) >= 'A') and (copy(s, i, 1) <= 'F')) then
78 begin
79 s2 := s2 + copy(s, i, 1);
80 end;
81 end;
82 for i := 0 to (length(s2) div 2 - 1) do
83 buf1[i] := char(strtoint('$' + copy(s2, i * 2 + 1, 2)));
84 comMain.WriteCommData(buf1, (length(s2) div 2));
85 mmMsg.Lines.Add('MsgSend[' + S + ']');
86 end;
87
88
89 procedure TMainFrm.advBtnConnectClick(Sender: TObject);
90 var
91 serialPortNO: string;
92 begin
93 try
94 with comMain do
95 begin
96 StopComm;
97 serialPortNO := Copy(cbbCOM.Text, 4, Length(cbbCOM.Text) - 3);
98 BaudRate := StrToInt(cbbBaudRate.Text);
99 // ByteSize := TByteSize(cbbByteSize.ItemIndex);
100 // StopBits := TStopBits(cbbStopBit.ItemIndex);
101 // Parity := TParity(cbbCheckBit.ItemIndex);
102 if StrToInt(serialPortNO) > 9 then
103 begin
104 CommName := '//./' + cbbCOM.Text;
105 end
106 else
107 begin
108 CommName := cbbCOM.Text;
109 end;
110 comMain.StartComm;
111 connectStatus.Caption := 'Connected';
112 connectStatus.FillColor := clLime;
113 advBtnConnect.Enabled := False;
114 gbSendMsg.Enabled := True;
115 end;
116 except
117 connectStatus.Caption := 'Not Connected';
118 connectStatus.FillColor := clRed;
119 gbSendMsg.Enabled := False;
120 end;
121
122 end;
123
124 procedure TMainFrm.comMainReceiveData(Sender: TObject; Buffer: Pointer;
125 BufferLength: Word);
126 var
127 S: string;
128 I, L: INTEGER;
129 RBUF: array[0..2048] of BYTE;
130 begin
131 Move(Buffer^, pchar(@rbuf)^, BufferLength);
132 L := BufferLength;
133 for I := 0 to L - 1 do
134 begin
135 S := S + |