Skip to content

Commit

Permalink
fix: cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
bartei81 committed Aug 10, 2024
1 parent a497896 commit 2097a72
Show file tree
Hide file tree
Showing 9 changed files with 109 additions and 23 deletions.
10 changes: 9 additions & 1 deletion rotary_controller_python/components/coordbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from kivy.factory import Factory
from kivy.lang import Builder
from kivy.logger import Logger
from kivy.properties import ObjectProperty
from kivy.properties import ObjectProperty, NumericProperty
from kivy.uix.boxlayout import BoxLayout

from rotary_controller_python.dispatchers.scale import ScaleDispatcher
Expand All @@ -17,9 +17,17 @@


class CoordBar(BoxLayout):
input_index: NumericProperty(0)
servo: ServoDispatcher = ObjectProperty(None)
scale: ScaleDispatcher = ObjectProperty(None)

def __init__(self, **kv):
super().__init__(**kv)
self.scale.bind(position=self.on_scale)

def update_position(self):
if not self.scale.spindleMode:
Factory.Keypad().show_with_callback(self.scale.set_current_position, self.scale.scaledPosition)

def on_scale(self, instance, value):
pass
2 changes: 1 addition & 1 deletion rotary_controller_python/components/forms/number_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ def validate(self, value):
log.error(e.__str__())

def on_value(self, instance, value):
self.validate(value)
self.validate(value)
8 changes: 2 additions & 6 deletions rotary_controller_python/components/home/home_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,16 @@
class HomePage(BoxLayout):
device = ObjectProperty()
bars_container = ObjectProperty()
servo = ObjectProperty()
scales: List[ScaleDispatcher] = ListProperty([])

def __init__(self, **kv):
self.app = App.get_running_app()
super().__init__(**kv)
self.bars_container.add_widget(StatusBar())
servo_bar = ServoBar(servo=self.servo)

coord_bars = []
for i in range(4):
bar = CoordBar(
servo=self.servo,
scale=self.scales[i],
)
bar = CoordBar(input_index=1)
coord_bars.append(bar)
self.bars_container.add_widget(bar)

Expand Down
11 changes: 6 additions & 5 deletions rotary_controller_python/components/home/home_toolbar.kv
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,14 @@
#: import ToolbarButton components.toolbars.toolbar_button
#: import SetupPopup components.setup.setup_popup
#: import ScenePopup components.plot.scene_popup
#: import JogPopup components.jog.jog_popup

<HomeToolbar>:
size_hint_x: None
size_hint_y: 1
width: 80
orientation: "vertical"

ToolbarButton:
# TOOL
text: "T{:d}".format(int(app.tool))
on_release: Factory.Keypad().show(app, 'tool')

ToolbarButton:
# IN/MM
text: app.formats.current_format
Expand All @@ -31,6 +27,11 @@
text: "\ue2ca"
on_release: Factory.ScenePopup().open()

ToolbarButton:
# TOOL
text: "JOG".format(int(app.tool))
on_release: Factory.JogPopup().open()

ToolbarButton:
font_name: "fonts/Font Awesome 6 Free-Solid-900.otf"
text: "\uf085"
Expand Down
Empty file.
50 changes: 50 additions & 0 deletions rotary_controller_python/components/jog/jog_popup.kv
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#: import SetupScreenManager components.setup.setup_screen_manager
#: import NumberItem components.forms.number_item

<JogPopup>:
title: "Jog Mode"
size_hint: 1, 1
auto_dismiss: False
# BoxLayout:
# orientation: "horizontal"
BoxLayout:
# size_hint_x: None
# width: 64
orientation: "vertical"
NumberItem:
name: "Desired Speed"
value: root.desired_speed
on_value: root.desired_speed = self.value
NumberItem:
name: "Current Position"
value: app.servo.scaledPosition
disabled: True
NumberItem:
name: "Current Speed"
value: app.servo.speed
disabled: True
# on_release: root.screen_manager.current = "scale_0"
NumberItem:
name: "Current Acceleration"
value: app.servo.acceleration
disabled: True
Widget:
size_hint_y: 1
BoxLayout:
size_hint_y: None
size_hint_x: 1
height: 64
orientation: "horizontal"
Button:
background_color: [0.2, 1, 0.2, 1]
text: "Start"
on_release: root.enable_jog = True
# on_release: root.screen_manager.current = "scale_1"
Button:
background_color: [1, 0.2, 0.2, 1]
text: "Stop"
on_release: root.enable_jog = False
# on_release: root.screen_manager.current = "scale_2"
Button:
text: "Exit"
on_release: root.dismiss()
40 changes: 40 additions & 0 deletions rotary_controller_python/components/jog/jog_popup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import os

from kivy.app import App
from kivy.lang import Builder
from kivy.logger import Logger
from kivy.properties import NumericProperty, BooleanProperty
from kivy.uix.popup import Popup


log = Logger.getChild(__name__)
kv_file = os.path.join(os.path.dirname(__file__), __file__.replace(".py", ".kv"))
if os.path.exists(kv_file):
log.info(f"Loading KV file: {kv_file}")
Builder.load_file(kv_file)


class JogPopup(Popup):
desired_speed = NumericProperty(0)
enable_jog = BooleanProperty(False)

def __init__(self, **kv):
self.app = App.get_running_app()
super().__init__(*kv)
self.app.bind(update_tick=self.update_tick)

def update_tick(self, *args, **kv):
if self.enable_jog:
self.app.servo.jogSpeed = self.desired_speed
self.app.servo.servoEnable = 2
else:
self.app.servo.jogSpeed = 0

def update_desired_speed(self, *args, **kv):
value = args[1]
self.desired_speed = value

def on_dismiss(self):
self.app.servo.jogSpeed = 0
self.app.servo.servoEnable = 0
log.info("Close jog page")
2 changes: 1 addition & 1 deletion rotary_controller_python/components/servobar.kv
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
ProgressBar:
size_hint_y: 0.20
max: int(root.servo.maxSpeed)
value: int(root.servo.speed)
value: int(abs(root.servo.speed))

BoxLayout:
orientation: "vertical"
Expand Down
9 changes: 0 additions & 9 deletions rotary_controller_python/utils/devices.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,6 @@
SCALES_COUNT = 4


# class Index(BaseDevice):
# definition = """
# typedef struct {
# int32_t divisions;
# int32_t index;
# } index_t;
# """


class Servo(BaseDevice):
definition = """
typedef struct {
Expand Down

0 comments on commit 2097a72

Please sign in to comment.