adding files

This commit is contained in:
2026-03-21 23:48:08 +01:00
parent eba2b73dec
commit 18f86cfd1e
105 changed files with 13770 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
#!/usr/bin/python3
import getopt
import hal
import sys
import comms
import time
class HalAdapter:
def __init__(self, name):
self.hal = hal.component(name) # instanciate the HAL-component
self.hal.newpin("ref-temp", hal.HAL_U32, hal.HAL_IN)
self.hal.newpin("enable", hal.HAL_BIT, hal.HAL_IN)
self.hal.newpin("curr-temp", hal.HAL_U32, hal.HAL_OUT)
self.hal.newpin("ref-temp-out", hal.HAL_U32, hal.HAL_OUT)
self.hal.ready()
def setReady(self):
self.hal.ready()
def readHAL_refTemp(self):
"""read values from LinuxCNC HAL"""
return self.hal['ref-temp']
def readHAL_enable(self):
"""read values from LinuxCNC HAL"""
return self.hal['enable']
def writeHAL_currTemp(self, val):
""" write internal wrapper pin values to LinuxCNC HAL """
self.hal['curr-temp'] = val
def writeHAL_refTemp(self, val):
""" write internal wrapper pin values to LinuxCNC HAL """
self.hal['ref-temp-out'] = val
class TempControllerFacade:
def __init__(self, port):
self.tempController = comms.instrument(port, self.msgHandler) #serial adaptor
self.currTemp = 100
self.refTemp = 100
self.enable = False
def __repr__(self):
return 'curr temp: ' + str(self.currTemp) + ', ref temp: ' + str(self.refTemp) + ' , enabled; ' + str(self.enable) + '\n'
def msgHandler(self, m):
if (m.name == 'mv'):
self.currTemp = int(m.data)
def setEnable(self, en):
self.enable = en
print('extruder temp controller enable: ' + str(self.enable))
if en == True:
self.tempController.writeMessage(comms.Message('en' , '1'))
else:
self.tempController.writeMessage(comms.Message('en' , '0'))
def setRefTemp(self, refT):
if self.enable == True:
if self.refTemp != refT:
self.tempController.writeMessage(comms.Message('sp' , str(refT)))
self.refTemp = refT
def main():
name = 'my-extruder'
port = '/dev/ttyUSB0' # default serial port to use
try:
opts, args = getopt.getopt(sys.argv[1:], "hp:c:", ["port="])
except getopt.GetoptError as err:
# print help information and exit:
print(err) # will print something like "option -a not recognized"
sys.exit(2)
for o, a in opts:
if o == "-h":
sys.exit()
if o == "-c":
name = a
elif o in ("-p", "--port"):
port = a
else:
print(o)
assert False, "unhandled option"
h = HalAdapter(name)
tc = TempControllerFacade(port)
#tc.setEnable(True)
print(tc)
try:
while 1:
tc.tempController.readMessages()
if h.readHAL_enable() == 1:
if tc.enable == False:
tc.setEnable(True)
else:
if tc.enable == True:
tc.setEnable(False)
if tc.enable == True:
refTemp = h.readHAL_refTemp()
tc.setRefTemp(refTemp)
h.writeHAL_currTemp(tc.currTemp)
h.writeHAL_refTemp(tc.refTemp)
#
time.sleep(1)
except KeyboardInterrupt:
raise SystemExit
if __name__ == '__main__':
main()