a des vitesses avoisinant les 115000 bauds
Sub Astreams1_NewData (Buffer() As Byte) ' bytes received
Dim bc as ByteConverter
Log(DateTime.Now & tab & Buffer.Length & tab & bc.HexFromBytes(Buffer))
If Buffer.Length > 18 Then
Traitez-vous les données entrantes sous forme d'octets ou de chaînes de caractères?
je traites les données sous formes d'octets
Sub Astreams1_NewData (Buffer() As Byte) ' bytes received
If Buffer.Length > 18 Then
If Bit.And(0xff,Buffer(18))=252 Then
fb(0)=Bit.And(0xFF,Buffer(0))
fb(1)=Bit.And(0xFF,Buffer(1)) 'convert to unsigned bytes
fb(2)=Bit.And(0xFF,Buffer(2))
fb(3)=Bit.And(0xFF,Buffer(3))
fb(4)=Bit.And(0xFF,Buffer(4))
fb(5)=Bit.And(0xFF,Buffer(5))
End If
End If
576000 bauds
En pièce jointe ( à ouvrir avec wordpad )
1709187211650 19 857F00AA08000F0000122400D2410000F807F9
1709187211682 19 857F00AA0800000000157E00D24100005C00F9
1709187211698 19 857F00AA08000F000018D800D2410000B900F9
1709187211714 19 857F00AA08000000001C3200D34100001800F9
1709187211746 19 857F00AA08000F00001F8C00D34100007500F9
1709187211762 19 857F00AA08000F000022E600D3410000D200F9
1709187211794 19 857F00AA0800000000274000D44100003200F9
1709187211810 19 857F00AA08000F0000299A00D44100008E00F9
1709187211842 19 857F00AA08000F00002CF400D4410000EB00F9
1709187211858 19 857F00AA08000000002F4E00D54100004900F9
1709187211890 19 857F00AA08000F000033A800D5410000A700F9
1709187211906 19 857F00AA0800000000360200D64100000500F9
1709187211922 19 857F00AA0800000000395C00D64100006200F9
1709187211954 19 857F00AA08000F00003DB600D6410000C000F9
1709187211970 19 857F00AA0800000000401000D74100001E00F9
Sub Process_Globals
Dim PacketSize = 19
Dim Packet(PacketSize) As Byte
Dim PacketStartsWith() As Byte = Array As Byte(0x85, 0x7F)
Dim HowManySoFar As Int = 0
End Sub
Sub Astreams1_NewData (Buffer() As Byte) ' bytes received
Dim LastPacketValidFlag As Boolean = False
For I = 0 To Buffer.Length - 1 'process buffer byte-by-byte
If HowManySoFar < PacketStartsWith.Length Then 'if near start of packet
If Buffer(I) <> PacketStartsWith(HowManySoFar) Then 'check against expected start bytes
HowManySoFar = 0 'reset if doesn't match
Continue 'and short-circuit to next loop
End If
End If
Packet(HowManySoFar) = Buffer(I)
HowManySoFar = HowManySoFar + 1
If HowManySoFar >= PacketSize Then
Dim LastPacket(PacketSize) As Byte
For J = 0 to PacketSize - 1
LastPacket(J) = Packet(J)
Next
LastPacketValidFlag = True
HowManySoFar = 0 'reset for start of next packet
End If
Next
If LastPacketValidFlag Then
HandleNixiePacket(LastPacket)
End If
End Sub
Sub HandleNixiePacket(B() As Byte)
Dim bc As ByteConverter
Log(DateTime.Now & TAB & bc.HexFromBytes(B))
End Sub
c'est lié a la rapidité des appareils
Sub Astreams1_NewData (Buffer() As Byte) ' bytes received
Log(DateTime.Now & Tab & Buffer.Length)
End Sub
Yikes!et ça peut déscendre à 0,27ms ( 270 µs )
Je me demande maintenant pourquoi, si vous contrôlez la vitesse d'envoi des données, vous ne la réglez pas simplement à mi-chemin entre la vitesse la plus basse qui est suffisante pour votre projet et la vitesse la plus élevée qui fonctionne sur tous vos appareils.Je vais faire un autre essai avec 25 ms.
Sub Astreams1_NewData (Buffer() As Byte) ' bytes received
Log(DateTime.Now & Tab & Buffer.Length)
End Sub
Ou peut-être ai-je mal compris votre projet.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?