example PoSy receiver
Stefan Schuermans authored 10 years ago
|
1) #! /usr/bin/env python
2)
3) # Stage Director receiver
4) # Copyright 2014 Stefan Schuermans <stefan@schuermans.info>
5) # Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
6)
7) import datetime
8) import fcntl
9) import os
10) import select
11) import socket
12) import struct
13) import sys
14) import time
15)
16) scriptdir = os.path.dirname(os.path.abspath(__file__))
17)
18) class Receiver:
19)
20) def __init__(self):
21) """construct a Stage Director Receiver object"""
22) # set constants
23) self.select_timeout = 0.1 # timeout (s) for select syscall
24) # create member variables
25) self.sock = None
26) # startup
27) self.sockSetup()
28)
29) def __del__(self):
30) """deconstruct object"""
31) self.sockClose()
32)
33) def posyParse(self, data):
34) """parse received PoSy packet"""
35) if len(data) < 76 or data[0:4] != "PoSy":
36) return False
37) flags, name, pos_ms = struct.unpack("!I64sI", data[4:76])
38) name_end = name.find("\0")
39) if name_end >= 0:
40) name = name[:name_end]
41) if flags & 1:
42) pause = True
43) else:
44) pause = False
45) # store info from PoSy packet
|
typo
Stefan Schuermans authored 10 years ago
|
46) print("name=%s pos=%.3fs pause=%s" % (name, pos_ms * 1e-3, pause))
|