Fix steering/throttle controls
This commit is contained in:
		@@ -51,6 +51,7 @@ func main() {
 | 
			
		||||
	gtw := gateway.New(address)
 | 
			
		||||
	defer gtw.Stop()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	msgPub := events.NewMsgPublisher(
 | 
			
		||||
		gtw,
 | 
			
		||||
		events.NewMqttPublisher(client),
 | 
			
		||||
@@ -63,42 +64,42 @@ func main() {
 | 
			
		||||
 | 
			
		||||
	cli.HandleExit(gtw)
 | 
			
		||||
 | 
			
		||||
	err = gtw.Start()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatalf("unable to start service: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	if topicCtrlSteering != "" {
 | 
			
		||||
		log.Infof("configure mqtt route on steering command")
 | 
			
		||||
		client.AddRoute(topicCtrlSteering, func(client mqtt.Client, message mqtt.Message) {
 | 
			
		||||
		client.Subscribe(topicCtrlSteering, byte(mqttQos), func(client mqtt.Client, message mqtt.Message) {
 | 
			
		||||
			onSteeringCommand(gtw, message)
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
	if topicCtrlThrottle != "" {
 | 
			
		||||
		log.Infof("configure mqtt route on throttle command")
 | 
			
		||||
		client.AddRoute(topicCtrlThrottle, func(client mqtt.Client, message mqtt.Message) {
 | 
			
		||||
		client.Subscribe(topicCtrlThrottle, byte(mqttQos), func(client mqtt.Client, message mqtt.Message) {
 | 
			
		||||
			onThrottleCommand(gtw, message)
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = gtw.Start()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatalf("unable to start service: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func onSteeringCommand(c *gateway.Gateway, message mqtt.Message) {
 | 
			
		||||
	var steeringMsg *events2.SteeringMessage
 | 
			
		||||
	err := proto.Unmarshal(message.Payload(), steeringMsg)
 | 
			
		||||
	var steeringMsg events2.SteeringMessage
 | 
			
		||||
	err := proto.Unmarshal(message.Payload(), &steeringMsg)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Errorf("unable to unmarshal steering msg: %v", err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	c.WriteSteering(steeringMsg)
 | 
			
		||||
	c.WriteSteering(&steeringMsg)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func onThrottleCommand(c *gateway.Gateway, message mqtt.Message) {
 | 
			
		||||
	var throttleMsg *events2.ThrottleMessage
 | 
			
		||||
	err := proto.Unmarshal(message.Payload(), throttleMsg)
 | 
			
		||||
	var throttleMsg events2.ThrottleMessage
 | 
			
		||||
	err := proto.Unmarshal(message.Payload(), &throttleMsg)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Errorf("unable to unmarshal throttle msg: %v", err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	c.WriteThrottle(throttleMsg)
 | 
			
		||||
	c.WriteThrottle(&throttleMsg)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user