Bonjour
J'essaye de convertir ce prg codé en C# en delphi quelqu'un peut m'aider svp .
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 private void btnReadCoils_Click(object sender, EventArgs e) { try { byte slaveAddress = 1; byte function = 1; ushort startAddress = 1536; // 10 decimal = A hexa uint numberOfPoints = 16; // 13 decimal = D hexa byte[] frame = ReadCoilsMsg(slaveAddress, startAddress, function, numberOfPoints); txtSendMsg.Text = Display(frame); if (serialPort1.IsOpen) { serialPort1.Write(frame, 0, frame.Length); Thread.Sleep(100); // Delay 100ms if (serialPort1.BytesToRead >= 5) { byte[] bufferReceiver = new byte[this.serialPort1.BytesToRead]; serialPort1.Read(bufferReceiver, 0, serialPort1.BytesToRead); serialPort1.DiscardInBuffer(); txtReceiMsg.Text = Display(bufferReceiver); // Process data. byte[] data = new byte[bufferReceiver.Length - 5]; Array.Copy(bufferReceiver, 3, data, 0, data.Length); bool[] temp = ByteToBool(data); string result = string.Empty; foreach (var item in temp) { result += string.Format("{0} ", item); } txtResult.Text = result; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 procedure TForm1.Button1Click(Sender: TObject); var address : byte; fct : byte; startadress : word; registers : longword; frameT : string; chaine : string; i:byte; BufferReceiver : array [] of integer; begin address := $11; fct := $04; startadress := $0008; registers := $0001; frameT := Readcoils( address, fct, startadress, registers); Chaine:=''; For I := 0 To length(framet)-1 Do Chaine:=Chaine+' '+ intToHex(Ord(frameT.Chars[I]),2); edit1.Text := Chaine+' '; if comport1.Connected then begin comport1.Write(framet, framet.Length); sleep(100); if comport1.InputCount >= 5 then begin BufferReceiver := comport1.InputCount; comport1.Read(bufferReceiver, comport1.InputCount); comport1.DiscardNull(); edit2.Text := bufferReceiver; end; end
Partager