Changeset - 6b61f8a36144
[Not reviewed]
default
0 2 0
Ethan Zonca (ethanzonca) - 9 years ago 2017-01-29 16:52:55
e@ethanzonca.com
Take can interface as argument
2 files changed with 22 insertions and 9 deletions:
0 comments (0 inline, 0 general)
hydrobot.py
Show inline comments
 
modified file chmod 100644 => 100755
 
#!/usr/bin/env python
 

	
 
import sys
 
import os
 
import time
 
import _thread
 
import ast
 
@@ -36,6 +39,8 @@ formatter = logging.Formatter('%(asctime
 
fh.setFormatter(formatter)
 
logger.addHandler(fh)
 

	
 

	
 

	
 
logger.info("Starting HydroBot!")
 
    
 
class MySeriesHelper(SeriesHelper):
 
@@ -95,12 +100,16 @@ class Database:
 

	
 
class CanBus:
 
    
 
    def __init__(self, database):
 
        
 
    def __init__(self, database, interface):
 
         
 
        # Bring up CAN interface (maybe do this in a systemd service file)
 
        # Passing random arguments to sudo is super dangerous
 
        os.system("sudo ip link set " + interface + " up type can bitrate 500000")
 

	
 
        self.database = database
 
        self.dev = socketcan.SocketCanDev("can0")
 
        self.dev = socketcan.SocketCanDev(interface)
 
        self.queue = queue.CanQueue(self.dev)
 
        
 

	
 
        parser = jsondb.JsonDbParser()
 
        self.msgdb = parser.parse('hydrobot_can.json')
 
        
 
@@ -263,11 +272,15 @@ def func():
 
    print(1)
 
    
 

	
 
def main():
 
    
 
def main(argv):
 

	
 
    if len(argv) < 1:
 
        print("Error: please specify a can interface")
 
        return 1
 

	
 
    database = Database()
 
    
 
    canbus = CanBus(database)
 
    canbus = CanBus(database, argv[0])
 
    canbus.start()
 
    
 
    scheduler = Scheduler(canbus)
 
@@ -283,4 +296,4 @@ def close_program(signum, frame):
 
signal.signal(signal.SIGINT, close_program)
 

	
 
if __name__ == "__main__":
 
    sys.exit(main())
 
    sys.exit(main(sys.argv[1:]))
hydrobot@.service
Show inline comments
 
@@ -5,7 +5,7 @@ BindsTo=sys-subsystem-net-devices-%i.dev
 
After=sys-subsystem-net-devices-%i.device
 

	
 
[Service]
 
ExecStart=/usr/bin/python hydrobot.py
 
ExecStart=/opt/hydrobot-software/hydrobot.py %i
 
WorkingDirectory=/opt/hydrobot-software
 

	
 
User=hydrobot
0 comments (0 inline, 0 general)