Accueil > Forum > > > > Coredll pour envoyer du binaire au GPS
Coredll pour envoyer du binaire au GPS
jeudi 20 décembre 2007 à 12:54:04 |
Coredll pour envoyer du binaire au GPS

xyp
|
Bonjour,
J'ai besoin d'inclure une routine permettant de switcher un GPS du mode Sirf3 au mode NMEA 2.0
Le blem c'est que le MSComm semble bugué et n'envoie rien en binaire. MS est au courant et propose un correctif. Or lorsque je l'inclu dans mon code, ça me marque alors que le fichier coredll.dll est absent. C'est faux : il est bien présent dans le répertoire system32 de Windows, mais quand j'essai de l'inclure comme référence au programme, ça ne veut pas.
Je vous file le code. Qu'en pensez vous ?
Merci beaucoup pour votre aide.
XYP
Objets nécessaires : 1 Module nommé Moduleee1 1 Form nommée Form1 1 MSComm nommé Comm1, sur la Form1 1 boutton nommé Command1, sur la Form1
Code dans Module 1:
Option Explicit Declare Function WriteFileL Lib "coredll" Alias "WriteFile" _ (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, _ lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long
Public Sub SendArrayData(ByVal hCommID As Long, baData) Dim i, lRet, iWrite For i = LBound(baData) To UBound(baData) lRet = WriteFileL(hCommID, baData(i), 1, iWrite, 0) Next End Sub
Code dans Form 1 (La série de code hexa est la commande de switch du mode swirf3 au mode NMEA2.0) :
Private Sub Command1_Click()
' Set up the "Switch to NMEA" command Dim Command(32) As Byte Command(1) = &HA0 Command(2) = &HA2 Command(3) = &H0 Command(4) = &H18 Command(5) = &H81 Command(6) = &H2 Command(7) = &H1 Command(8) = &H1 Command(9) = &H0 Command(10) = &H1 Command(11) = &H5 Command(12) = &H1 Command(13) = &H5 Command(14) = &H1 Command(15) = &H0 Command(16) = &H1 Command(17) = &H0 Command(18) = &H1 Command(19) = &H0 Command(20) = &H1 Command(21) = &H0 Command(22) = &H1 Command(23) = &H0 Command(24) = &H1 Command(25) = &H0 Command(26) = &H1 Command(27) = &H12 Command(28) = &HC0 Command(29) = &H1 Command(30) = &H6A Command(31) = &HB0 Command(32) = &HB3
' Configure the comm port Comm1.InputLen = 0 Comm1.InputMode = comInputModeText Comm1.RThreshold = 1 Comm1.SThreshold = 1 Comm1.CommPort = 8
'Assume the GPS is connected to COM1: Comm1.Settings = "38400,N,8,1" 'Assume the GPS is in SiRF mode
'Send the command Comm1.PortOpen = True SendArrayData Comm1.CommID, Command Comm1.PortOpen = False End Sub
|
|
jeudi 20 décembre 2007 à 13:51:07 |
Re : Coredll pour envoyer du binaire au GPS

NHenry
|
Bonjour CodeDll.dll c'est pour les PPC ? Il me semble, je peux me tromper, que WriteFile est présente dans Kernel32.dll, elle sera peut-être plus à même de répondre à ton besoin. Ta fonction Public Sub SendArrayData(ByVal hCommID As Long, baData) Dim i, lRet, iWrite For i = LBound(baData) To UBound(baData) lRet = WriteFileL(hCommID, baData(i), 1, iWrite, 0) Next End Sub sera fonctionnelle (enfin je pense) comme cela : Public Sub SendArrayData(ByVal hCommID As Long, baData) Dim lRes as integer,iWrite as integer lRet = WriteFileL(hCommID, baData(1), UBound(baData), iWrite, 0) End Sub Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée). VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
jeudi 20 décembre 2007 à 14:03:24 |
Re : Coredll pour envoyer du binaire au GPS

xyp
|
Salut,
Suivant ton conseil, j'ai remplacé coredll dans le module par kernel32... comme ceci :
Declare Function WriteFileL Lib "kernel32" Alias "WriteFile" _ (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, _ lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long
le blem c'est que ça me provoque une erreur qui ferme VB6 : AppName: vb6.exe AppVer: 6.0.81.76 ModName: unknown ModVer: 0.0.0.0 Offset: ff30ff00
J'ai remplacé aussi la fonction par celle que tu me files, mais ça provoque une erreur de compilation "Type d'argument ByRef incompatible" sur iwrite.
Qu'en pensez vous ? Merci beaucoup pour votre aide.
|
|
jeudi 20 décembre 2007 à 14:22:29 |
Re : Coredll pour envoyer du binaire au GPS

NHenry
|
Bonjour Voici la déclaration de la fonction : Public Declare Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long Pas de Byval pour lpOverlapped. Normal, met IWrite en Long au lieu de Integer. Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée). VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
jeudi 20 décembre 2007 à 15:59:17 |
Re : Coredll pour envoyer du binaire au GPS

xyp
|
Euh le type Overlapped, il ne connait pas dans "(...) lpOverlapped As OVERLAPPED (...)" As-tu une idée ?
Merci beaucoup pour ton aide.
|
|
jeudi 20 décembre 2007 à 16:15:19 |
Re : Coredll pour envoyer du binaire au GPS

xyp
|
Remarque c'est ptet moi qui ait mal compris. En fait au lancement ça me marque "type défini par l'utilisateur non défini" sur cette même ligne.
Merci, et désolé de t'embeter pour cela.
|
|
jeudi 20 décembre 2007 à 16:15:59 |
Re : Coredll pour envoyer du binaire au GPS

NHenry
|
Bonjour Public Type OVERLAPPED Internal As Long InternalHigh As Long offset As Long OffsetHigh As Long hEvent As Long End Type Je pense qu'en mettant 0 dans toutes les valeurs, ça devrait être bon, mais je n'utilise plus cette fonction depuis un moment. Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée). VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
jeudi 20 décembre 2007 à 16:22:30 |
Re : Coredll pour envoyer du binaire au GPS

xyp
|
Dans ce cas, est-ce qu'il faut modifier la ligne : WriteFile(hCommID, baData(i), 1, iWrite, 0) ?
Parce que le 0 à la fin ne lui convient plus.
Merci beaucoup pour ta patience.
|
|
jeudi 20 décembre 2007 à 16:41:14 |
Re : Coredll pour envoyer du binaire au GPS

NHenry
|
Bonjour Non je pensais plutot à : dim lVar as Overlapped lVar.Internal=0 lVar.---=0 Puis WriteFile(..., lVar) Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée). VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
jeudi 20 décembre 2007 à 16:57:10 |
Re : Coredll pour envoyer du binaire au GPS

xyp
|
Ok le compilateur n'indique plus d'erreur, donc apparement ça envoit des donénes en binaire au GPS, ce que je cherchais à faire. Mais bon ça switch pas pour autan entre le mode sirf3 et le mode nmea2.0, ce qui démontre que y'a un bug ailleurs, et je m'y penche ;)
Dès que j'ai trouvé, je ferai une ptite source pour indiquer comment switcher entre les deux moe à loisir.
Encore merci NHenry et fait de ma part une caresse au gros chat qui pose avec toi sur la photo ;)
a++
|
|
Cette discussion est classée dans : long, gps, mode, h1command, h0command
Répondre à ce message
Sujets en rapport avec ce message
appel de DLL écrite en C [ par laet ]
Bonjour,J'ai un problème d'appel de DLL écrite en C, dans mon code en VB. pourriez vous m'aider ? ? ? Voici mon message d'erreur quand j'exécute mon V
Unbound DBGRID [ par Pat ]
Salut, j'utilise un dbgrid en mode Unbound et j'ai mis un boutton Annuler au cas où un usager veut annuler ses modifications. Lorsqu' il ajoute une
isWindow repond toujours non ! [ par zoup ]
Bonjour,Le code suivant repond toujours non bienque le programme lancé par shell soit ouvert.Y a t il une erreur?je suis sous NT4 SP4 et VB6 SP3.voici
Executer un prog en mode exclusif [ par bs95 ]
Tout d'abord je voulias vous dire que votre site est genialVoici le fichier batch suivant :****************Mono.exeif exist Ok.tst goto endbtrieve /p:
VB6 ef FTP [ par Mikey ]
Comment envoyer un fichier par FTP en mode ASCII grâce à VB?J'utilise le composant Inet avec la fonction Execute FTPURL,"SEND file1 file2" mais le fic
enregistrement trop long [ par Sandrine ]
J'ai une table XXX qui contient environ 70 observations.Et une autre table YYY vide, avec pour seul champ une clé primaire.Je veux transformer les 70
bureau au 1er plan [ par frankie ]
je désire écrire une petite appli qui, quelques que soient les fenêtres ouvertes, fasse apparaitre au 1er plan le bureau.Quelqu'un sait il pourquoi le
Traduire un code VB en VB Script pour une page ASP ou comment utiliser une fonction inclue dans un dll ? [ par Gbrissot ]
Traduire un code VB en VB Script pour une page ASP du code suivant ou comment utiliser une fonction inclue dans un dll ?Declare Function wu_GetUserNam
Afficher DataReport de VB6 en mode paysage [ par Gbrissot ]
Bonjour,j'aimerais savoir si il est possible à partir du DataReport disponible dans VB6 de faire des DataReport au format paysage.Pourriez vous m'aide
RGB HEX et long nombre [ par ebwm ]
bonjourquand on fait un source.backcolor (par exemple) on obtient un nombre du genre 9459964, comment convertir ce nombre en RGB ou HEX (rgb(252,84,14
Livres en rapport
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|