Kit de développement Client Comm/IP: questions/réponses

Re: Kit de développement Client Comm/IP, en C

Messagepar Xavier » 14 Octobre 2014, 17:48

Superbe!

A quand la suite ...

Amicalement,

Xavier
Echelle N , Run depuis le 01/01/2013
Centrale NanoX/Roco + GenLiS88, Dcc++, Décodeurs Accessoires à base d'Arduino
Rétrosignalisation LDT RM-GB-8-N-B, Décodeur d'aiguillage LDT M-DEC-DC-B, Moteurs Conrad 219998
Club; AMFBC 73
Xavier
 
Messages: 465
Inscrit le: 11 Décembre 2009, 19:01
Localisation: Challes les eaux - Chambery (Savoie / Rhône Alpes)

Re: Kit de développement Client Comm/IP, en C

Messagepar jpp38 » 15 Octobre 2014, 07:34

Bonjour,

Belle démo! :thumb2:

JP
jpp38
 
Messages: 11187
Inscrit le: 31 Mars 2009, 10:15
Localisation: Grenoble (Isère / Rhône Alpes)

Re: Kit de développement Client Comm/IP, en C

Messagepar jpp38 » 03 Décembre 2014, 11:21

Bonjour,

Railexpo étant derrière, je vais revenir maintenant sur ce problème de commande de vitesse via Comm/IP.

gily, peux-tu me rappeler si tu as d'autres points (que ce pb de commande de vitesse) en attente de ma part, liés à Comm/IP, parce que j'ai un peu perdu le fil depuis 2 semaines.

JP
jpp38
 
Messages: 11187
Inscrit le: 31 Mars 2009, 10:15
Localisation: Grenoble (Isère / Rhône Alpes)

Re: Kit de développement Client Comm/IP, en C

Messagepar gily » 03 Décembre 2014, 13:16

Bonjour jpp

à propos du pilotage de la vitesse, j'ai modifié l'appel de la fonction de la manière suivante:

void vitesse_train(int vitesse,unsigned char *train)
{
char affiche[256];
IPC_MSG_TAG xtag ;
if (echo)
{
sprintf(affiche, "Vitesse train: %s à %d pc \r\n", train,vitesse);
Display(affiche);
}
IPC_TrainSpeedCRE(&xtag,train,0,ABS_MAX_SPEED,ABS_MAX_SPEED,ABS_MAX_SPEED,vitesse,ABS_MAX_SPEED,IPC_COMMAND); // reprise vitesse
}

Mais il demeure toujours le problème de la fermeture et de la réouverture du client qui pose problème en mode pilotage réel. En simu c'est ok.

A bientot
gily
 
Messages: 1130
Inscrit le: 25 Juillet 2014, 14:32
Localisation: nord

Re: Kit de développement Client Comm/IP: questions/réponses

Messagepar gily » 20 Janvier 2015, 11:40

Bonjour!!
j'ai une question a propos du pilotage des fonctions F0 à Fnn d'une loco par le programme client, comment peut ton faire?
Je n'ai pas trouvé dans la doc de fonction activant/désactivant les fonctions F...

Par exemple je voudrais faire klaxonner mon train sur un actionneur pour commencer. (je ne veux pas le faire par CDM, trop facile :roll: ) :D

Salutations
gily
 
Messages: 1130
Inscrit le: 25 Juillet 2014, 14:32
Localisation: nord

Re: Kit de développement Client Comm/IP: questions/réponses

Messagepar jpp38 » 20 Janvier 2015, 13:00

Bonjour,

A priori, ça passe par la fonction IPC_TrainDCCParamCRE(), en mettant les deux paramètres nStep et nCStep à ABS_MAX_SPEED, pour en dévalider l'envoi.
On joue sur les deux paramètres nModFuncMask (masque des bits 0 à 12 à prendre en compte), et nFunc, (valeurs des bits à prendre en compte).

JP
jpp38
 
Messages: 11187
Inscrit le: 31 Mars 2009, 10:15
Localisation: Grenoble (Isère / Rhône Alpes)

Re: Kit de développement Client Comm/IP: questions/réponses

Messagepar gily » 20 Janvier 2015, 13:35

ok merci je vais essayer tout çà ce soir :)
gily
 
Messages: 1130
Inscrit le: 25 Juillet 2014, 14:32
Localisation: nord

Re: Kit de développement Client Comm/IP: questions/réponses

Messagepar gily » 24 Janvier 2015, 11:08

bonjour

voici comment utiliser les fonctions F0 F1 F... trains avec le client :

j'ai créé une procédure pour appeler la fonction basique:
void fonction_train(int fonctionMask,int nFunc,unsigned char *train)
{
char affiche[256];
IPC_MSG_TAG xtag ;
if (echo)
{
sprintf(affiche, "Fonction train train: %s \r\n", train);
Display(affiche);
}
IPC_TrainDCCParamCRE(&xtag,train,0,0, //ptag,trainname,nAdress,nstepmode
ABS_MAX_SPEED,ABS_MAX_SPEED,FALSE, //nStep,nCstep,bReverse
fonctionMask,nFunc,IPC_COMMAND); //nModFunkMask,nFunc,MsgType
}


Pour envoyer un son au décodeur sonore de la loco, il faut dans mon cas activer F2 (klaxon aigu), puis le désactiver (faire un front montant).
Pour celà, dans le programme principal, j'active le bit 2 qui correspond à F2 (4 en décimal soit 0x04 en hexa) soit à un coup de klaxon de la loco:
la première fonction met le bit 2 à 1, puis 500 ms plus tard, on met le bit 2 à 0 ce qui créée le front montant sur la fonction demandée.

La loco qui passe sur l'actionneur 313 klaxonne.
Bien sur il faut que cette loco soit sonorisée. Si une autre loco passe sur l'actionneur sans etre équipée, rien ne se passera. On peut bien sur
conditionner l'appel de la fonction avec le nom du train si celui-ci est sonore.
NB. le tableau "actionneur[n]" contient le nom du train qui a actionné l'actionneur n. Celui ci est généré dans les entrailles du programme client.
Reprendre l'exemple du programme client pour les signaux complexes pour le retrouver (train_V3_0).

if ((AdressActionneurActivation==313) && (strcmp(actionneur[313],"CC406526")==0 ))
{
aleatoire=rand()%10 ; // nombre de 0 à 9
if (aleatoire==0) BitFunc=0x04; // klaxon aigu
if (aleatoire==1) BitFunc=0x08; // klaxon grave
if (aleatoire==2) BitFunc=0x10; // klaxon grave aigu
fonction_train(BitFunc,BitFunc,actionneur[313]);
sleep(500);
fonction_train(BitFunc,0,actionneur[313]);
}


Je n'y vois qu'une restriction : la procédure TrainDCCParamCRE attend les bits de fonctions F par un paramètre de type INT. Donc, les bits vont de 0 à 15. Il est a priori impossible de passer des fonctions >15??? Mon décodeur de sons va jusque F20, donc je ne sais pas comment procéder.

A bientot
gily
 
Messages: 1130
Inscrit le: 25 Juillet 2014, 14:32
Localisation: nord

Re: Kit de développement Client Comm/IP: questions/réponses

Messagepar jpp38 » 25 Janvier 2015, 08:40

Bonjour,

Merci pour ce topo.

gily a écrit:X
Je n'y vois qu'une restriction : la procédure TrainDCCParamCRE attend les bits de fonctions F par un paramètre de type INT. Donc, les bits vont de 0 à 15. Il est a priori impossible de passer des fonctions >15??? Mon décodeur de sons va jusque F20, donc je ne sais pas comment procéder.

A bientot
²

Le type int est de 32 bits en Win32. Donc la restriction n'est pas là. En fait, le protocole est prévu pour passer jusqu'à 28.

C'est plutôt au retour dans le serveur, car les DLL DGI... ne passent en effet que jusqu'à F12 pour le moment.

JP
jpp38
 
Messages: 11187
Inscrit le: 31 Mars 2009, 10:15
Localisation: Grenoble (Isère / Rhône Alpes)

Re: Kit de développement Client Comm/IP: questions/réponses

Messagepar gily » 25 Janvier 2015, 09:51

ok JPm bien noté merci :)
gily
 
Messages: 1130
Inscrit le: 25 Juillet 2014, 14:32
Localisation: nord

PrécédentSuivant

Retourner vers Fonctionnement en réseau: Comm/IP

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité