traffic

index
/media/pi/PI4_TT/TT3/traffic.py

This module provides:
A socket server for the WiFi connection to the Laptop running
JMRI DCC++ software
A serial link to the Arduino running the DCC++ Base Station
and blinks the 4 LEDs representing traffic to and from each.
By default the serial link is
EIGHTBITS = 8, PARITY_NONE = N, STOPBITS_ONE = 1

 
Modules

      

 

serial

socket

sys

threading

 
Classes

      

 

  • Monitor
  • Traffic

 
class Monitor

   

This class is used to blink each of the 4 traffic monitoring
LEDs in relationship to the traffic Out from the laptop (Orange)
and Back to the laptop (Blue).
Output to the Base Station (Orange) and Back from the
Base Station (Blue).
 
Should be called only be Traffic
 

 

Methods defined here:

  • __init__(self)
  • Set up the  IOPi HAT+ pins for traffic monitoring LEDs
    IOPi HAT Bus 2 using pins 9 - 12
  • blink_it(self, LED, num)
  • Common routine to blink a LED
    number of blinks = 1 + num // DIV (initager divide)
    Arg:
    LED - a variable equal to the output pin on bus2
    num - number of bytes in the message i.e. len(message)
  • from_BS(self, num)
  • Creates a thread to
    Blink the BLUE LED for traffic from the Base Station
    Arg: length of message received from the Base Station
  • from_LT(self, num)
  • Creates a thread to
    Blink the ORANGE LED for traffic from the Laptop
    Arg: length of the message received i.e. len(message)
  • to_BS(self, num)
  • Creates a thread to
    Blink the ORANGE LED for traffic to the Base Station
    Arg: length of message sent to the Base Station
  • to_LT(self, num)
  • Creates a thread to
    Blink the BLUE LED for traffic to the Laptop
    Arg: length of message sent to the laptop

Data and other attributes defined here:

  • DIV = 30

 
class Traffic

   

This class handles all TrainThing communication wirelessly
to/from the Laptop and wired to/from the Arduino.
read_LT() returns commands from the Laptop NOT intended
for the Arduino Base Station.
Calls to write_LT() are used to return status from the Raspberry Pi
to the Laptop.
 

 

Methods defined here:

  • __init__(self)
  • Defines and starts the WiFi socket to the Laptop
    and establishes a connection.
     
    Defines a serial link through a USB port to the Arduino Base Station.
  • read_BS(self)
  • Reads a string from the Arduino
    and passes it to write_LT()
  • read_LT(self)
  • Reads a string from the laptop ending with ">"
    If the command is intended for the Arduino
    it is passed directly to write_BS() and a "" is returned
    If the command is intended for the Raspberry Pi only
    it is returned
    If the command is intended for both passed to write_BS()
    and returned.
  • stop_servers(self)
  • write_BS(self, message)
  • Writes to the Arduino the string passed
    as a parameter from read_LT()
    then calls read_BS() and waits for a reply.
    Arg: string to be sent
  • write_LT(self, message)
  • Writes to the Laptop the string passed as a parameter.
    Arg: string to be sent

Data and other attributes defined here:

  • BAUDRATE = 115200
  • DEVICE_NAME = '/dev/ttyACM0'
  • FORMAT = 'utf-8'
  • PORT = 2560
  • SERVER_IP = '192.168.1.128'
  • clientsocket = None
  • ser = None

 
Functions

      

 

  • sleep(...)
  • sleep(seconds)
     
    Delay execution for a given number of seconds.  The argument may be
    a floating point number for subsecond precision.

 
Data

      

 

VERBOSE = False