Page 1 sur 1

comparaison string

Posté : 27 sept. 2018, 19:41
par steph31
Bonjour

Sur ma domotique avec mon S7-300 je connecte su mon automate su serveur video VIVOTEK VS3102 sur un CP340 en RS232.

Le vivotek m’envoie une chaine de caractères quand je clique sur les boutons de sa page web embarqué.
Boutons.PNG
Boutons.PNG (11.71 Kio) Vu 1945 fois
Dans le menu camera control, j’ai sélectionné « Custom Camera » et j’affecte à chaque bouton les caractères en HEXA que je veux envoyer.
EX : Move up = 31 30 31 hexa pour envoyer 101 sur le port comm.
config.PNG
P-ex : je clique sur le bouton « LEFT » j’envoie « 103 », « RIGHT » j’envoie « 104 » sur le port série.

J’aimerai bien que dans mon automate je monte un bit à « 1 » quand je reçois la chaine de caractères 103 sur mon CP340, je monte un autre bit pour la chaine de caractères 104 et ainsi de suite.

Je ne sais pas si c’est possible de faire de la comparaison de chaine de caractères, ou de convertir une valeur numérique string en int ?

Avez-vous une idée ?
Cordialement

Re: comparaison string

Posté : 27 sept. 2018, 20:11
par fish
Salut,
J'en ai marre des ados sur ce forum qui parlent de string, de boutons et qui voudraient que leur bit monte à 1 ! :lol:

Re: comparaison string

Posté : 28 sept. 2018, 08:21
par ProfnovA
La chaîne '103' se traduit par un octet = 49 + octet suivant = 48 + octet suivant = 51.
Dans ton tableau de réception des données, vérifie les octets correspondants pour faire une comparaison.

RESOLU Re: comparaison string

Posté : 16 oct. 2018, 16:56
par steph31
Bonjour

C’est exact. Pour 103 : DB10.DBB0 = 49, DBB1 = 48 et DBB2 = 51. Sachant que DB10 est le DB de réception.

Je compare les 3 octet de DB10 à ce du DB11. Si DB10 et différent de DB11, je copy les octets de DB10 dans DB11.

Ensuite je compare les octets de DB11 pour monter mes bits. Ca fonctionne.