diff options
Diffstat (limited to 'Widgets/SteeringCtrlPage.py')
-rw-r--r-- | Widgets/SteeringCtrlPage.py | 206 |
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 |