add descriptions

This commit is contained in:
Cole Deck 2024-05-08 15:18:09 -05:00
parent dc4cf5c222
commit faf33aede7
3 changed files with 64 additions and 14 deletions

View File

@ -3,7 +3,7 @@ core:
serverip: 172.26.178.114 serverip: 172.26.178.114
clientip: 172.26.176.1 clientip: 172.26.176.1
server: Hyper-Vd server: Hyper-Vd
loopspeed: 40 # fps loopspeed: 100 # fps
arm: arm:
ip: 192.168.1.145 ip: 192.168.1.145
@ -29,7 +29,7 @@ cameras:
port: 32200 port: 32200
led: led:
fps: 90 fps: 100
timeout: 1 timeout: 1
controllers: controllers:
- universe: 1 - universe: 1

View File

@ -310,6 +310,18 @@ class LEDSystem():
self.mode = stmode self.mode = stmode
return self return self
def setrange(self, start, end, r,g,b):
val = (r,g,b)
for x in range(start,end):
self.data[x] = val
def setallrings(self, r,g,b, exclude):
startidx1 = self.rings[0][2]
endidx2 = self.rings[-1][3]
endidx1 = self.rings[exclude][2]
startidx2 = self.rings[exclude][3]+1
self.setrange(startidx, endidx, r,g,b)
def setring(self, r,g,b,idx): def setring(self, r,g,b,idx):
ring = self.rings[idx] ring = self.rings[idx]
@ -319,7 +331,7 @@ class LEDSystem():
#senduniverse(data, ring[2]) #senduniverse(data, ring[2])
return self return self
def runmodes(self, ring = -1, speed = 1): def runmodes(self, ring = -1, arm_position = None):
#fprint("Mode: " + str(self.mode)) #fprint("Mode: " + str(self.mode))
if self.mode == "Startup": if self.mode == "Startup":
# loading animation. cable check # loading animation. cable check
@ -387,6 +399,28 @@ class LEDSystem():
else: else:
self.setring(0,50,100,ring) self.setring(0,50,100,ring)
self.setmode("idle") self.setmode("idle")
elif self.mode == "Moving":
if self.firstrun:
self.firstrun = False
posxy = arm_position[0:1]
posxy[0] = int(posxy[0] * 1000)
posxy[0] = int(posxy[1] * 1000)
radius = int(arm_position[2] * 1000)
base = (0,50,100)
target = (100,100,100)
deltar = target[0] - base[0]
deltag = target[0] - base[0]
#deltab = target[0] - base[0]
# reset!
self.setallringsexcept(0,50,100, ring)
# fade outwards
for idx,led in enumerate(self.leds):
dist = int(math.srqt(math.pow(int(posxy[0] - led[0]), 2) + math.pow(int(posxy[1] - led[1]), 2)))
if dist < radius:
ratio = dist/radius
self.data[idx] = (int(base[0] + ratio * deltar), int(base[1] + ratio * deltag), 100) #base[2] + ratio * deltab)
elif self.mode == "idle": elif self.mode == "idle":
time.sleep(0) time.sleep(0)
@ -524,6 +558,9 @@ class LEDSystem():
self.data[num] = (int(r), int(g), int(b)) self.data[num] = (int(r), int(g), int(b))
return self return self
def setpixelfast3(self, rgb, num):
self.data[num] = rgb
def close(self): def close(self):
time.sleep(0.5) time.sleep(0.5)
self.sender.stop() self.sender.stop()
@ -574,7 +611,7 @@ class LEDSystem():
time.sleep(0.00001) time.sleep(0.00001)
return self return self
def mainloop(self, stmode, ring = -1, fps = 100, preview = False): def mainloop(self, stmode, ring = -1, fps = 100, preview = False, arm_position = None):
while uptime() - self.start < 1/fps: while uptime() - self.start < 1/fps:
time.sleep(0.00001) time.sleep(0.00001)
#fprint("Running LED loop with ring " + str(ring) + " and set mode " + str(stmode)) #fprint("Running LED loop with ring " + str(ring) + " and set mode " + str(stmode))
@ -584,7 +621,7 @@ class LEDSystem():
self.setmode(stmode) self.setmode(stmode)
#if self. #if self.
self.runmodes(ring) self.runmodes(ring, arm_position)
if preview: if preview:
self.drawdata() self.drawdata()
return self return self

31
run.py
View File

@ -69,6 +69,7 @@ sensors = [0,0,0,0]
websocket_process = None websocket_process = None
arm_updates = Queue() arm_updates = Queue()
animation_wait = False animation_wait = False
arm_position = (0,0,0,0,0,0)
def arm_start_callback(res): def arm_start_callback(res):
fprint("Arm action complete.") fprint("Arm action complete.")
@ -165,10 +166,15 @@ def check_server():
for idx in range(len(cable_list)): for idx in range(len(cable_list)):
if cable_list[idx] is not False: if cable_list[idx] is not False:
cabledata = jbs.get_position(str(idx)) cabledata = jbs.get_position(str(idx))
fs = cabledata["fullspecs"]
tmp1 = {"part_number": cable_list[idx], "position": idx, "name": cable_list[idx], "brand": cabledata["brand"] }
if "image" in cabledata: if "image" in cabledata:
tmp1 = {"part_number": cable_list[idx], "position": idx, "name": cable_list[idx], "brand": cabledata["brand"], "image": cabledata["image"], "description": "Blah", "short_description": "Bla"} tmp1["image"] = cabledata["image"]
else: if "Product Overview" in fs and "Product Category" in fs["Product Overview"]:
tmp1 = {"part_number": cable_list[idx], "position": idx, "name": cable_list[idx], "brand": cabledata["brand"], "description": "Blah", "short_description": "Bla"} tmp1["short_description"] = fs["Product Overview"]["Product Category"]
if "Product Overview" in fs and "Suitable Applications" in fs["Product Overview"]:
tmp1["description"] = fs["Product Overview"]["Suitable Applications"]
tmp.append(tmp1) tmp.append(tmp1)
out = {"map": tmp} out = {"map": tmp}
fprint(out) fprint(out)
@ -262,7 +268,7 @@ def check_server():
sleep(0.001) # Sleep to prevent tight loop #sleep(0.001) # Sleep to prevent tight loop
@ -448,6 +454,7 @@ def mainloop_server(pool):
global oldmode global oldmode
global arm_updates global arm_updates
global animation_wait global animation_wait
global arm_position
if mode != oldmode: if mode != oldmode:
print(" ***** Running mode:", mode, "***** ") print(" ***** Running mode:", mode, "***** ")
@ -464,12 +471,18 @@ def mainloop_server(pool):
arm_updates.get() arm_updates.get()
ledsys.mainloop(None, ring_animation) ledsys.mainloop(None, ring_animation)
elif ring_animation is not None and real: elif ring_animation is not None and real:
if animation_wait: if animation_wait and not arm_updates.empty():
if not arm_updates.empty(): animation_wait = False
animation_wait = False val = None
val = arm_updates.get() while not arm_updates.empty():
tmp = arm_updates.get()
if type(tmp) != tuple:
val = tmp
else:
arm_position = tmp
if val is not None:
ledsys.mainloop(led_set_mode, ring_animation) ledsys.mainloop(led_set_mode, ring_animation)
led_set_mode = None led_set_mode = None
else: else:
pass pass
#fprint("Not triggering LED loop: no ring animation") #fprint("Not triggering LED loop: no ring animation")