Accueil > Forum > > > > Communication RS232
Communication RS232
samedi 2 décembre 2006 à 15:25:37 |
Communication RS232

lecobra20
|
Bonjour ! Voilà je suis entrain de réaliser un programme me permettant de dialoguer via le port série RS223 d'un ordinateur. Mais je suis confronté à quelques petits problèmes. Voilà je voudrai pour me connecter au port série de l'ordinateur le sélection via un combox ainsi que les paramètres de connexion. Mais le problème c'est que je n'arrive pas à passer le numéro du port en paramètre : Je m'explique pour se conncter au port j'utilise la syntax suivant Comm.CommPort = 1 Comm.Settings = "9600,n,8,1"
J'aimerai remplacer cela par une sélection sur des combobox. Exemple : Comm.CommPort = PortNbr => PortNbr étant la sélection de mon port sur le combobox Port.Text
De plus je voudrais faire la même chose avec les paramètre de comm. Je précise j'utilse un bouton pour ouvrir le port. Voilà merci de votre aide. Ah encore une petite question : Combien de caractère peut on envoyer dans une trame sur un bus RS232 Voilà merci encore !
|
|
samedi 2 décembre 2006 à 18:12:05 |
Re : Communication RS232

acive
|
salut, je ne suis pas sur de comprendre...
Comm.Settings = "9600,n,8," & Combo1.Text c'est ca? A+ A.C.I.V.E SARL
Automatismes Conception Informatique Vidéo Electronique
|
|
samedi 2 décembre 2006 à 19:10:21 |
Re : Communication RS232

lecobra20
|
Le problème c'est lorsque je fait un nouveau choix par le combox il le prendpas en compte il garde la premiere valeur celle lors de l'ouverture du port.
J'ai bien essyé de mettre un timer mais il me renvoi une erreur comme quoile port est déjà ouvert voilà merci.
Voici mon code pour info :
'''''' Déclaration de variables '''''' Public PortNbr As Integer
''''' Fonction pour gérer les différentes erreurs possible sur le port de comm '''''' Private Sub Comm_OnComm()
Select Case Comm.CommEvent 'liste des erreurs possibles Case comEventBreak 'On a reçu un signal d'interruption (Break) Case comEventCDTO ' Timeout de la porteuse Case comEventCTSTO ' Timeout du signal CTS (Clear To Send) Case comEventDSRTO ' Timeout du signal de réception Case comEventFrame ' Erreur de trame Case comEventOverrun ' Des données ont été perdues Case comEventRxOver ' Tampon de réception saturé Case comEventRxParity ' Erreur de parité Case comEventTxFull ' Tampon d'envoi saturé Case comEventDCB ' Erreur de réception DCB (jamais vu)
'liste des événements possibles qui sont, eux, normaux Case comEvCD 'Changement dans la broche CD (porteuse) Case comEvCTS 'Changement dans broche CTS Case comEvDSR 'Changement dans broche DSR (réception) Case comEvRing 'Changement dans broche RING (sonnerie)
End Select End Sub
'''''' Fonction qui gère l'envoi de la trame '''''' Private Sub Envoyer_Click() On Error Resume Next Comm.Output = Text2.Text End Sub
'''''' Fontion qui gère le bouton break '''''' Private Sub Command4_Click()
If Comm.PortOpen = True Then Select Case Comm.Break Case vbFalse Comm.Break = True Command4.BackColor = vbRed Case vbTrue Comm.Break = False Command4.BackColor = vbGreen End Select Else Comm.Break = False Command4.BackColor = vbGreen End If End Sub
'''''' Fonction qui permet de fermer le port via le bouton fermer de l'application '''''' Private Sub Fermeture_Click() Comm.PortOpen = False End Sub
'''''' Fonction qui permet d'ouvrir le port via le bouton ouvrir de l'application '''''' Private Sub Ouverture_Click()
On Local Error GoTo Erreur Comm.PortOpen = True 'Gestion des erreurs Erreur: If Err.Number = 8002 Then 'le port n'est pas ouvert MsgBox ("Port non accessible. Utilisé en un autre") End If End Sub
'''''' Fonction du menu pour quitter l'application '''''' Private Sub Quitter_Click() End End Sub '''''' Fonction pour ouvrir la fenêtre de test de ports '''''' Private Sub TestPort_Click() frmTestCom.Show End Sub
'''''' Timer pour la gestion de l'information port "ouvert" ou "fermer" '''''' Private Sub Timer1_Timer() 'Si le port est ouvert If Comm.PortOpen = True Then Label1.Caption = "Ouvert" '///On affiche port ouvert dans le label de l'application Ouverture.Enabled = False '///On déactive le bouton ouverture du port Fermeture.Enabled = True '///On active le bouton fermeture du port 'Si le port est fermer Else Label1.Caption = "Fermé" '///On affiche port fermer dans le label de l'application Ouverture.Enabled = True '///On active le bouton ouverture du port Fermeture.Enabled = False '///On désactive le bouton fermeture du port End If 'Affiche dans le textbox le buffer de sorti et d'entrée Text3.Text = "OutBuffer : " & Comm.OutBufferCount & " | InputBuffer : " & Comm.InBufferCount End Sub
'''''' Fonction pour l'initialisation des Combobox '''''' Private Sub init_com_param()
'Port Port.ItemData(0) = 1: Port.List(0) = "COM1" Port.ItemData(1) = 2: Port.List(1) = "COM2" Port.ItemData(2) = 3: Port.List(2) = "COM3" Port.ItemData(3) = 4: Port.List(3) = "COM4" Port.ItemData(4) = 5: Port.List(4) = "COM5" Port.ItemData(5) = 6: Port.List(5) = "COM6" Port.ItemData(6) = 7: Port.List(6) = "COM7" Port.Text = "COM1"
'vitesse Vitesse.ItemData(0) = 110: Vitesse.List(0) = 110 Vitesse.ItemData(1) = 300: Vitesse.List(1) = 300 Vitesse.ItemData(2) = 1200: Vitesse.List(2) = 1200 Vitesse.ItemData(3) = 2400: Vitesse.List(3) = 2400 Vitesse.ItemData(4) = 4800: Vitesse.List(4) = 4800 Vitesse.ItemData(5) = 9600: Vitesse.List(5) = 9600 Vitesse.ItemData(6) = 19200: Vitesse.List(6) = 19200 Vitesse.ItemData(7) = 38400: Vitesse.List(7) = 38400 Vitesse.ItemData(8) = 57600: Vitesse.List(8) = 57600 Vitesse.ItemData(9) = 115200: Vitesse.List(9) = 115200 Vitesse.ItemData(10) = 230400: Vitesse.List(10) = 230400 Vitesse.ItemData(11) = 460800: Vitesse.List(11) = 460800 Vitesse.ItemData(12) = 921600: Vitesse.List(12) = 921600 Vitesse.Text = "9600"
'taille Taille.ItemData(0) = 5: Taille.List(0) = 5 Taille.ItemData(1) = 6: Taille.List(1) = 6 Taille.ItemData(2) = 7: Taille.List(2) = 7 Taille.ItemData(3) = 8: Taille.List(3) = 8 Taille.Text = "8"
'Parite Parite.ItemData(0) = 1: Parite.List(0) = "n" Parite.ItemData(1) = 2: Parite.List(1) = "e" Parite.ItemData(2) = 3: Parite.List(2) = "o" Parite.ItemData(3) = 4: Parite.List(3) = "m" Parite.ItemData(4) = 5: Parite.List(4) = "s" Parite.Text = "n"
'BitStop BitStop.ItemData(0) = 1: BitStop.List(0) = 1 BitStop.ItemData(1) = 1.5: BitStop.List(1) = 1.5 BitStop.ItemData(2) = 2: BitStop.List(2) = 2 BitStop.Text = "1"
End Sub
'''''' fonction principale de l'application '''''' Private Sub Form_Load()
'Appelle de fonction Call init_com_param Call Timer2_Timer 'configuration du port de communication Comm.InputMode = comInputModeText Comm.RThreshold = 1 '///Permet de gérer l'événement CommEvent : réception Comm.SThreshold = 1 '///Permet de gérer l'événement CommEvent : envoi Comm.CommPort = PortNbr '///Numéro du port à ouvrir Comm.Settings = "9600,n,8,1" '///Paramètre du port pour la communication
Text1.Text = PortNbr End Sub
Private Sub Timer2_Timer()
If Port.Text = "COM1" Then PortNbr = 3 End If If Port.Text = "COM2" Then PortNbr = 2 End If If Port.Text = "COM3" Then PortNbr = 3 End If If Port.Text = "COM4" Then PortNbr = 4 End If If Port.Text = "COM5" Then PortNbr = 5 End If If Port.Text = "COM6" Then PortNbr = 6 End If If Port.Text = "COM7" Then PortNbr = 7 End If End Sub
'''''' Fontion qui permet de fermer les port quand on quitte l'application '''''' Private Sub Form_Unload(Cancel As Integer)
If Comm.PortOpen = True Then Comm.PortOpen = False End If
End Sub
|
|
dimanche 3 décembre 2006 à 10:45:40 |
Re : Communication RS232

maytetino
|
Bonjour j'ai déja rencontré le probléme, le moyen le plus simple ces de mettre la config du port dans un "text" caché. Cest simple :
MSComm1.PortOpen = False 'Fermer Port MSComm1.Settings = Text1.Text ' Changer la config (text1.text= "9600,n,8,1")MSComm1.PortOpen = True ' Ouvreture Pot Sa marche a tout les coups simple rapide et efficace @+ 
|
|
dimanche 3 décembre 2006 à 10:49:39 |
Re : Communication RS232

maytetino
|
Bonjour Voila le codes que j'utilise
If MSComm1.PortOpen = False Then Text1.Text = Combo1.Text + "," + Combo4.Text + "," + Combo2.Text + "," + Combo3.Text MSComm1.CommPort = Combo5.Text MSComm1.Settings = Text1.Text MSComm1.PortOpen = True txtLog = "" port = "open" AddLog ("Port Ouvert") Else MsgBox "Port Déja Ouvert" End If @+
|
|
dimanche 3 décembre 2006 à 10:56:48 |
Re : Communication RS232

maytetino
|
Code Modifier '''''' Déclaration de variables '''''' Public PortNbr As Integer
''''' Fonction pour gérer les différentes erreurs possible sur le port de comm '''''' Private Sub Comm_OnComm()
Select Case Comm.CommEvent 'liste des erreurs possibles Case comEventBreak 'On a reçu un signal d?interruption (Break) Case comEventCDTO ' Timeout de la porteuse Case comEventCTSTO ' Timeout du signal CTS (Clear To Send) Case comEventDSRTO ' Timeout du signal de réception Case comEventFrame ' Erreur de trame Case comEventOverrun ' Des données ont été perdues Case comEventRxOver ' Tampon de réception saturé Case comEventRxParity ' Erreur de parité Case comEventTxFull ' Tampon d?envoi saturé Case comEventDCB ' Erreur de réception DCB (jamais vu)
'liste des événements possibles qui sont, eux, normaux Case comEvCD 'Changement dans la broche CD (porteuse) Case comEvCTS 'Changement dans broche CTS Case comEvDSR 'Changement dans broche DSR (réception) Case comEvRing 'Changement dans broche RING (sonnerie)
End Select End Sub
'''''' Fonction qui gère l'envoi de la trame '''''' Private Sub Envoyer_Click() On Error Resume Next Comm.Output = Text2.Text End Sub
'''''' Fontion qui gère le bouton break '''''' Private Sub Command4_Click()
If Comm.PortOpen = True Then Select Case Comm.Break Case vbFalse Comm.Break = True Command4.BackColor = vbRed Case vbTrue Comm.Break = False Command4.BackColor = vbGreen End Select Else Comm.Break = False Command4.BackColor = vbGreen End If End Sub
'''''' Fonction qui permet de fermer le port via le bouton fermer de l'application '''''' Private Sub Fermeture_Click() Comm.PortOpen = False End Sub
'''''' Fonction qui permet d'ouvrir le port via le bouton ouvrir de l'application '''''' Private Sub Ouverture_Click()
On Local Error GoTo Erreur Comm.PortOpen = True 'Gestion des erreurs Erreur: If Err.Number = 8002 Then 'le port n'est pas ouvert MsgBox ("Port non accessible. Utilisé en un autre") End If End Sub
'''''' Fonction du menu pour quitter l'application '''''' Private Sub Quitter_Click() End End Sub '''''' Fonction pour ouvrir la fenêtre de test de ports '''''' Private Sub TestPort_Click() frmTestCom.Show End Sub
'''''' Timer pour la gestion de l'information port "ouvert" ou "fermer" '''''' Private Sub Timer1_Timer() 'Si le port est ouvert If Comm.PortOpen = True Then Label1.Caption = "Ouvert" '///On affiche port ouvert dans le label de l'application Ouverture.Enabled = False '///On déactive le bouton ouverture du port Fermeture.Enabled = True '///On active le bouton fermeture du port 'Si le port est fermer Else Label1.Caption = "Fermé" '///On affiche port fermer dans le label de l'application Ouverture.Enabled = True '///On active le bouton ouverture du port Fermeture.Enabled = False '///On désactive le bouton fermeture du port End If 'Affiche dans le textbox le buffer de sorti et d'entrée Text3.Text = "OutBuffer : " & Comm.OutBufferCount & " | InputBuffer : " & Comm.InBufferCount End Sub
'''''' Fonction pour l'initialisation des Combobox '''''' Private Sub init_com_param()
'Port Port.ItemData(0) = 1: Port.List(0) = "COM1" Port.ItemData(1) = 2: Port.List(1) = "COM2" Port.ItemData(2) = 3: Port.List(2) = "COM3" Port.ItemData(3) = 4: Port.List(3) = "COM4" Port.ItemData(4) = 5: Port.List(4) = "COM5" Port.ItemData(5) = 6: Port.List(5) = "COM6" Port.ItemData(6) = 7: Port.List(6) = "COM7" Port.Text = "COM1"
'vitesse Vitesse.ItemData(0) = 110: Vitesse.List(0) = 110 Vitesse.ItemData(1) = 300: Vitesse.List(1) = 300 Vitesse.ItemData(2) = 1200: Vitesse.List(2) = 1200 Vitesse.ItemData(3) = 2400: Vitesse.List(3) = 2400 Vitesse.ItemData(4) = 4800: Vitesse.List(4) = 4800 Vitesse.ItemData(5) = 9600: Vitesse.List(5) = 9600 Vitesse.ItemData(6) = 19200: Vitesse.List(6) = 19200 Vitesse.ItemData(7) = 38400: Vitesse.List(7) = 38400 Vitesse.ItemData(8) = 57600: Vitesse.List(8) = 57600 Vitesse.ItemData(9) = 115200: Vitesse.List(9) = 115200 Vitesse.ItemData(10) = 230400: Vitesse.List(10) = 230400 Vitesse.ItemData(11) = 460800: Vitesse.List(11) = 460800 Vitesse.ItemData(12) = 921600: Vitesse.List(12) = 921600 Vitesse.Text = "9600"
'taille Taille.ItemData(0) = 5: Taille.List(0) = 5 Taille.ItemData(1) = 6: Taille.List(1) = 6 Taille.ItemData(2) = 7: Taille.List(2) = 7 Taille.ItemData(3) = 8: Taille.List(3) = 8 Taille.Text = "8"
'Parite Parite.ItemData(0) = 1: Parite.List(0) = "n" Parite.ItemData(1) = 2: Parite.List(1) = "e" Parite.ItemData(2) = 3: Parite.List(2) = "o" Parite.ItemData(3) = 4: Parite.List(3) = "m" Parite.ItemData(4) = 5: Parite.List(4) = "s" Parite.Text = "n"
'BitStop BitStop.ItemData(0) = 1: BitStop.List(0) = 1 BitStop.ItemData(1) = 1.5: BitStop.List(1) = 1.5 BitStop.ItemData(2) = 2: BitStop.List(2) = 2 BitStop.Text = "1"
End Sub
'''''' fonction principale de l'application '''''' Private Sub Form_Load()
'Appelle de fonction Call init_com_param Call Timer2_Timer 'configuration du port de communication comm.portOpen=False Comm.InputMode = comInputModeText Comm.RThreshold = 1 '///Permet de gérer l'événement CommEvent : réception Comm.SThreshold = 1 '///Permet de gérer l'événement CommEvent : envoi Comm.CommPort = text1.text '///Numéro du port à ouvrir Comm.Settings = "9600,n,8,1" '///Paramètre du port pour la communication '--------------------Text1.Text = PortNbr comm.portOpen=True
End Sub
Private Sub Timer2_Timer()
If Port.Text = "COM1" Then PortNbr = 3 End If If Port.Text = "COM2" Then PortNbr = 2 End If If Port.Text = "COM3" Then PortNbr = 3 End If If Port.Text = "COM4" Then PortNbr = 4 End If If Port.Text = "COM5" Then PortNbr = 5 End If If Port.Text = "COM6" Then PortNbr = 6 End If If Port.Text = "COM7" Then PortNbr = 7 End If Text1.text=PortNbr End Sub
'''''' Fontion qui permet de fermer les port quand on quitte l'application '''''' Private Sub Form_Unload(Cancel As Integer)
If Comm.PortOpen = True Then Comm.PortOpen = False End If
End Sub @+
|
|
dimanche 3 décembre 2006 à 13:42:02 |
Re : Communication RS232

lecobra20
|
Merci de votre aide !
Mais celne fonctionne toujours pas le vrai problème c'est que lorsque l'on change le numéro du port dans le combobox celui-ci ne ce met pas à jour dans le form load. Le problème vient sur le timers je suppose. C'est pour cela que j'ai créé un timer avec une varialbe qui contient le numéro du port. Cette variable elle change bien mais dans le for load aucun changement et comme je n'arrive pas à mettre un timer dans fore load cele ne fonctionne pas.
Auriez-vous une idée pour ce problème. Sinon mon code fonctionne juste ce problème que je n'arrive pas à résoudre ! L mise a jours du numéro de port en fonction du changement dans la combobox.
Merci d'avance
|
|
dimanche 3 décembre 2006 à 14:52:38 |
Re : Communication RS232

maytetino
|
Bonjour
Moi j'ai utilisé un fichier text pour mémorisé la config du port, tré simple est efficase, je viens lire le fichier est je charge la conf a chaque ouvreture de la form. @+
Private Sub lecture() '------------------------------------------------------------------- Open App.Path & "\system.ini" For Input As #5 Input #5, fiche(1) ' port Input #5, fiche(2) ' vitesse Input #5, fiche(3) ' parité Input #5, fiche(4) 'bitsarret Input #5, fiche(5) 'bitstrame Input #5, fiche(6) 'timer Input #5, fiche(7) 'ret auto Input #5, fiche(8) ' fichier log Input #5, fiche(9) ' demarrage auto Close #5 End Sub
Private Sub sauvegarde() Dim x '------------------------------------------------------------------- Open App.Path & "\system.ini" For Output As #5 For x = 1 To 9 Print #5, fiche(x) ' port Next x Close #5 End Sub
|
|
dimanche 3 décembre 2006 à 19:42:13 |
Re : Communication RS232

lecobra20
|
Bonjour !
Merci à vous tous pour vos réponses, j'ai enfin réglè le problème avec vos conseils.
j'aurai une dernière question ! Savez-vous la limite d'envoi sur un trame le nombre de caractère possible. Peut-on envoyer un fichier via le port et de combien de ko. Quelle est le principe pour faire l'envoi d'un fichier via les port série.
Merci d'avance
|
|
lundi 4 décembre 2006 à 11:10:04 |
Re : Communication RS232

acive
|
Je l'ai déjà fait fonctionner avec une ouverture et envoi du fichier en mode binaire, mais c'est assez lourd comme transaction.. j'ai trouvé un code sur vbfrance (sur ce site) cherche un peu tu trouveras.. A+
A.C.I.V.E SARL Automatismes Conception Informatique Vidéo Electronique
|
|
Cette discussion est classée dans : port, voil, sélection, communication, comm
Répondre à ce message
Sujets en rapport avec ce message
Communication via le port série [ par Bistou ]
comment recevoir des informations émises par une télécommande via le port série? pourrais-je par la même occasion avoir un exemple d'aplication de log
Impression sur le port Comm MsComm [ par MacFly ]
Bonjour,j'aimerais savoir si c possible d'envoyer un fichier avec l'objet MsCOmm et pas une chaine de caractere ?
Communication vers port seriel COM X [ par tecky ]
J'ai écrit un prg pour lire des données d'un ancien INTEL8080 vers le port seriel COM1. Comment je doit faire pour transmettre des données vers le por
Communication vers port seriel COM X [ par tecky ]
J'ai écrit un prg pour lire des données d'un ancien INTEL8080 vers le port seriel COM1. Comment je doit faire pour transmettre des données vers le por
Communication vers port seriel COM X [ par tecky ]
J'ai écrit un prg pour lire des données d'un ancien INTEL8080 vers le port seriel COM1. Comment je doit faire pour transmettre des données vers le por
communication port com [ par r1k ]
Bonjour,j'ai un impédancemetre (genre de balance) qui se branche qur le port com du pc. Ce dernier envoie des informations (séparés par des virgules),
communication port com [ par r1k ]
Bonjour,j'ai un impédancemetre (genre de balance) qui se branche qur le port com du pc. Ce dernier envoie des informations (séparés par des virgules),
VB communication avec port USB [ par bonj98 ]
Bonjour,Je cherche une application avec laquelle je peux me connecter sur un port USB (év. avec choix du port USB).Merci beaucoupMeilleures salutation
communication [ par pladgpm1 ]
pouvez vous m'aider je veut envoi la valeur chr(0) dans mon port de communication mais elle apparait pas dans mes strings envoyer dans une serier &H32
Ms Comm [ par marcelin ]
je travail sur une appli qui doit tourner avec un lecteur de badge à code barre brancher sur le port MS Comm.je vien de le recevoir aujourd'hui, mais
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
TéLéCHARGEMENTTéLéCHARGEMENT par bernardPare
Cliquez pour lire la suite par bernardPare
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|