Skip to content
This repository has been archived by the owner on May 6, 2021. It is now read-only.

added multicast reception in the udp effect #675

Merged
merged 24 commits into from Jun 4, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
750e3d7
Merge pull request #9 from tvdzwan/Beta
penfold42 Apr 2, 2016
006f49d
Removed -HUP so the default -TERM signal is sent instead.
penfold42 Apr 2, 2016
dc12495
reversing errant change to hyperion.systemd.sh
penfold42 Apr 2, 2016
736b369
Merge pull request #10 from hyperion-project/Beta
penfold42 Apr 27, 2016
18ed83b
Merge pull request #11 from hyperion-project/master
penfold42 May 2, 2016
21a4f0c
Merge remote-tracking branch 'refs/remotes/origin/Beta'
brindosch May 5, 2016
882be0a
Merge pull request #12 from hyperion-project/master
penfold42 May 9, 2016
2aefc0c
Merge pull request #13 from hyperion-project/Beta
penfold42 May 10, 2016
658be7d
Merge pull request #14 from hyperion-project/Beta
penfold42 May 15, 2016
e9ac1da
cleaned up a couple of compiler warnings
penfold42 May 17, 2016
46de806
moved bitpair_to_byte initialiser to (hopefully) work with older GCC
penfold42 May 22, 2016
ba84e85
compiler warning in udp driver
penfold42 May 22, 2016
d676703
formatting - spaces to tabs
penfold42 May 22, 2016
62c511a
Merge pull request #15 from hyperion-project/Beta
penfold42 May 22, 2016
9ac9450
moved rpi_281x to tag sk6812-v1.0
penfold42 May 22, 2016
95d75e1
moving to my fork of rpi_281x
penfold42 May 23, 2016
2e80c1a
Merge pull request #17 from hyperion-project/Beta
penfold42 May 27, 2016
0ab494a
Merge pull request #18 from hyperion-project/Beta
penfold42 May 31, 2016
9383da4
Merge pull request #19 from hyperion-project/Beta
penfold42 May 31, 2016
9518ba2
removed dos line endings
penfold42 May 31, 2016
c82b9ca
Found some more "dos" line ending files
penfold42 Jun 3, 2016
8791f1d
Added multicast support to the udp listener "effect"
penfold42 Jun 4, 2016
ec9f6f6
the default udp.json will listen to unicast on port 2391 (as it used to)
penfold42 Jun 4, 2016
d4c2e78
Merge pull request #20 from hyperion-project/Beta
penfold42 Jun 4, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 9 additions & 0 deletions effects/udp-mcast.json
@@ -0,0 +1,9 @@
{
"name" : "UDP multicast listener",
"script" : "udp.py",
"args" :
{
"ListenPort" : 2801,
"ListenIP" : "239.255.28.01"
}
}
16 changes: 8 additions & 8 deletions effects/udp.json
@@ -1,8 +1,8 @@
{
"name" : "UDP listener",
"script" : "udp.py",
"args" :
{
"udpPort" : 2391
}
}
{
"name" : "UDP listener",
"script" : "udp.py",
"args" :
{
"ListenPort" : 2391
}
}
24 changes: 20 additions & 4 deletions effects/udp.py
Expand Up @@ -3,17 +3,33 @@
import colorsys
import socket
import errno
import struct

# Get the parameters
udpPort = int(hyperion.args.get('udpPort', 2812))
ListenPort = int(hyperion.args.get('ListenPort', 2801))
ListenIP = hyperion.args.get('ListenIP', "")
octets = ListenIP.split('.');

UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM, socket.IPPROTO_UDP)
UDPSock.setblocking(False)

listen_addr = ("",udpPort)
print "udp.py: bind socket port:",udpPort
listen_addr = (ListenIP,ListenPort)
UDPSock.bind(listen_addr)

if ListenIP == "":
print "udp.py: Listening on *.*.*.*:"+str(ListenPort)
else:
print "udp.py: Listening on "+ListenIP+":"+str(ListenPort)

if len(octets) == 4 and int(octets[0]) >= 224 and int(octets[0]) < 240:
print "ListenIP is a multicast address\n"
# Multicast handling
try:
mreq = struct.pack("4sl", socket.inet_aton(ListenIP), socket.INADDR_ANY)
UDPSock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
except socket.error:
print "ERROR enabling multicast\n"

hyperion.setColor(hyperion.ledCount * bytearray((int(0), int(0), int(0))) )

# Start the write data loop
Expand Down