Example #1
0
class globals:
    MY_NODE = 'gateway'  # TODO, read this from environment
    running = True

    # Try to read n bytes from serial port, then unblock
    NUM_BYTES_TO_READ: int = 10

    # Ring buffer for incoming data stream
    rxBuffer: CircularBuffer = CircularBuffer()

    # Sets up serial port. Xbee is in Transparent Mode
    xBee = serial.Serial('/dev/ttyUSB0',
                         baudrate=115200,
                         bytesize=8,
                         parity='N',
                         stopbits=1,
                         timeout=1)

    msgParser: MessageStreamParser = MessageStreamParser(
        recieveMessageCallback)

    currentData: sensorData = sensorData()
Example #2
0
 def _init(self, maxsize):
     self.queue = CircularBuffer(maxsize)
Example #3
0
class myVMRSerial:
    port = ''
    ser = False
    B = []
    G = []
    A = []
    P = []
    T = []
    bufferSize = 1000
    cbB = CircularBuffer(bufferSize)
    cbG = CircularBuffer(bufferSize)
    cbA = CircularBuffer(bufferSize)
    cbP = CircularBuffer(bufferSize)
    cbT = CircularBuffer(bufferSize)

    def __init__(self, port="COM3"):
        try:
            self.ser = serial.Serial(port, 115200,
                                     timeout=.5)  # open serial port
            print(self.ser.name)
            time.sleep(.2)
            """
            self.readThread = threading.Thread(target=self.readData)
            self.readThread.setDaemon(True)
            self.ser.reset_input_buffer()
            self.readThread.start()
            """

        except Exception as e:
            print(e)
            quit(1)

    def readLine(self):
        line = self.ser.readline().decode("utf-8")[:-2]
        return line

    def getData(self):
        try:
            line = self.readLine()
            data = [float(d) for d in (line.split(" "))]
            n = int(data[0])
            dLen = len(data)
            if dLen not in [4, 10, 12]:
                print("Line = ", line)
                print("Line data length = ", dLen)
                return
            #if len(data) >= 4:
            self.setB(data[1:4])  # self.B = data[1:4]
            # print("B = ", self.B)
            if dLen == 10:
                self.setA(data[4:7])
                self.setG(data[7:11])
                # print("G = ", self.G)
                # print("A = ", self.A)
            if dLen == 12:
                self.setP(data[10])
                self.setT(data[11])
                # print("Atm. pressure: ", self.P, " mbar")
                # print("Sensor temperature ", data[11], " C")
            return self.B, self.A, self.G
        except Exception as e:
            pass

    def readData(self, progress_callback):
        while True:
            self.getData()

    def setB(self, x):
        self.B = x
        self.cbB.append(x)

    def setA(self, x):
        self.A = x
        self.cbA.append(x)

    def setG(self, x):
        self.G = x
        self.cbG.append(x)

    def setP(self, x):
        self.P = x
        self.cbP.append(x)

    def setT(self, x):
        self.T = x
        self.cbT.append(x)
Example #4
0
# Fig. 19.12: fig19_12.py
# Show multiple threads modifying shared object.

from CircularBuffer import CircularBuffer
from ProduceInteger import ProduceInteger
from ConsumeInteger import ConsumeInteger

# initialize number and threads
buffer = CircularBuffer()
producer = ProduceInteger("Producer", buffer, 11, 20)
consumer = ConsumeInteger("Consumer", buffer, 10)

print "Starting threads...\n"

buffer.displayState()

# start threads
producer.start()
consumer.start()

# wait for threads to terminate
producer.join()
consumer.join()

print "\nAll threads have terminated."

##########################################################################
# (C) Copyright 2002 by Deitel & Associates, Inc. and Prentice Hall.     #
# All Rights Reserved.                                                   #
#                                                                        #
# DISCLAIMER: The authors and publisher of this book have used their     #