'Activity module ' Pour INTERFACE ETHERNET 8 IN - 8 OUT Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. Dim UDPSocket1 As UDPSocket Dim IP As String Dim PORT As Int Dim Timer1 As Timer ' Timer pour la lecture en boucle des entrées E0 à E8 du PIC. End Sub Sub Globals 'These global variables will be redeclared each time the activity is created. 'These variables can only be accessed from this module. Dim scvMain As ScrollView Dim PanelNb As Int : PanelNb=8 Dim PanelHeight As Int : PanelHeight=45dip Dim Label1 As Label Dim Button1 As Button Dim Button2 As Button Dim Button3 As Button Dim Label2 As Label End Sub Sub Activity_Create(FirstTime As Boolean) Dim i As Int '* On définit les paramètres UDP * If FirstTime=True Then IP="192.168.0.9" ' On définit notre IP. PORT=5030 ' On définit le numéro de PORT UDPSocket1.Initialize("UDP",PORT,10) Timer1.Initialize("Timer1",1000) ' Time = 1 seconde Timer1.Enabled=True ' Active le Timer1. End If Activity.LoadLayout("Main") '* Création et affichage de la listView * scvMain.Initialize(500) Activity.AddView(scvMain, 0, 20%y, 100%x, 75%y) For i=0 To PanelNb-1 Dim pnltest As Panel Dim label_Gauche As Label Dim btnON As Button Dim btnOFF As Button Dim btnBistable As Button pnltest.Initialize("pnlTest") scvMain.Panel.AddView(pnltest,0,5dip+i*PanelHeight,100%x,PanelHeight) pnltest.Tag=i If (i Mod 2)=1 Then pnltest.Color=Colors.Magenta Else pnltest.Color=Colors.Blue End If '* Affiche le texte "Sorties n° X" à gauche.* label_Gauche.Initialize("lbl_Gauche") pnltest.AddView(label_Gauche,10dip, 5dip, 120dip, 40dip) label_Gauche.Tag=i label_Gauche.TextSize=20 label_Gauche.Text="Sortie n° "&(i+1) '******************************************** '* Affiche les boutons ON * btnON.Initialize("btnON") pnltest.AddView(btnON,120dip, 5dip, 50dip, 40dip) btnON.Tag=i btnON.Text="ON" '************************* '* Affiche les boutons OFF * btnOFF.Initialize("btnOFF") pnltest.AddView(btnOFF,175dip, 5dip, 50dip, 40dip) btnOFF.Tag=i btnOFF.Text="OFF" '************************* '* Affiche les boutons Bistable * btnBistable.Initialize("btnBistable") pnltest.AddView(btnBistable,230dip, 5dip, 80dip, 40dip) btnBistable.Tag=i btnBistable.Text="Bistable" '************************* Next scvMain.Panel.Height=PanelNb*PanelHeight '************************************************ Activity.Title="Interface Ethernet 8IN - 8OUT" ' Titre de l'application ToastMessageShow("IP: " & IP & " et PORT: " & PORT, False) ' Affichage furtif de l'IP et du PORT. End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) Timer1.Enabled=False ' Arrête le Timer1. UDPSocket1.Close ' Referme le Socket UDP. End Sub Sub UDP_PacketArrived (Packet As UDPPacket) ' Réception des paquets UDP Dim CARAC As String CARAC = BytesToString(Packet.Data, Packet.Offset, Packet.Length, "UTF8") Label2.Text="Entrées E0 à E8: "&CARAC ' Affiche la valeur de l'octet envoyé par le PIC présent sur les entrées E1 à E8 End Sub Sub Timer1_Tick ' Récupération de la valeur présente sur les entrées E0 à E8 du PIC. Dim Packet As UDPPacket Dim DATA() As Byte DATA = "INPUT".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End Sub Sub btnON_Click ' Gestion des 16 Boutons ON Dim Send As Button Send=Sender If Send.Tag=0 Then Label1.Text="Bouton ON n°1" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S01N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=1 Then Label1.Text="Bouton ON n°2" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S02N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=2 Then Label1.Text="Bouton ON n°3" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S03N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=3 Then Label1.Text="Bouton ON n°4" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S04N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=4 Then Label1.Text="Bouton ON n°5" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S05N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=5 Then Label1.Text="Bouton ON n°6" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S06N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=6 Then Label1.Text="Bouton ON n°7" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S07N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=7 Then Label1.Text="Bouton ON n°8" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S08N".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If End Sub Sub btnOFF_Click ' Gestion des 16 Boutons OFF Dim Send As Button Send=Sender If Send.Tag=0 Then Label1.Text="Bouton OFF n°1" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S01F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=1 Then Label1.Text="Bouton OFF n°2" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S02F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=2 Then Label1.Text="Bouton OFF n°3" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S03F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=3 Then Label1.Text="Bouton OFF n°4" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S04F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=4 Then Label1.Text="Bouton OFF n°5" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S05F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=5 Then Label1.Text="Bouton OFF n°6" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S06F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=6 Then Label1.Text="Bouton OFF n°7" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S07F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=7 Then Label1.Text="Bouton OFF n°8" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S08F".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If End Sub Sub btnBistable_Click ' Gestion des 16 Boutons Bistable Dim Send As Button Send=Sender If Send.Tag=0 Then Label1.Text="Bouton bistable n°1" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S01T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=1 Then Label1.Text="Bouton bistable n°2" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S02T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=2 Then Label1.Text="Bouton bistable n°3" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S03T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=3 Then Label1.Text="Bouton bistable n°4" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S04T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=4 Then Label1.Text="Bouton bistable n°5" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S05T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=5 Then Label1.Text="Bouton bistable n°6" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S06T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=6 Then Label1.Text="Bouton bistable n°7" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S07T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If If Send.Tag=7 Then Label1.Text="Bouton bistable n°8" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "S08T".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End If End Sub Sub Button1_Click ' Bouton permettant de mettre toutes les sorties à l'état HAUT Label1.Text="Sorties ON" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "N$".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End Sub Sub Button2_Click ' Bouton permettant de mettre toutes les sorties à l'état BAS Label1.Text="Sorties OFF" Dim Packet As UDPPacket Dim DATA() As Byte DATA = "F$".GetBytes("UTF8") Packet.Initialize(DATA, IP, PORT) UDPSocket1.Send(Packet) End Sub Sub Button3_Click ' Bouton Quitter l'application. Timer1.Enabled=False ' Arrête le Timer1. UDPSocket1.Close ' Referme le Socket UDP Activity.Finish ' Quitter l'application End Sub