FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Liaison avec une balance Precia Molen via une DLL
Liaison avec une balance Precia Molen via une DLL
Débuté par Christophe, 06 oct. 2016 17:56 - 6 réponses
Connectez-vous…
Christophe
#1
Membre enregistré
9 messages
Posté le 06 octobre 2016 - 17:56
Bonjour à tous,
Je dois faire une liaison avec une balance Precia Molen (Modèle I700).
Le constructeur met à disposition une DLL pour interroger la balance.
J’ai besoin d’utiliser 3 fonctions pour faire mes premiers tests.
fonction SYS_Open (SYS_t_IpAddr ip, DINT port)
Connexion à la mesure du I700
Attend : Ip L’adresse IP du serveur mesure et Port Le numéro du port du serveur mesure (5000),
En retour de l’appel Le compte-rendu d’exécution de la fonction
1 Ok , 0 Pb
ex : d'appel de la fonction SYS_Open en C#
UInt32 ip;
Int32 port;
ip = 0;
IPAddress test = IPAddress.Parse("127.0.0.1");
ip = Convert.ToUInt32(test.Address);
port = 5000;
if (InterfaceDLL.SYS_Open(ip, port) != 0)
{
}
La structure SYS_t_IpAddr
Definition de la structure de definition de l’adresse IP
typedef ULONG SYS_t_IpAddr Definition du type adresse IP.
La fonction WEIGHT_Get (BYTE N_Voie, WEIGHT_t_Mes * Mes)
Récupération de la mesure
Attend : N_Voie Le numéro de la voie concernée
Rend : Mes La structure contenant la valeur lue.
En retour de l’appel Le compte-rendu d’exécution de la fonction
public struct WEIGHT_t_Mes
{
public Int32 StatusMesure;
public Int32 Brut;
public Int32 Tare;
public Int32 Net;
public Int32 Brut_HR;
public Int32 Tare_HR;
public Int32 Net_HR;
public Byte posVirgBrut;
public Byte posVirgTare;
public Byte posVirgNet;
public Byte posVirgHR;
public Int32 N_DSD_Der;
public Int32 Prix_Unit;
public Int32 Prix_Calc;
public float Debit;
};
La fonction SYS_Close ()
Déconnexion de la mesure du I700
En retour de l’appel Le compte-rendu d’exécution de la fonction
J’ai utilisé AppelDLL32 sans succès.
DLLname est une
chaîne
=
"c:\PRECIA\APP_mesure\C_App_Mesure.dll"
h
Inst est un
entier
h
Inst
=
ChargeDLL
(
DLLname
)
SI
h
Inst
=
0
ALORS
Erreur
(
"Erreur lors du chargement"
)
SINON
// 127.0.0.1 --> 2130706432
n
Ip_adress est un
entier
sans signe sur
4
octets
=
2130706432
n
Port est un
entier
sur
4
octets
=
5000
s
Entier est un
entier
s
Entier
=
AppelDLL32
(
"C_App_Mesure.dll"
,
"SYS_Open"
,
n
Ip_adress
,
n
Port
)
Trace
(
Maintenant
+
" Retour SYS_Open V2 : "
+
s
Entier
)
La trace retourne 0 alors que l'exemple en C# ci-dessus retourne 1
Merci d'avance,
Christophe.
Signaler
0
0
Jurassic Pork
#2
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 07 octobre 2016 - 02:46
hello,
es-tu sûr de ta valeur 2130706432 ?
Parce qu'en ajoutant l'assemblage System.Net à un projet windev et en faisant ceci :
test est une IPAddress dynamique
=
IPAddress.Parse
(
"127.0.0.1"
)
ip est un
entier
=
Convert.ToUInt32
(
test.Address
)
Trace
(
ip
)
j'obtiens comme valeur pour ip : 16777343
--
Ami calmant, J.P
Signaler
1
0
Christophe
#3
Membre enregistré
9 messages
Posté le 07 octobre 2016 - 09:22
Merci J.P,
effectivement cela fonctionne bien mieux avec 16777343.
127.0.0.1 = 7F 00 00 01 en Hexa ==> 0100007F si on inverse soit 16777343 en décimal
cela répond à l'appel de mes fonctions SYS_Open et SYS_Close
je cherche pour la fonction WEIGHT_Get à reproduire la structure WEIGHT_t_Mes et lire le résultat. (je suis novice en windev)
un grand merci.
Christophe.
Signaler
0
0
ChristopheF
#4
Posté le 07 octobre 2016 - 09:53
Bonjour,
quand j'ajoute l'assemblage System.net, je n'ai pas de classe IPAddress ... ni Convert d'ailleurs
Signaler
0
0
Christophe
#5
Membre enregistré
9 messages
Posté le 07 octobre 2016 - 11:33
Bonjour,
Il faut ajouter l'assemblage system et non system.net
Cordialement.
Signaler
0
0
Jurassic Pork
#6
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 07 octobre 2016 - 12:54
tu as raison Ipaddress fait bien parti de l'assemblage System.dll. System.net c'est son espace de nom. Comme j'avais déjà l'assemblage system inclus dans mon projet je n'ai pas fait attention.
--
Ami calmant, J.P
Signaler
0
0
ChristopheF
#7
Posté le 10 octobre 2016 - 08:05
OK merci de l'info
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte