Go Down

Topic: UDP supported? (Read 24847 times) previous topic - next topic

sonnyyu

At Yun:

Code: [Select]
nano /mnt/sda1/udp.py

Code: [Select]
#!/usr/bin/python
import socket
UDP_IP = "192.168.0.230"   #Mac or Linux box's IP
UDP_PORT = 8888
MESSAGE = "G"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.sendto(bytes(MESSAGE), (UDP_IP, UDP_PORT))
sock.close()


Code: [Select]
chmod 755 /mnt/sda1/udp.py

At Linux/Mac box( wait to call):

Code: [Select]
nc -ul 192.168.0.230  8888

At Yun:

Code: [Select]
/mnt/sda1/udp.py

If every thing is OK( Mac Box got "G"), then  change UDP_IP = "Uno IP address", test it again.

Now is time make Arduino of Yun to call "/mnt/sda1/udp.py"

Code: [Select]
...
String cmd = "/mnt/sda1/udp.py";
...






richard47

Thank you for taking the time to help me. You have certainly given me a lot to think about.

I understand the procedure that you have set out but I still need to sort out how to implement the various bits of code but I will try.

Many thanks,
Richard

richard47

Thank you for putting me on the right track  :) I am now able to control my Wi-Fi lights from the Yun.

I have learnt a lot with your help.

However, I am missing one feature now. Some of my UDP commands have replies and I would like to retrieve them. I think that I can modify the Python script to get the reply but how do I pass the reply back to the Arduino side of the Yun?

sonnyyu

Did you like try this?
Code: [Select]
...
recvmsg=sock.recv(1024)
#print recvmsg
sock.close()

richard47

#19
Mar 23, 2014, 06:01 pm Last Edit: Mar 23, 2014, 06:03 pm by richard47 Reason: 1

Did you like try this?
Code: [Select]
...
recvmsg=sock.recv(1024)
#print recvmsg
sock.close()


I have just modified the Python code to include
recvmsg=sock.recv(1024)
#print recvmsg

and I still do not get a reply sent across to the Arduino side of the bridge. What does #print recvmsg do?

sonnyyu

uncomment  "#print recvmsg" for debug code at Yun console.

The code send reply back to Yun:
Code: [Select]
...
import sys  
sys.path.insert(0, '/usr/lib/python2.7/bridge/')
from bridgeclient import BridgeClient as bridgeclient
...
bc = bridgeclient()                          
bc.put('to_arduino',recvmsg)
...


richard47

I'm sorry but I don't understand what the complete Python code should be now.

Please would you post the complete code for me.

Regards,
Richard

sonnyyu

At Yun:

Code: [Select]
nano /mnt/sda1/udp.py

Code: [Select]
#!/usr/bin/python
import socket
UDP_IP = "192.168.0.230"   #Uno IP address
UDP_PORT = 8888
MESSAGE = "G"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.sendto(bytes(MESSAGE), (UDP_IP, UDP_PORT))
recvmsg=sock.recv(1024)
print recvmsg
sock.close()


Code: [Select]
/mnt/sda1/udp.py

make sure return value from nano.

Code: [Select]
#!/usr/bin/python
import socket
import sys 
sys.path.insert(0, '/usr/lib/python2.7/bridge/')
from bridgeclient import BridgeClient as bridgeclient
UDP_IP = "192.168.0.230"   #Uno IP address
UDP_PORT = 8888
MESSAGE = "G"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.sendto(bytes(MESSAGE), (UDP_IP, UDP_PORT))
recvmsg=sock.recv(1024)
#print recvmsg
sock.close()
bc = bridgeclient()                         
bc.put('to_arduino',recvmsg)





richard47

Thank you once again. I have tried your code that uses the Yun Bridge and it works. I am using it to control my Wi-Fi lights and to retrieve the reply sent by the Uno controlling them.

Without your help I would have given up long ago. I have learnt a lot about the Yun with your help.

Regards,
Richard

esbjerg

Hey, been following this trying to get it to work, and I think I'm very slowly understanding this.

I've got
nano /mnt/sda1/udp.py
to run, and that's to edit a file on the sd card right? To do that I need to use

export TERM='xterm-color'

To stop the error

Error opening terminal: xterm-256color.

So it opens fine, but when I try and write the next line of code I get
[ Error writing /mnt/sda1/udp.py: No such file or directory ]

Have I just done something really silly somewhere?

Thanks!
John

sonnyyu

#25
Mar 25, 2014, 02:35 am Last Edit: Mar 25, 2014, 02:37 am by sonnyyu Reason: 1
Code: [Select]
vi /etc/profile
export TERM=xterm-colo


exit ssh then relogin

https://forum.openwrt.org/viewtopic.php?id=13230

Plan B:

Start from fresh (backup your own file!):

Code: [Select]
/usr/bin/reset-to-factory-anyway
reboot


esbjerg

If I try

Code: [Select]
vi /etc/profile
export TERM=xterm-colo


I get

Code: [Select]
#!b/in/sh
rt TERM=xterm-colo                   
[ -f /etc/banner ] && cat /etc/banner
                                         
export PATH=/bin:/sbin:/usr/bin:/usr/sbin                             
export HOME=$(grep -e "^${USER:-root}:" /etc/passwd | cut -d ":" -f 6)
export HOME=${HOME:-/root}
export PS1='\u@\h:\w\$ '
                                   
[ -x /bin/more ] || alias more=less               
[ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi
                                                           
[ -z "$KSH_VERSION" -o \! -s /etc/mkshrc ] || . /etc/mkshrc
                                                   
[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }           
[ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }
~
~
~
~
~
~
~
I /etc/profile [Modified] 2/16 12%


and every time i enter it increases both sides by 1, 3/17 etc
And I'm still getting the error no file or directory.
Thanks!

sonnyyu


esbjerg

That was after trying plan b.

sonnyyu

#29
Mar 25, 2014, 05:00 pm Last Edit: Mar 25, 2014, 05:03 pm by sonnyyu Reason: 1
Post

Code: [Select]
uname -a

Code: [Select]
vi /etc/profile

modify file:

Code: [Select]

...
export PS1='\u@\h:\w\$ '
export TERM=xterm-colo
...





Go Up