Langage de programmation pour utiliser les ports séries (COM)

aj112 Messages postés 3 Statut Membre -  
 Utilisateur anonyme -
Bonjour à tous !

Je viens à vous pour que vous me donniez votre avis sur le ou les "meilleurs" langages de programmation et environnement de développement pour utiliser les ports séries de mon ordinateur. Par "meilleur" j'entends le moins compliqué, le plus réactif, le plus intuitif, celui que offre une maintenabilité correcte, etc. En effet je dois développer un software qui marche sur Windows et Linux qui consiste à envoyer et recevoir des SMS à différentes personnes en fonction d'un planning entré au préalable par l'utilisateur. Pour cela j'ai besoin d'un modem que je branche sur mon ordi via les ports COM. Je sais déjà comment le modem fonctionne (on lui entre des commandes Hayes via Hyperterminal par exemple), mais je ne sais pas quel langage de programmation utiliser pour envoyer des commandes Hayes à mon modem en fonction d'événements provenant de mon ordinateur ou du modem (du genre : s'il est 15h15, j'envoie un SMS à telle personne, et si la personne en question me répond ça, alors j'active un logiciel sur mon ordinateur et je lui renvoie tel SMS).

J'ai déjà vu que l'API javax.comm n'était plus maintenu, et qu'il marchait que pour des environnements 32 bits (du coup, comme je dois développer sur du 64 bits, c'est surement pas la bonne API).

N'hésitez pas à donner tous vos avis !

J'espère que j'ai été assez clair :)

Bonne journée !

3 réponses

aj112 Messages postés 3 Statut Membre
 
Personne pour m'aider ? Je n'ai pas été assez clair ?
0
Pierrecastor Messages postés 46054 Statut Modérateur 4 151
 
Salut

Un peu au pifometre, mais pour du multi plateforme, intuitif, pas compliqué et tous ça, tu peut regarder du coté de python.
0
Utilisateur anonyme
 
Salut,

Je dirais faire appel aux instructions asm in/out (par asm inline ou intrinsic ou encore asm pur ^^) et regarde du coté de la doc (https://wiki.osdev.org/Serial_Ports de ces ports pour COM:

*------------------------------Port COM------------------------------*

Port Série: 0x3F8, 0x2F8, 0x3E8, 0x2E8
Time out:     1  ,   1  ,   1  ,   1

Port parallèle: 0x3BC, 0x378, 0x278, 0x9FC0
Time out:         20 ,  20  ,   20 ,   20

*--------------------------------------------------------------------------*


Pour faire appel aux instructions in/out, il te faudra un Windows/Linux 32-bits, car l'appel de ces instructions sur win64 (et lin64 surement) est interdit (plantage du programme/user mode).
Par contre si tu fais ton propre système, tu pourras choisir si tu l'interdis ou non.

Et ne t'en fait pas, l'adresse de ces ports ou autres, reste statique sur un PC, quel que soit ton OS.

Basic asm standard: reg(lowercase) instruction(lowercase) -> instruction dest, src
(\___/)
(='.'=)
(")_(")
This is Bunny. Copy and paste bunny into
your signature to help him gain world domination
0
aj112 Messages postés 3 Statut Membre
 
Je vous remercie pour vos réponses ! Je vais jeter un coup d'oeil aux commandes asm in/out, mais en lisant ce que tu me dis ce qui m'embête c'est que je vais devoir développer sur du 64 bits, donc je ne pourrai pas les utiliser ...

Sinon entre temps j'ai tenté d'installer SMSLIbv pour Java, mais quel bord*l ! Impossible d'installer correctement tellement il y a de manip' à faire ... Donc si quelqu'un a une idée d'un langage qui permet d'installer des API simplement, je suis preneur ! Du genre Python avec pySerial ?
0
Utilisateur anonyme
 
Hmm tu es contraint à dev sur du 64 bit ou ? parce qu'en 32, tu peux les utiliser, enfin petit quiproquo ^^
0
aj112
 
Je dois développer en 64bits pour du 64bits ! Mon soft devra fonctionner sur une machine 64bits. Du coup l'api javax.comm ne fonctionnera pas sur la machine 64bits ?
0
Pierrecastor Messages postés 46054 Statut Modérateur 4 151 > aj112
 
On peut faire tourner un logiciel 32 bits sur une architecture 64. C'est d'ailleurs le cas de la majorité des logiciels.
0
Utilisateur anonyme
 
Ok ^^ de toute façon même en faisant du 32-bit sur un win64, tu n'arriveras pas à faire de l'I/O manuellement.

Honnêtement je ne sais pas, si ton API ne fait pas planter ton programme, alors c'est bon ça passe, ça doit passer par des couches supérieures, la WinAPI pour Windows et la unknow pour Linux x)
0