1: tu récupère les données dans un tableau de byte 2: tu fait un LSet de ton tableau sur la structure
Vincent Guichard
jose MULLER
merci
mais si c'est trop lent car la structure est longue, je passe a DELPHI
"Vincent Guichard" a écrit dans le message de news: ca74ce$fv$ | je proposerais une solution de ce type: | | 1: tu récupère les données dans un tableau de byte | 2: tu fait un LSet de ton tableau sur la structure | | Vincent Guichard
merci
mais si c'est trop lent car la structure est longue, je passe a DELPHI
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: ca74ce$fv$1@news-reader2.wanadoo.fr...
| je proposerais une solution de ce type:
|
| 1: tu récupère les données dans un tableau de byte
| 2: tu fait un LSet de ton tableau sur la structure
|
| Vincent Guichard
mais si c'est trop lent car la structure est longue, je passe a DELPHI
"Vincent Guichard" a écrit dans le message de news: ca74ce$fv$ | je proposerais une solution de ce type: | | 1: tu récupère les données dans un tableau de byte | 2: tu fait un LSet de ton tableau sur la structure | | Vincent Guichard
Vincent Guichard
jose MULLER a écrit :
merci
mais si c'est trop lent car la structure est longue, je passe a DELPHI
Ta structure fait 5*4 bytes, donc 20 octets... Ca devrais pas etre long...
Vincent Guichard
jose MULLER a écrit :
merci
mais si c'est trop lent car la structure est longue, je passe a DELPHI
Ta structure fait 5*4 bytes, donc 20 octets... Ca devrais pas etre long...
mais si c'est trop lent car la structure est longue, je passe a DELPHI
Ta structure fait 5*4 bytes, donc 20 octets... Ca devrais pas etre long...
Vincent Guichard
jose MULLER
merci ca va deja un peu mieux je cale aussi lorsque je dois envoyer une structure de 20 bytes
Me.Winsock1.SendData PRTC_INIT_HARDWARE
'2 envoi de la structure contenant les thresholds UserSetupData.m_LowThreshold = 1 UserSetupData.m_HighThreshold = 2 UserSetupData.m_LowLowThreshold = 3 UserSetupData.m_HighHighThreshold = 4 UserSetupData.m_MinDefectArea = 5
' Me.Winsock1.SendData UserSetupData 'erreur de compilation il faut un byte array sTmp = Str(20) LSet sTmp = UserSetupData '????????? erreur ??????? For i = 1 To 20 Me.Winsock1.SendData iData(i) comment transvaser userSetupData dans idata() ?????? Next i
'3 le status en retour via Winsock1_DataArrival ----------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '--------------------------------------------------------- ' Type TCServerStatus ' m_ErrorCode As Long ' m_Info1 As Long ' m_Info2 As Long ' m_Status As Long ' m_Length As Long 'End Type
"Vincent Guichard" a écrit dans le message de news: ca79s0$ie3$ | jose MULLER a écrit : | > merci | > | > mais si c'est trop lent car la structure est longue, je passe a DELPHI | | Ta structure fait 5*4 bytes, donc 20 octets... Ca devrais pas etre long... | | Vincent Guichard
merci ca va deja un peu mieux
je cale aussi lorsque je dois envoyer une structure de 20 bytes
Me.Winsock1.SendData PRTC_INIT_HARDWARE
'2 envoi de la structure contenant les thresholds
UserSetupData.m_LowThreshold = 1
UserSetupData.m_HighThreshold = 2
UserSetupData.m_LowLowThreshold = 3
UserSetupData.m_HighHighThreshold = 4
UserSetupData.m_MinDefectArea = 5
' Me.Winsock1.SendData UserSetupData 'erreur de
compilation il faut un byte array
sTmp = Str(20)
LSet sTmp = UserSetupData
'????????? erreur ???????
For i = 1 To 20
Me.Winsock1.SendData iData(i) comment
transvaser userSetupData dans idata() ??????
Next i
'3 le status en retour via Winsock1_DataArrival
----------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
'---------------------------------------------------------
' Type TCServerStatus
' m_ErrorCode As Long
' m_Info1 As Long
' m_Info2 As Long
' m_Status As Long
' m_Length As Long
'End Type
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: ca79s0$ie3$1@news-reader3.wanadoo.fr...
| jose MULLER a écrit :
| > merci
| >
| > mais si c'est trop lent car la structure est longue, je passe a
DELPHI
|
| Ta structure fait 5*4 bytes, donc 20 octets... Ca devrais pas etre
long...
|
| Vincent Guichard
merci ca va deja un peu mieux je cale aussi lorsque je dois envoyer une structure de 20 bytes
Me.Winsock1.SendData PRTC_INIT_HARDWARE
'2 envoi de la structure contenant les thresholds UserSetupData.m_LowThreshold = 1 UserSetupData.m_HighThreshold = 2 UserSetupData.m_LowLowThreshold = 3 UserSetupData.m_HighHighThreshold = 4 UserSetupData.m_MinDefectArea = 5
' Me.Winsock1.SendData UserSetupData 'erreur de compilation il faut un byte array sTmp = Str(20) LSet sTmp = UserSetupData '????????? erreur ??????? For i = 1 To 20 Me.Winsock1.SendData iData(i) comment transvaser userSetupData dans idata() ?????? Next i
'3 le status en retour via Winsock1_DataArrival ----------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '--------------------------------------------------------- ' Type TCServerStatus ' m_ErrorCode As Long ' m_Info1 As Long ' m_Info2 As Long ' m_Status As Long ' m_Length As Long 'End Type
"Vincent Guichard" a écrit dans le message de news: ca79s0$ie3$ | jose MULLER a écrit : | > merci | > | > mais si c'est trop lent car la structure est longue, je passe a DELPHI | | Ta structure fait 5*4 bytes, donc 20 octets... Ca devrais pas etre long... | | Vincent Guichard
Vincent Guichard
jose MULLER a écrit :
Public Type TestData m_1 As Long m_2 As Long m_3 As Long m_4 As Long m_5 As Long End Type
Public Type TestBytes m_0(1 To 20) As Byte End Type
pour passer de ta structure vers tableau de byte: dim td as TestData dim tb as TestByte td.m_1 = &h01020304 td.m_2 = &h01020304 td.m_3 = &h01020304 td.m_4 = &h01020304 td.m_5 = &h01020304 LSet tb = td Winsock1.SendData tb.m_0
pour passer du tableau vers ta structure: Winsock1.GetData tb.m_0, vbArray + vbByte, 20 LSet td = tb
Attention au stockage des infos, il peut y avoir des inversions dans l'ordre des bytes (les poids faibles avant les poids forts dans le tableau m_0)
Vincent Guichard
jose MULLER a écrit :
Public Type TestData
m_1 As Long
m_2 As Long
m_3 As Long
m_4 As Long
m_5 As Long
End Type
Public Type TestBytes
m_0(1 To 20) As Byte
End Type
pour passer de ta structure vers tableau de byte:
dim td as TestData
dim tb as TestByte
td.m_1 = &h01020304
td.m_2 = &h01020304
td.m_3 = &h01020304
td.m_4 = &h01020304
td.m_5 = &h01020304
LSet tb = td
Winsock1.SendData tb.m_0
pour passer du tableau vers ta structure:
Winsock1.GetData tb.m_0, vbArray + vbByte, 20
LSet td = tb
Attention au stockage des infos, il peut y avoir des inversions dans
l'ordre des bytes (les poids faibles avant les poids forts dans le
tableau m_0)
Public Type TestData m_1 As Long m_2 As Long m_3 As Long m_4 As Long m_5 As Long End Type
Public Type TestBytes m_0(1 To 20) As Byte End Type
pour passer de ta structure vers tableau de byte: dim td as TestData dim tb as TestByte td.m_1 = &h01020304 td.m_2 = &h01020304 td.m_3 = &h01020304 td.m_4 = &h01020304 td.m_5 = &h01020304 LSet tb = td Winsock1.SendData tb.m_0
pour passer du tableau vers ta structure: Winsock1.GetData tb.m_0, vbArray + vbByte, 20 LSet td = tb
Attention au stockage des infos, il peut y avoir des inversions dans l'ordre des bytes (les poids faibles avant les poids forts dans le tableau m_0)
Vincent Guichard
jose MULLER
Merci , j y suis a 50%
du client vers le serveur OK '1 envoi de la commande Me.Winsock1.SendData CByte(PRTC_CALIB_BLACK) '2 envoi de la structure contenant les thresholds UserSetupData.m_LowThreshold = &H1020304 UserSetupData.m_HighThreshold = &H0 UserSetupData.m_LowLowThreshold = &H0 UserSetupData.m_HighHighThreshold = &H0 UserSetupData.m_MinDefectArea = &H1020304 LSet tbU = UserSetupData Me.Winsock1.SendData tbU.m_0
' le code suivant ne fonctionne pas , rien que des zéros Me.Winsock1.GetData tbStatus.m_0, vbArray + vbByte, 20 ' lecture en array de 20 bytes For i = 0 To 19 Memo.Text = Memo.Text & i & vbTab & Hex(tbStatus.m_0(i)) & vbCrLf Next i LSet ServerStatus = tbStatus ' passage de l array vers la structure
PS les poids sont dans bon ordre
Merci
"Vincent Guichard" a écrit dans le message de news: ca9a2h$2hs$ | jose MULLER a écrit : | | Public Type TestData | m_1 As Long | m_2 As Long | m_3 As Long | m_4 As Long | m_5 As Long | End Type | | Public Type TestBytes | m_0(1 To 20) As Byte | End Type | | pour passer de ta structure vers tableau de byte: | dim td as TestData | dim tb as TestByte | td.m_1 = &h01020304 | td.m_2 = &h01020304 | td.m_3 = &h01020304 | td.m_4 = &h01020304 | td.m_5 = &h01020304 | LSet tb = td | Winsock1.SendData tb.m_0 | | pour passer du tableau vers ta structure: | Winsock1.GetData tb.m_0, vbArray + vbByte, 20 | LSet td = tb | | Attention au stockage des infos, il peut y avoir des inversions dans | l'ordre des bytes (les poids faibles avant les poids forts dans le | tableau m_0) | | Vincent Guichard
Merci , j y suis a 50%
du client vers le serveur OK
'1 envoi de la commande
Me.Winsock1.SendData CByte(PRTC_CALIB_BLACK)
'2 envoi de la structure contenant les thresholds
UserSetupData.m_LowThreshold = &H1020304
UserSetupData.m_HighThreshold = &H0
UserSetupData.m_LowLowThreshold = &H0
UserSetupData.m_HighHighThreshold = &H0
UserSetupData.m_MinDefectArea = &H1020304
LSet tbU = UserSetupData
Me.Winsock1.SendData tbU.m_0
' le code suivant ne fonctionne pas , rien que des zéros
Me.Winsock1.GetData tbStatus.m_0, vbArray + vbByte, 20 ' lecture
en array de 20 bytes
For i = 0 To 19
Memo.Text = Memo.Text & i & vbTab & Hex(tbStatus.m_0(i)) & vbCrLf
Next i
LSet ServerStatus = tbStatus ' passage de l array
vers la structure
PS les poids sont dans bon ordre
Merci
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: ca9a2h$2hs$1@news-reader1.wanadoo.fr...
| jose MULLER a écrit :
|
| Public Type TestData
| m_1 As Long
| m_2 As Long
| m_3 As Long
| m_4 As Long
| m_5 As Long
| End Type
|
| Public Type TestBytes
| m_0(1 To 20) As Byte
| End Type
|
| pour passer de ta structure vers tableau de byte:
| dim td as TestData
| dim tb as TestByte
| td.m_1 = &h01020304
| td.m_2 = &h01020304
| td.m_3 = &h01020304
| td.m_4 = &h01020304
| td.m_5 = &h01020304
| LSet tb = td
| Winsock1.SendData tb.m_0
|
| pour passer du tableau vers ta structure:
| Winsock1.GetData tb.m_0, vbArray + vbByte, 20
| LSet td = tb
|
| Attention au stockage des infos, il peut y avoir des inversions dans
| l'ordre des bytes (les poids faibles avant les poids forts dans le
| tableau m_0)
|
| Vincent Guichard
du client vers le serveur OK '1 envoi de la commande Me.Winsock1.SendData CByte(PRTC_CALIB_BLACK) '2 envoi de la structure contenant les thresholds UserSetupData.m_LowThreshold = &H1020304 UserSetupData.m_HighThreshold = &H0 UserSetupData.m_LowLowThreshold = &H0 UserSetupData.m_HighHighThreshold = &H0 UserSetupData.m_MinDefectArea = &H1020304 LSet tbU = UserSetupData Me.Winsock1.SendData tbU.m_0
' le code suivant ne fonctionne pas , rien que des zéros Me.Winsock1.GetData tbStatus.m_0, vbArray + vbByte, 20 ' lecture en array de 20 bytes For i = 0 To 19 Memo.Text = Memo.Text & i & vbTab & Hex(tbStatus.m_0(i)) & vbCrLf Next i LSet ServerStatus = tbStatus ' passage de l array vers la structure
PS les poids sont dans bon ordre
Merci
"Vincent Guichard" a écrit dans le message de news: ca9a2h$2hs$ | jose MULLER a écrit : | | Public Type TestData | m_1 As Long | m_2 As Long | m_3 As Long | m_4 As Long | m_5 As Long | End Type | | Public Type TestBytes | m_0(1 To 20) As Byte | End Type | | pour passer de ta structure vers tableau de byte: | dim td as TestData | dim tb as TestByte | td.m_1 = &h01020304 | td.m_2 = &h01020304 | td.m_3 = &h01020304 | td.m_4 = &h01020304 | td.m_5 = &h01020304 | LSet tb = td | Winsock1.SendData tb.m_0 | | pour passer du tableau vers ta structure: | Winsock1.GetData tb.m_0, vbArray + vbByte, 20 | LSet td = tb | | Attention au stockage des infos, il peut y avoir des inversions dans | l'ordre des bytes (les poids faibles avant les poids forts dans le | tableau m_0) | | Vincent Guichard