-
jeroenimo
-
-
Offline
-
Gebruiker
- Berichten: 366
-
-
|
Met een paar regeltje python kan je een UDP bericht probleemloos sturen over het netwerk:
Ik heb voor een Airmar sensor die ik na stroomuitval opnieuw moet configureren, en da's irritant, maar pyhton to the rescue, dmv van een paar NMEA regels dus in pyhton te sturen met een Enter en LF er achter gaat dit perfect!
Je kan de vast wel wat code stelen uit mijn script:
import socket
import time
UDP_IP = "192.168.1.201" # ip from miniplexer
UDP_PORT = 10110 #default UDP port from miniplexer
MESSAGE1 = "$PSMDRESET,1"+'\r\n' #reset to default settings
MESSAGE2 = "$PSMDSP,C,B,0,C,0,D,0,E,0"+'\r\n' #Set all ports to 4800
MESSAGE3 = "$PAMTC,EN,ALL,1"+'\r\n' #enable all sentences on airmar
MESSAGE4 = "$PSMDSP,C,3,D,3,E,0"+'\r\n' #set all ports in port to 38400, except out1
MESSAGE5 = "$PAMTC,BAUD,38400"+'\r\n' #set Airmar to 38400
MESSAGE6 = "$PSMDSP,C,C,3,D,3,E,3"+'\r\n' #Set out 1 port back to 38400 for possible further comms to airmars
MESSAGE7 = "$PSMDFL,C,AIVDO,02"+'\r\n' #Block AIS pos messages
MESSAGE8 = "$PSMDOP,C,6,1"+'\r\n' #set GPS priority
MESSAGE9 = "$PSMDPR,C,0,2,1,0,0"+'\r\n' #set priority on ports 2 and 3 right
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
#sending messages in timed manner
print "going to set airmar and multiplexer to the right settings and therefor it will display everything like it should!!"
print "sit back and enjoy the automation, it will only take a few moment"
print "one by one all command will be send with 3 sec delay between them to let the multiplexer and the airmar work"
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE1
sock.sendto(MESSAGE1, (UDP_IP, UDP_PORT))
time.sleep(5)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE2
sock.sendto(MESSAGE2, (UDP_IP, UDP_PORT))
time.sleep(3)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE3
sock.sendto(MESSAGE3, (UDP_IP, UDP_PORT))
time.sleep(3)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE4
sock.sendto(MESSAGE4, (UDP_IP, UDP_PORT))
time.sleep(3)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE5
sock.sendto(MESSAGE5, (UDP_IP, UDP_PORT))
time.sleep(3)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE6
sock.sendto(MESSAGE6, (UDP_IP, UDP_PORT))
time.sleep(3)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE7
sock.sendto(MESSAGE7, (UDP_IP, UDP_PORT))
time.sleep(3)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE8
sock.sendto(MESSAGE8, (UDP_IP, UDP_PORT))
time.sleep(3)
print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE9
sock.sendto(MESSAGE9, (UDP_IP, UDP_PORT))
print "All should be working now!"
idonap schreef :
Hoi allen,
Zou het mogelijk zijn om via een app als udp terminal een nmea opdracht te geven die de stuurcomputer een koersaanpassing geeft? Ik weet dat daarvoor ook de afstandbediening is gemaakt, maar ik vroeg me af of ik met een dedicated android toestel die aanpassing via wifi zou kunnen doen.
|