add custom paths to config.py
This commit is contained in:
@@ -15,3 +15,8 @@ NUM_ROWS = 2
|
|||||||
PG_UP = 17
|
PG_UP = 17
|
||||||
PG_DOWN = 22
|
PG_DOWN = 22
|
||||||
PG_OK = 27
|
PG_OK = 27
|
||||||
|
|
||||||
|
# rootfs config.
|
||||||
|
|
||||||
|
PYCNC_EXEC="/usr/local/bin/pycnc"
|
||||||
|
GCODE_REPO="/srv/ftp"
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ from src.menu import menu
|
|||||||
|
|
||||||
###################################################################
|
###################################################################
|
||||||
|
|
||||||
end_flag = False
|
|
||||||
GPIO.setwarnings(False)
|
GPIO.setwarnings(False)
|
||||||
lcd = CharLCD(pin_rs=LCD_RS,
|
lcd = CharLCD(pin_rs=LCD_RS,
|
||||||
pin_e=LCD_E,
|
pin_e=LCD_E,
|
||||||
@@ -45,7 +44,11 @@ tilde = (
|
|||||||
)
|
)
|
||||||
lcd.create_char(0, arrow)
|
lcd.create_char(0, arrow)
|
||||||
lcd.create_char(1, tilde)
|
lcd.create_char(1, tilde)
|
||||||
menu = menu(lcd, cols=NUM_COLS, rows=NUM_ROWS)
|
menu = menu(lcd,
|
||||||
|
cols=NUM_COLS,
|
||||||
|
rows=NUM_ROWS,
|
||||||
|
pycnc=PYCNC_EXEC,
|
||||||
|
gcode_path=GCODE_REPO)
|
||||||
|
|
||||||
def pg_up_cb(channel):
|
def pg_up_cb(channel):
|
||||||
''' page up button callback '''
|
''' page up button callback '''
|
||||||
|
|||||||
78
src/menu.py
78
src/menu.py
@@ -26,14 +26,16 @@ class menu:
|
|||||||
|
|
||||||
files_menu = ['..']
|
files_menu = ['..']
|
||||||
|
|
||||||
def __init__(self, lcd=None, cols=0, rows=0):
|
def __init__(self, lcd=None, cols=0, rows=0, pycnc="", gcode_path=""):
|
||||||
''' constructor '''
|
''' constructor '''
|
||||||
self.lcd = lcd
|
self.lcd = lcd
|
||||||
|
self.pycnc_path=pycnc
|
||||||
|
self.gcode_path=gcode_path
|
||||||
self.max_cols = cols
|
self.max_cols = cols
|
||||||
self.max_rows = rows
|
self.max_rows = rows
|
||||||
self.current_cursor = 0
|
self.current_cursor = 0
|
||||||
self.current_menu = self.main_menu
|
self.current_menu = self.main_menu
|
||||||
for dirs,r,files in os.walk("/srv/ftp"):
|
for dirs,r,files in os.walk(self.gcode_path):
|
||||||
for f in files:
|
for f in files:
|
||||||
if len(f) > 14:
|
if len(f) > 14:
|
||||||
f = f[:13]+'~'
|
f = f[:13]+'~'
|
||||||
@@ -59,7 +61,20 @@ class menu:
|
|||||||
self.lcd.clear()
|
self.lcd.clear()
|
||||||
self.lcd.home()
|
self.lcd.home()
|
||||||
self.lcd.write_string(" drawing ...")
|
self.lcd.write_string(" drawing ...")
|
||||||
os.system("sudo python /home/pi/PyCNC/pycnc " + os.path.join("/srv/ftp/", filename))
|
os.system(self.pycnc_path + os.path.join(self.gcode_path, filename))
|
||||||
|
self.lcd.clear()
|
||||||
|
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
||||||
|
self.lcd.write_string('\x00')
|
||||||
|
self.__refresh_menu()
|
||||||
|
|
||||||
|
def __pre_cmd(self):
|
||||||
|
''' pre command '''
|
||||||
|
self.lcd.clear()
|
||||||
|
self.lcd.home()
|
||||||
|
self.lcd.write_string(" waiting ...")
|
||||||
|
|
||||||
|
def __post_cmd(self):
|
||||||
|
''' post command '''
|
||||||
self.lcd.clear()
|
self.lcd.clear()
|
||||||
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
||||||
self.lcd.write_string('\x00')
|
self.lcd.write_string('\x00')
|
||||||
@@ -67,48 +82,31 @@ class menu:
|
|||||||
|
|
||||||
def __homing(self):
|
def __homing(self):
|
||||||
''' set homing command '''
|
''' set homing command '''
|
||||||
self.lcd.clear()
|
self.__pre_cmd()
|
||||||
self.lcd.home()
|
|
||||||
self.lcd.write_string(" waiting ...")
|
|
||||||
with open("/tmp/homing.gcode", 'w') as f:
|
with open("/tmp/homing.gcode", 'w') as f:
|
||||||
f.write("G28 (Homing)")
|
f.write("G28 (Homing)")
|
||||||
os.system("sudo python /home/pi/PyCNC/pycnc /tmp/homing.gcode")
|
os.system(self.pycnc_path + os.path.join("/tmp/homing.gcode"))
|
||||||
self.lcd.clear()
|
self.__post_cmd()
|
||||||
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
|
||||||
self.lcd.write_string('\x00')
|
|
||||||
self.__refresh_menu()
|
|
||||||
|
|
||||||
def __set_up_pen(self):
|
def __set_up_pen(self):
|
||||||
''' set up pen '''
|
''' set up pen '''
|
||||||
self.lcd.clear()
|
self.__pre_cmd()
|
||||||
self.lcd.home()
|
|
||||||
self.lcd.write_string(" waiting ...")
|
|
||||||
with open("/tmp/set_up_pen.gcode", 'w') as f:
|
with open("/tmp/set_up_pen.gcode", 'w') as f:
|
||||||
f.write("M300 S50 (UP Pen)")
|
f.write("M300 S50 (UP Pen)")
|
||||||
os.system("sudo python /home/pi/PyCNC/pycnc /tmp/set_up_pen.gcode")
|
os.system(self.pycnc_path + os.path.join("/tmp/set_up_pen.gcode"))
|
||||||
self.lcd.clear()
|
self.__post_cmd()
|
||||||
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
|
||||||
self.lcd.write_string('\x00')
|
|
||||||
self.__refresh_menu()
|
|
||||||
|
|
||||||
def __set_down_pen(self):
|
def __set_down_pen(self):
|
||||||
''' set down pen '''
|
''' set down pen '''
|
||||||
self.lcd.clear()
|
self.__pre_cmd()
|
||||||
self.lcd.home()
|
|
||||||
self.lcd.write_string(" waiting ...")
|
|
||||||
with open("/tmp/set_down_pen.gcode", 'w') as f:
|
with open("/tmp/set_down_pen.gcode", 'w') as f:
|
||||||
f.write("M300 S30 (DOWN Pen)")
|
f.write("M300 S30 (DOWN Pen)")
|
||||||
os.system("sudo python /home/pi/PyCNC/pycnc /tmp/set_down_pen.gcode")
|
os.system(self.pycnc_path + os.path.join("/tmp/set_down_pen.gcode"))
|
||||||
self.lcd.clear()
|
self.__post_cmd()
|
||||||
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
|
||||||
self.lcd.write_string('\x00')
|
|
||||||
self.__refresh_menu()
|
|
||||||
|
|
||||||
def __set_line_1cm(self, axis='X'):
|
def __set_line_1cm(self, axis='X'):
|
||||||
''' set a 1cm line in X or Y axis '''
|
''' set a 1cm line in X or Y axis '''
|
||||||
self.lcd.clear()
|
self.__pre_cmd()
|
||||||
self.lcd.home()
|
|
||||||
self.lcd.write_string(" waiting ...")
|
|
||||||
with open("/tmp/set_line.gcode", 'w') as f:
|
with open("/tmp/set_line.gcode", 'w') as f:
|
||||||
f.write("M300 S50 (UP Pen)\n")
|
f.write("M300 S50 (UP Pen)\n")
|
||||||
f.write("G28 (Homing)\n")
|
f.write("G28 (Homing)\n")
|
||||||
@@ -128,28 +126,20 @@ class menu:
|
|||||||
f.write("G1 X15 F1000.0\n")
|
f.write("G1 X15 F1000.0\n")
|
||||||
f.write("M300 S50 (UP Pen)\n")
|
f.write("M300 S50 (UP Pen)\n")
|
||||||
f.write("G28 (Homing)\n")
|
f.write("G28 (Homing)\n")
|
||||||
os.system("sudo python /home/pi/PyCNC/pycnc /tmp/set_line.gcode")
|
os.system(self.pycnc_path + os.path.join("/tmp/set_line.gcode"))
|
||||||
self.lcd.clear()
|
self.__post_cmd()
|
||||||
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
|
||||||
self.lcd.write_string('\x00')
|
|
||||||
self.__refresh_menu()
|
|
||||||
|
|
||||||
def __set_rect(self):
|
def __set_rect(self):
|
||||||
''' set a rectangle '''
|
''' set a rectangle '''
|
||||||
self.lcd.clear()
|
self.__pre_cmd()
|
||||||
self.lcd.home()
|
|
||||||
self.lcd.write_string(" waiting ...")
|
|
||||||
with open("/tmp/set_rect.gcode", 'w') as f:
|
with open("/tmp/set_rect.gcode", 'w') as f:
|
||||||
f.write("G28 (Homing)\n")
|
f.write("G28 (Homing)\n")
|
||||||
f.write("G1 X30 Y0 F2000.0\n")
|
f.write("G1 X30 Y0 F2000.0\n")
|
||||||
f.write("G1 X30 Y30 F2000.0\n")
|
f.write("G1 X30 Y30 F2000.0\n")
|
||||||
f.write("G1 X0 Y30 F2000.0\n")
|
f.write("G1 X0 Y30 F2000.0\n")
|
||||||
f.write("G1 X0 Y0 F2000.0\n")
|
f.write("G1 X0 Y0 F2000.0\n")
|
||||||
os.system("sudo python /home/pi/PyCNC/pycnc /tmp/set_rect.gcode")
|
os.system(self.pycnc_path + os.path.join("/tmp/set_rect.gcode"))
|
||||||
self.lcd.clear()
|
self.__post_cmd()
|
||||||
self.lcd.cursor_pos = (self.current_cursor % self.max_rows, 0)
|
|
||||||
self.lcd.write_string('\x00')
|
|
||||||
self.__refresh_menu()
|
|
||||||
|
|
||||||
def init_menu(self):
|
def init_menu(self):
|
||||||
''' display menu '''
|
''' display menu '''
|
||||||
@@ -184,7 +174,7 @@ class menu:
|
|||||||
elif self.current_menu[self.current_cursor].startswith('Files'):
|
elif self.current_menu[self.current_cursor].startswith('Files'):
|
||||||
self.current_menu = self.files_menu
|
self.current_menu = self.files_menu
|
||||||
self.files_menu = ['..']
|
self.files_menu = ['..']
|
||||||
for dirs,r,files in os.walk("/srv/ftp"):
|
for dirs,r,files in os.walk(self.gcode_path):
|
||||||
for f in files:
|
for f in files:
|
||||||
if len(f) > 14:
|
if len(f) > 14:
|
||||||
f = f[:13]+'~'
|
f = f[:13]+'~'
|
||||||
|
|||||||
Reference in New Issue
Block a user