[R] Exploitation de dll d'une carte automate

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

[R] Exploitation de dll d'une carte automate

#1

Message par cutprod »

Bonjour a tous, pour des applications perso je me sers de carte automate type "VM140".
Jusqu'ici je développer mes application sous VB2008, j'aimerais en réaliser avec Autoit.
La carte nécessite deux dll = "mpusbapi.dll et K8061.dll" (fournis avec la carte).
Je n'ai pas de base pour l'utilisation des dll avec autoit, si vous pouviez m'orienter sur un tuto ou un truc simple...
Voila une source qui tourne sous VB2008 que j'aimerai refaire avec Autoit =
► Afficher le texte
Pour ceux que ca intéresse voila la carte en question =
http://sites.google.com/site/brikop/k8061-1
Ayant galérer pour apprendre a utiliser ces cartes, j' avais fait ce site il y'a quelque années pour aider les débutants a exploiter leur cartes...
Modifié en dernier par cutprod le ven. 17 déc. 2010 18:36, modifié 1 fois.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#2

Message par cutprod »

Je peux vous donner les deux dll et aussi le "manuel" (avec des exemples pour appeler les différentes fonctions de ces dll et cela dans différents langages),je sais m'en servir en vb, mais c'est avec autoit que j'ai du mal!!
J'ai bien essayer plein de truc avec l'aide : des "DllCall", des "DllOpen", mais je tâtonne sans trop savoir...ca peut durer un moment...
Si ca peut vous aider!(a m'aider :lol: )
Fichiers joints
dll vm140.rar
(81.66 Kio) Téléchargé 120 fois
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#3

Message par cutprod »

He bin ,mince alors!!
Je vous ai vexé, j'ai dit quelque chose qui fallait pas?
J'ai même pas droit a un ptit : "cherche mieux...";"regarde la", ou encore "va poster ta vielle question toute bidon sur le forum anglais..."
Vous me boycotter ou quoi? :?
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#4

Message par Tlem »

Il arrive parfois, qu'on ne sache pas quoi dire ... :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#5

Message par cutprod »

Ha je comprend!!
Une impression au moins?, un ressentit, une vague idée d'une possible direction?
De votre part Tlem cela m'étonne!! Remarque les fête de noëls arrivent...
Ok, je comprend j'insiste pas! Mais alors juste pour le fun:
Dit moi un "Ici on peut rien faire pour toi, va voir sur le forum anglais"
...Je sais pas pourquoi j'ai besoin qu'on me pousse moi :|
Il est tard là non?
Je vais me coucher, et demain j' apprend a parler anglais...
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#6

Message par bloodwolff »

What are you waiting for ask your stupid question on http://www.autoitscript.com/forum/ ?
Compte skype : bloodwolfff
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#7

Message par cutprod »

Ho yes of course why I did not think of before?
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#8

Message par Tlem »

Bien que les appels de DLL ne soit vraiment pas ma tasse de thé, je vais essayé de faire un petit effort.

En lisant le PDF, je pense que certaines fonctions sont plus ou moins simple à interpréter (attention, je ne suis pas un cador, hein !!!).

Déjà pour commencer, il est important de lire la documentation de DllCall afin de comprendre ce que l'on cherche à faire. L'exemple de fin est pas mal pour la compréhension. ;)

La partie la plus intéressante (pour le début) est ceci :

Code : Tout sélectionner

DllCall ( "dll", "return type", "function")
Considérant que "dll" représente le chemin et le nom de la dll, ou plus simplement son handle obtenu avec le DllOpen.
En deuxième argument, on trouve le type de la valeur de retour.
En troisième argument, le nom de la fonction.

Analysont cette fonction :
OpenDevice
Syntax
FUNCTION OpenDevice: Longint;

Result
Longint: If succeeded the return value will be the card address read from the K8061 hardware. The
card address is value between 0 and 7 which corresponds to the jumper (A1, A2, A3) setting on the
K8061 card. Use this value in the next function calls to access this card.
If more K8061 cards are connected to the PC, repeat this function call until all the cards are opened.
Return value -1 indicates that all K8061 cards are opened.
Return value -2 indicates that no card was found.
Description
Opens a communication link to the K8061 card. Loads the drivers needed to communicate via the USB
port. This procedure must be performed before any attempts to communicate with the K8061 card.
Example
var CardAddress: longint;
BEGIN
CardAddress:=OpenDevice;
// Opens the link to card and returns the "CardAddress"
END;
La partie la plus intéressante étant cette partie :

Code : Tout sélectionner

Syntax
FUNCTION OpenDevice: Longint;
Dans cette partie, je voit deux choses principales.
1 - Le nom de la fonction => OpenDevice
2 - Le type de la valeur de retour => Longint

Pour la fonction, c'est facile. Par contre pour le type de retour, il faut analyser le mot, car en AutoIt les noms sont un peut différents.
Pour moi, Longint est la contraction de Long et Int. Si je regarde l'aide de DllCall, Long et Int sont tous deux des entiers 32 bit. Comme dans la documentation de la fonction il est précisé LongInt, je vais considérer qu'en AutoIt il faut utiliser Long. :roll:
Sinon, si ça ne fonctionne pas avec Long, il faut essayer Int. ;)
Je pense qu'en cherchant un peut sur le forum, ce genre de chose à été discuté et les équivalences avaient été données. :mrgreen:

Donc pour notre fonction OpenDevice, cela devrait donner un code dans ce genre :

Code : Tout sélectionner

$AddrCard = DllCall ( "K8061.DLL", "long", "OpenDevice")
et qui selon la section Result de la documentation, doit nous retourner l'adresse de la carte en cas de succès (un nombre entre 0 et 7) ou en cas d’échec -1 ou -2.

Pour la fonction CloseDevices, c'est un tout petit peut plus compliquée ... :roll:
L'aide nous dit :
Syntax
PROCEDURE CloseDevice(CardAddress: Longint);
Donc cette fois-ci, pas de valeur de retour, mais il y a un paramètre en plus (CardAdress) et son type.
Voici comment je "traduirais" la chose ...

Code : Tout sélectionner

$AddrCard = DllCall ( "K8061.DLL", "none", "CloseDevices", "long", $AddrCard)
Une petite dernière pour la route. ;)
La fonction :
ReadAnalogChannel
Syntax
FUNCTION ReadAnalogChannel(CardAddress: Longint; Channel: Longint): Longint;
Parameters
CardAddress: The address of previously opened card.
Channel: Value between 1 and 8 which corresponds to the AD channel whose status is to be read.
Result
Longint: The corresponding Analogue to Digital Converter data is read.
Ici, nous avons :
1 - Nom de la fonction = ReadAnalogChannel
2 - Paramètre 1 = CardAddress de type LongInt
3 - Paramètre 2 = Channel de type Longint
4 - Une valeur de retour de type LongInt.
Je traduirais ceci en :

Code : Tout sélectionner

$ADCData = DllCall ( "K8061.DLL", "Long", "ReadAnalogChannel", "long", $AddrCard, "long", $Cannel)
Voilà déjà une bonne base de travail.
J'espère ne pas avoir dit de bêtises, car je suis arrivé là par simple déduction. 8)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#9

Message par cutprod »

Je te remercie pour ces "bases" qui vont me permettront, je n'en doute pas, d'avancer un peu!!
Merci pour avoir fais "le petit effort" de m'aider Tlem, c'est très cool de ta part.
Je teste apres le boulot et je te tiens au courant :D
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] Exploitation de dll d'une carte automate

#10

Message par cutprod »

[A] comme abandon!!
J'y arrive pas, je patauge dans la semoule et j'ai pas le temps en ce moment!
Donc fermeture!! Et je continuerai a me servir de VB2008 pour faire tourner mes cartes.
Merci a Tlem d'avoir essayer de m'aider :D , t'es cool!
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Exploitation de dll d'une carte automate

#11

Message par Tlem »

C'est quand même dommage d'abandonner si près du but ...
Et sur le fofo Anglais, pas de nouvelle ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [R] Exploitation de dll d'une carte automate

#12

Message par cutprod »

Oui c'est dommage, j'ai un peu honte :oops:
Alors on va dire comme standby!
J'ai pas le temps en moment, mais des que possible je reprend les testes, et je post sur le fofo anglais!!
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Exploitation de dll d'une carte automate

#13

Message par bloodwolff »

Tu peux toujours m'ajouter skype et on verra se qu'on peut faire à 2 !
Compte skype : bloodwolfff
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Exploitation de dll d'une carte automate

#14

Message par bloodwolff »

Contrat réussit , même si je devrais apprendre à être meilleur prof ! :lol:
Compte skype : bloodwolfff
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [R] Exploitation de dll d'une carte automate

#15

Message par cutprod »

Ha oui!! Je confirme :D :D
J'ai contacter bloodwolff par skype, et il ma expliquer pas a pas comment faire tourner ma carte avec Autoit!!
Merci mille fois :wink:
Super Québécois a encore frappé!!
Et Bien sur Tlem avait encore vu juste le premier car les fonctions de ma dll s'appellent bien comme il me l'avais dit, mais je bloquais sur des petits détails (qui on souvent une importance majeure!!) genre la fonction qui connecte ma carte :lol:
Je vais mettre tout ca au propre et je posterai un script rassemblant les principales fonctions, ca servira surement un jour a quelqu'un d'autre....
Vraiment Autoit réserve des bonne surprises, je suis bien content d'avoir découvert ce soft...
Merci encore a tous pour votre aide :D
Cut, srcipteur du dimanche...désolé !-)
Répondre