summaryrefslogtreecommitdiffstats
path: root/Widgets/SteeringCtrlPage.py
diff options
context:
space:
mode:
Diffstat (limited to 'Widgets/SteeringCtrlPage.py')
-rw-r--r--Widgets/SteeringCtrlPage.py206
1 files changed, 97 insertions, 109 deletions
diff --git a/Widgets/SteeringCtrlPage.py b/Widgets/SteeringCtrlPage.py
index 61271c2..696c6c9 100644
--- a/Widgets/SteeringCtrlPage.py
+++ b/Widgets/SteeringCtrlPage.py
@@ -28,7 +28,9 @@ current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.dirname(current_dir))
-import extras.Kuksa_Instance as kuksa_instance
+from extras.FeedKuksa import FeedKuksa
+import extras.FeedCAN as feed_can
+from . import settings
Form, Base = uic.loadUiType(os.path.join(current_dir, "../ui/SteeringControls.ui"))
@@ -36,31 +38,62 @@ Form, Base = uic.loadUiType(os.path.join(current_dir, "../ui/SteeringControls.ui
class Steering_Paths():
def __init__(self):
- self.VolumeUp = "Vehicle.Cabin.SteeringWheel.Switches.VolumeUp"
- self.VolumeDown = "Vehicle.Cabin.SteeringWheel.Switches.VolumeDown"
- self.VolumeMute = "Vehicle.Cabin.SteeringWheel.Switches.VolumeMute"
-
- self.Mode = "Vehicle.Cabin.SteeringWheel.Switches.Mode"
-
- self.NextTrack = "Vehicle.Cabin.SteeringWheel.Switches.Next"
- self.PreviousTrack = "Vehicle.Cabin.SteeringWheel.Switches.Previous"
-
- self.Info = "Vehicle.Cabin.SteeringWheel.Switches.Info"
-
- self.PhoneCall = "Vehicle.Cabin.SteeringWheel.Switches.PhoneCall"
- self.PhoneHangup = "Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup"
- self.Voice = "Vehicle.Cabin.SteeringWheel.Switches.Voice"
- self.LaneDeparture = "Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning"
-
- self.Horn = "Vehicle.Cabin.SteeringWheel.Switches.Horn"
-
- self.CruiseEnable = "Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable"
- self.CruseSet = "Vehicle.Cabin.SteeringWheel.Switches.CruiseSet"
- self.CruiseResume = "Vehicle.Cabin.SteeringWheel.Switches.CruiseResume"
- self.CruiseCancel = "Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel"
-
- self.CruiseLimit = "Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit"
- self.CruiseDistance = "Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance"
+ self.switches = {
+ "VolumeUp": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.VolumeUp",
+ "CAN": "021#FFFFFFFF40000000"},
+ "VolumeDown": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.VolumeDown",
+ "CAN": "021#FFFFFFFF10000000"},
+ "VolumeMute": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.VolumeMute",
+ "CAN": "021#FFFFFFFF01000000"},
+ "Mode": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.Mode",
+ "CAN": "021#FFFFFFFF20000000"},
+ "NextTrack": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.Next",
+ "CAN": "021#FFFFFFFF08000000"},
+ "PreviousTrack": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.Previous",
+ "CAN": "021#FFFFFFFF80000000"},
+ "Info": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.Info",
+ "CAN": "021#FFFFFFFF02000000"},
+ "PhoneCall": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.PhoneCall",
+ "CAN": "021#FFFFFFFF00010000"},
+ "PhoneHangup": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup",
+ "CAN": "021#FFFFFFFF00020000"},
+ "Voice": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.Voice",
+ "CAN": "021#FFFFFFFF00040000"},
+ "LaneDeparture": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning",
+ "CAN": "021#FFFFFFFF00000001"},
+ "Horn": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.Horn",
+ "CAN": "021#FFFFFFFF00000080"},
+ "CruiseEnable": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable",
+ "CAN": "021#FFFFFFFF00008000"},
+ "CruiseSet": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.CruiseSet",
+ "CAN": "021#FFFFFFFF00001000"},
+ "CruiseResume": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.CruiseResume",
+ "CAN": "021#FFFFFFFF00004000"},
+ "CruiseCancel": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel",
+ "CAN": "021#FFFFFFFF00000800"},
+ "CruiseLimit": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit",
+ "CAN": "021#FFFFFFFF00000200"},
+ "CruiseDistance": {
+ "Kuksa": "Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance",
+ "CAN": "021#FFFFFFFF00000100"}
+ }
class SteeringCtrlWidget(Base, Form):
def __init__(self, parent=None):
@@ -69,94 +102,49 @@ class SteeringCtrlWidget(Base, Form):
self.Steering = Steering_Paths()
self.feed_kuksa = FeedKuksa()
+ self.settings = settings
+
self.add_buttons()
def add_buttons(self):
# Define button groups and actions
- LeftControlsBtns = [self.VolUpBtn,
- self.VolDownBtn,
- self.ModeBtn,
- self.VolMuteBtn,
- self.NextTrackBtn,
- self.PrevTrackBtn,
- self.InfoBtn]
-
-
- PhoneBtns = [self.PhoneCallBtn, self.PhoneHangupBtn]
- ExtraContolsBtns = [self.VoiceBtn, self.LaneDepartureBtn]
-
- RightControlsBtns = [self.CruiseEnableBtn,
- self.CruiseSetBtn,
- self.CruiseResumeBtn,
- self.CruiseCancelBtn,
- self.CruiseLimitBtn,
- self.CruiseDistanceBtn]
-
- self.LeftControlsBtnsGroup = QButtonGroup()
- self.PhoneBtnsGroup = QButtonGroup()
- self.ExtraContolsBtnsGroup = QButtonGroup()
- self.RiqhtControlsBtnsGroup = QButtonGroup()
-
- for btn in LeftControlsBtns:
- self.LeftControlsBtnsGroup.addButton(btn)
-
- for btn in PhoneBtns:
- self.PhoneBtnsGroup.addButton(btn)
-
-
- for btn in RightControlsBtns:
- self.RiqhtControlsBtnsGroup.addButton(btn)
-
- self.LeftControlsBtnsGroup.buttonClicked.connect(self.left_controls_clicked)
- self.RiqhtControlsBtnsGroup.buttonClicked.connect(self.right_controls_clicked)
-
- self.HornBtn.clicked.connect(self.horn_clicked)
-
- def left_controls_clicked(self):
- print("Left controls clicked")
-
- def right_controls_clicked(self):
- print("Right controls clicked")
-
- def horn_clicked(self):
- print("Horn clicked")
-
-class FeedKuksa(QThread):
- def __init__(self, parent=None):
- QThread.__init__(self,parent)
- self.stop_flag = False
- self.set_instance()
-
- def run(self):
- print("Starting thread")
- self.set_instance()
- while not self.stop_flag:
- self.send_values()
-
- def stop(self):
- self.stop_flag = True
- print("Stopping thread")
-
- def set_instance(self):
- self.kuksa = kuksa_instance.KuksaClientSingleton.get_instance()
- self.client = self.kuksa.get_client()
-
- def send_values(self, Path=None, Value=None, Attribute=None):
- if self.client is not None:
- if self.client.checkConnection() is True:
-
- if Attribute is not None:
- self.client.setValue(Path, Value, Attribute)
- else:
- self.client.setValue(Path, Value)
- else:
- print("Could not connect to Kuksa")
- self.set_instance()
- else:
- print("Kuksa client is None, try reconnecting")
- time.sleep(2)
- self.set_instance()
+ ControlsBtns = [self.VolumeUp,
+ self.VolumeDown,
+ self.Mode,
+ self.VolumeMute,
+ self.NextTrack,
+ self.PreviousTrack,
+ self.Info,
+ self.PhoneCall,
+ self.PhoneHangup,
+ self.Voice,
+ self.LaneDeparture,
+ self.CruiseEnable,
+ self.CruiseSet,
+ self.CruiseResume,
+ self.CruiseCancel,
+ self.CruiseLimit,
+ self.CruiseDistance]
+
+ self.ControlsBtnsGroup = QButtonGroup()
+
+ for btn in ControlsBtns:
+ self.ControlsBtnsGroup.addButton(btn)
+
+ self.ControlsBtnsGroup.buttonClicked.connect(self.controls_clicked)
+
+ def controls_clicked(self, button):
+ button_clicked = button.objectName()
+ signal_type = settings.Steering_Signal_Type
+ if signal_type == "Kuksa":
+ self.feed_kuksa.send_values(self.Steering.switches[button_clicked]["Kuksa"], 1)
+ self.feed_kuksa.send_values(self.Steering.switches[button_clicked]["Kuksa"], 0)
+ elif signal_type == "CAN":
+ feed_can.send_can_signal(self.Steering.switches[button_clicked]["CAN"])
+ # Making sure button state goes back to off
+ feed_can.send_can_signal("021#FFFFFFFF00000000")
+ print(button_clicked + " button clicked")
if __name__ == '__main__':
import sys