rewrite module
* use protobuf message * use directly paho api to publish message
This commit is contained in:
		
							
								
								
									
										37
									
								
								vendor/github.com/cyrilix/robocar-base/mode/mode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								vendor/github.com/cyrilix/robocar-base/mode/mode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,37 +0,0 @@ | ||||
| package mode | ||||
|  | ||||
| import ( | ||||
| 	"log" | ||||
| ) | ||||
|  | ||||
| type DriveMode int | ||||
|  | ||||
| const ( | ||||
| 	DriveModeInvalid = -1 | ||||
| 	DriveModeUser    = iota | ||||
| 	DriveModePilot | ||||
| ) | ||||
|  | ||||
| func ToString(mode DriveMode) string { | ||||
| 	switch mode { | ||||
| 	case DriveModeUser: | ||||
| 		return "user" | ||||
| 	case DriveModePilot: | ||||
| 		return "pilot" | ||||
| 	default: | ||||
| 		return "" | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func ParseString(val string) DriveMode { | ||||
| 	switch val { | ||||
| 	case "user": | ||||
| 		return DriveModeUser | ||||
| 	case "pilot": | ||||
| 		return DriveModePilot | ||||
| 	default: | ||||
| 		log.Printf("invalid DriveMode: %v", val) | ||||
| 		return DriveModeInvalid | ||||
|  | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										151
									
								
								vendor/github.com/cyrilix/robocar-base/mqttdevice/mqttdevice.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										151
									
								
								vendor/github.com/cyrilix/robocar-base/mqttdevice/mqttdevice.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,151 +0,0 @@ | ||||
| package mqttdevice | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"github.com/cyrilix/robocar-base/mode" | ||||
| 	MQTT "github.com/eclipse/paho.mqtt.golang" | ||||
| 	"io" | ||||
| 	"log" | ||||
| 	"strconv" | ||||
| ) | ||||
|  | ||||
| type Publisher interface { | ||||
| 	Publish(topic string, payload MqttValue) | ||||
| } | ||||
|  | ||||
| type Subscriber interface { | ||||
| 	Subscribe(topic string, mh MQTT.MessageHandler) | ||||
| } | ||||
|  | ||||
| type MQTTPubSub interface { | ||||
| 	Publisher | ||||
| 	Subscriber | ||||
| 	io.Closer | ||||
| } | ||||
|  | ||||
| type pahoMqttPubSub struct { | ||||
| 	Uri      string | ||||
| 	Username string | ||||
| 	Password string | ||||
| 	ClientId string | ||||
| 	Qos      int | ||||
| 	Retain   bool | ||||
| 	client   MQTT.Client | ||||
| } | ||||
|  | ||||
| func NewPahoMqttPubSub(uri string, username string, password string, clientId string, qos int, retain bool) MQTTPubSub { | ||||
| 	p := pahoMqttPubSub{Uri: uri, Username: username, Password: password, ClientId: clientId, Qos: qos, Retain: retain} | ||||
| 	p.Connect() | ||||
| 	return &p | ||||
| } | ||||
|  | ||||
| // Publish message to broker | ||||
| func (p *pahoMqttPubSub) Publish(topic string, payload MqttValue) { | ||||
| 	tokenResp := p.client.Publish(topic, byte(p.Qos), p.Retain, string(payload)) | ||||
| 	if tokenResp.Error() != nil { | ||||
| 		log.Fatalf("%+v\n", tokenResp.Error()) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Register func to execute on message | ||||
| func (p *pahoMqttPubSub) Subscribe(topic string, callback MQTT.MessageHandler) { | ||||
| 	tokenResp := p.client.Subscribe(topic, byte(p.Qos), callback) | ||||
| 	if tokenResp.Error() != nil { | ||||
| 		log.Fatalf("%+v\n", tokenResp.Error()) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Close connection to broker | ||||
| func (p *pahoMqttPubSub) Close() error { | ||||
| 	p.client.Disconnect(500) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (p *pahoMqttPubSub) Connect() { | ||||
| 	if p.client != nil && p.client.IsConnected() { | ||||
| 		return | ||||
| 	} | ||||
| 	//create a ClientOptions struct setting the broker address, clientid, turn | ||||
| 	//off trace output and set the default message handler | ||||
| 	opts := MQTT.NewClientOptions().AddBroker(p.Uri) | ||||
| 	opts.SetUsername(p.Username) | ||||
| 	opts.SetPassword(p.Password) | ||||
| 	opts.SetClientID(p.ClientId) | ||||
| 	opts.SetAutoReconnect(true) | ||||
| 	opts.SetDefaultPublishHandler( | ||||
| 		//define a function for the default message handler | ||||
| 		func(client MQTT.Client, msg MQTT.Message) { | ||||
| 			fmt.Printf("TOPIC: %s\n", msg.Topic()) | ||||
| 			fmt.Printf("MSG: %s\n", msg.Payload()) | ||||
| 		}) | ||||
|  | ||||
| 	//create and start a client using the above ClientOptions | ||||
| 	p.client = MQTT.NewClient(opts) | ||||
| 	if token := p.client.Connect(); token.Wait() && token.Error() != nil { | ||||
| 		panic(token.Error()) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| type MqttValue []byte | ||||
|  | ||||
| func NewMqttValue(v interface{}) MqttValue { | ||||
| 	switch val := v.(type) { | ||||
| 	case string: | ||||
| 		return MqttValue(val) | ||||
| 	case float32, float64: | ||||
| 		return MqttValue(fmt.Sprintf("%0.2f", val)) | ||||
| 	case int, int8, int16, int32, int64: | ||||
| 		return MqttValue(fmt.Sprintf("%d", val)) | ||||
| 	case bool: | ||||
| 		if val { | ||||
| 			return []byte("ON") | ||||
| 		} else { | ||||
| 			return []byte("OFF") | ||||
| 		} | ||||
| 	case []byte: | ||||
| 		return val | ||||
| 	case MqttValue: | ||||
| 		return val | ||||
| 	default: | ||||
| 		log.Printf("invalid mqtt value: %v", val) | ||||
| 		return nil | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (m *MqttValue) IntValue() (int, error) { | ||||
| 	return strconv.Atoi(string(*m)) | ||||
| } | ||||
|  | ||||
| func (m *MqttValue) Float32Value() (float32, error) { | ||||
| 	val := string(*m) | ||||
| 	r, err := strconv.ParseFloat(val, 32) | ||||
| 	return float32(r), err | ||||
| } | ||||
| func (m *MqttValue) Float64Value() (float64, error) { | ||||
| 	val := string(*m) | ||||
| 	return strconv.ParseFloat(val, 64) | ||||
| } | ||||
| func (m *MqttValue) StringValue() (string, error) { | ||||
| 	return string(*m), nil | ||||
| } | ||||
| func (m *MqttValue) DriveModeValue() (mode.DriveMode, error) { | ||||
| 	val, err := m.IntValue() | ||||
| 	if err != nil { | ||||
| 		return mode.DriveModeInvalid, err | ||||
| 	} | ||||
| 	return mode.DriveMode(val), nil | ||||
| } | ||||
| func (m *MqttValue) ByteSliceValue() ([]byte, error) { | ||||
| 	return *m, nil | ||||
| } | ||||
| func (m *MqttValue) BoolValue() (bool, error) { | ||||
| 	val := string(*m) | ||||
| 	switch val { | ||||
| 	case "ON": | ||||
| 		return true, nil | ||||
| 	case "OFF": | ||||
| 		return false, nil | ||||
| 	default: | ||||
| 		return false, fmt.Errorf("value %v can't be converted to bool", val) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										73
									
								
								vendor/github.com/cyrilix/robocar-base/testtools/testtools.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										73
									
								
								vendor/github.com/cyrilix/robocar-base/testtools/testtools.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,73 +0,0 @@ | ||||
| package testtools | ||||
|  | ||||
| import ( | ||||
| 	"github.com/cyrilix/robocar-base/mqttdevice" | ||||
| 	mqtt "github.com/eclipse/paho.mqtt.golang" | ||||
| 	"sync" | ||||
| ) | ||||
|  | ||||
|  | ||||
| func NewFakePublisher() *FakePublisher { | ||||
| 	return &FakePublisher{msg: make(map[string]mqttdevice.MqttValue)} | ||||
| } | ||||
|  | ||||
| type FakePublisher struct { | ||||
| 	muMsg sync.Mutex | ||||
| 	msg   map[string]mqttdevice.MqttValue | ||||
| } | ||||
|  | ||||
| func (f *FakePublisher) Publish(topic string, payload mqttdevice.MqttValue) { | ||||
| 	f.muMsg.Lock() | ||||
| 	defer f.muMsg.Unlock() | ||||
| 	f.msg[topic] = payload | ||||
| } | ||||
|  | ||||
| func (f *FakePublisher) PublishedEvent(topic string) mqttdevice.MqttValue { | ||||
| 	f.muMsg.Lock() | ||||
| 	defer f.muMsg.Unlock() | ||||
| 	return f.msg[topic] | ||||
| } | ||||
|  | ||||
| type fakeMessage struct { | ||||
| 	qos     byte | ||||
| 	topic   string | ||||
| 	payload []byte | ||||
| 	acked   bool | ||||
| } | ||||
|  | ||||
| func (f *fakeMessage) Duplicate() bool { | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (f *fakeMessage) Qos() byte { | ||||
| 	return f.qos | ||||
| } | ||||
|  | ||||
| func (f *fakeMessage) Retained() bool { | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (f *fakeMessage) Topic() string { | ||||
| 	return f.topic | ||||
| } | ||||
|  | ||||
| func (f *fakeMessage) MessageID() uint16 { | ||||
| 	return 1234 | ||||
| } | ||||
|  | ||||
| func (f *fakeMessage) Payload() []byte { | ||||
| 	return f.payload | ||||
| } | ||||
|  | ||||
| func (f *fakeMessage) Ack() { | ||||
| 	f.acked = true | ||||
| } | ||||
|  | ||||
| func NewFakeMessage(topic string, payload []byte) mqtt.Message { | ||||
| 	return &fakeMessage{ | ||||
| 		qos:     0, | ||||
| 		topic:   topic, | ||||
| 		payload: payload, | ||||
| 		acked:   false, | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										201
									
								
								vendor/github.com/cyrilix/robocar-protobuf/go/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										201
									
								
								vendor/github.com/cyrilix/robocar-protobuf/go/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,201 @@ | ||||
|                                  Apache License | ||||
|                            Version 2.0, January 2004 | ||||
|                         http://www.apache.org/licenses/ | ||||
|  | ||||
|    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||||
|  | ||||
|    1. Definitions. | ||||
|  | ||||
|       "License" shall mean the terms and conditions for use, reproduction, | ||||
|       and distribution as defined by Sections 1 through 9 of this document. | ||||
|  | ||||
|       "Licensor" shall mean the copyright owner or entity authorized by | ||||
|       the copyright owner that is granting the License. | ||||
|  | ||||
|       "Legal Entity" shall mean the union of the acting entity and all | ||||
|       other entities that control, are controlled by, or are under common | ||||
|       control with that entity. For the purposes of this definition, | ||||
|       "control" means (i) the power, direct or indirect, to cause the | ||||
|       direction or management of such entity, whether by contract or | ||||
|       otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||||
|       outstanding shares, or (iii) beneficial ownership of such entity. | ||||
|  | ||||
|       "You" (or "Your") shall mean an individual or Legal Entity | ||||
|       exercising permissions granted by this License. | ||||
|  | ||||
|       "Source" form shall mean the preferred form for making modifications, | ||||
|       including but not limited to software source code, documentation | ||||
|       source, and configuration files. | ||||
|  | ||||
|       "Object" form shall mean any form resulting from mechanical | ||||
|       transformation or translation of a Source form, including but | ||||
|       not limited to compiled object code, generated documentation, | ||||
|       and conversions to other media types. | ||||
|  | ||||
|       "Work" shall mean the work of authorship, whether in Source or | ||||
|       Object form, made available under the License, as indicated by a | ||||
|       copyright notice that is included in or attached to the work | ||||
|       (an example is provided in the Appendix below). | ||||
|  | ||||
|       "Derivative Works" shall mean any work, whether in Source or Object | ||||
|       form, that is based on (or derived from) the Work and for which the | ||||
|       editorial revisions, annotations, elaborations, or other modifications | ||||
|       represent, as a whole, an original work of authorship. For the purposes | ||||
|       of this License, Derivative Works shall not include works that remain | ||||
|       separable from, or merely link (or bind by name) to the interfaces of, | ||||
|       the Work and Derivative Works thereof. | ||||
|  | ||||
|       "Contribution" shall mean any work of authorship, including | ||||
|       the original version of the Work and any modifications or additions | ||||
|       to that Work or Derivative Works thereof, that is intentionally | ||||
|       submitted to Licensor for inclusion in the Work by the copyright owner | ||||
|       or by an individual or Legal Entity authorized to submit on behalf of | ||||
|       the copyright owner. For the purposes of this definition, "submitted" | ||||
|       means any form of electronic, verbal, or written communication sent | ||||
|       to the Licensor or its representatives, including but not limited to | ||||
|       communication on electronic mailing lists, source code control systems, | ||||
|       and issue tracking systems that are managed by, or on behalf of, the | ||||
|       Licensor for the purpose of discussing and improving the Work, but | ||||
|       excluding communication that is conspicuously marked or otherwise | ||||
|       designated in writing by the copyright owner as "Not a Contribution." | ||||
|  | ||||
|       "Contributor" shall mean Licensor and any individual or Legal Entity | ||||
|       on behalf of whom a Contribution has been received by Licensor and | ||||
|       subsequently incorporated within the Work. | ||||
|  | ||||
|    2. Grant of Copyright License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       copyright license to reproduce, prepare Derivative Works of, | ||||
|       publicly display, publicly perform, sublicense, and distribute the | ||||
|       Work and such Derivative Works in Source or Object form. | ||||
|  | ||||
|    3. Grant of Patent License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       (except as stated in this section) patent license to make, have made, | ||||
|       use, offer to sell, sell, import, and otherwise transfer the Work, | ||||
|       where such license applies only to those patent claims licensable | ||||
|       by such Contributor that are necessarily infringed by their | ||||
|       Contribution(s) alone or by combination of their Contribution(s) | ||||
|       with the Work to which such Contribution(s) was submitted. If You | ||||
|       institute patent litigation against any entity (including a | ||||
|       cross-claim or counterclaim in a lawsuit) alleging that the Work | ||||
|       or a Contribution incorporated within the Work constitutes direct | ||||
|       or contributory patent infringement, then any patent licenses | ||||
|       granted to You under this License for that Work shall terminate | ||||
|       as of the date such litigation is filed. | ||||
|  | ||||
|    4. Redistribution. You may reproduce and distribute copies of the | ||||
|       Work or Derivative Works thereof in any medium, with or without | ||||
|       modifications, and in Source or Object form, provided that You | ||||
|       meet the following conditions: | ||||
|  | ||||
|       (a) You must give any other recipients of the Work or | ||||
|           Derivative Works a copy of this License; and | ||||
|  | ||||
|       (b) You must cause any modified files to carry prominent notices | ||||
|           stating that You changed the files; and | ||||
|  | ||||
|       (c) You must retain, in the Source form of any Derivative Works | ||||
|           that You distribute, all copyright, patent, trademark, and | ||||
|           attribution notices from the Source form of the Work, | ||||
|           excluding those notices that do not pertain to any part of | ||||
|           the Derivative Works; and | ||||
|  | ||||
|       (d) If the Work includes a "NOTICE" text file as part of its | ||||
|           distribution, then any Derivative Works that You distribute must | ||||
|           include a readable copy of the attribution notices contained | ||||
|           within such NOTICE file, excluding those notices that do not | ||||
|           pertain to any part of the Derivative Works, in at least one | ||||
|           of the following places: within a NOTICE text file distributed | ||||
|           as part of the Derivative Works; within the Source form or | ||||
|           documentation, if provided along with the Derivative Works; or, | ||||
|           within a display generated by the Derivative Works, if and | ||||
|           wherever such third-party notices normally appear. The contents | ||||
|           of the NOTICE file are for informational purposes only and | ||||
|           do not modify the License. You may add Your own attribution | ||||
|           notices within Derivative Works that You distribute, alongside | ||||
|           or as an addendum to the NOTICE text from the Work, provided | ||||
|           that such additional attribution notices cannot be construed | ||||
|           as modifying the License. | ||||
|  | ||||
|       You may add Your own copyright statement to Your modifications and | ||||
|       may provide additional or different license terms and conditions | ||||
|       for use, reproduction, or distribution of Your modifications, or | ||||
|       for any such Derivative Works as a whole, provided Your use, | ||||
|       reproduction, and distribution of the Work otherwise complies with | ||||
|       the conditions stated in this License. | ||||
|  | ||||
|    5. Submission of Contributions. Unless You explicitly state otherwise, | ||||
|       any Contribution intentionally submitted for inclusion in the Work | ||||
|       by You to the Licensor shall be under the terms and conditions of | ||||
|       this License, without any additional terms or conditions. | ||||
|       Notwithstanding the above, nothing herein shall supersede or modify | ||||
|       the terms of any separate license agreement you may have executed | ||||
|       with Licensor regarding such Contributions. | ||||
|  | ||||
|    6. Trademarks. This License does not grant permission to use the trade | ||||
|       names, trademarks, service marks, or product names of the Licensor, | ||||
|       except as required for reasonable and customary use in describing the | ||||
|       origin of the Work and reproducing the content of the NOTICE file. | ||||
|  | ||||
|    7. Disclaimer of Warranty. Unless required by applicable law or | ||||
|       agreed to in writing, Licensor provides the Work (and each | ||||
|       Contributor provides its Contributions) on an "AS IS" BASIS, | ||||
|       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||||
|       implied, including, without limitation, any warranties or conditions | ||||
|       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||||
|       PARTICULAR PURPOSE. You are solely responsible for determining the | ||||
|       appropriateness of using or redistributing the Work and assume any | ||||
|       risks associated with Your exercise of permissions under this License. | ||||
|  | ||||
|    8. Limitation of Liability. In no event and under no legal theory, | ||||
|       whether in tort (including negligence), contract, or otherwise, | ||||
|       unless required by applicable law (such as deliberate and grossly | ||||
|       negligent acts) or agreed to in writing, shall any Contributor be | ||||
|       liable to You for damages, including any direct, indirect, special, | ||||
|       incidental, or consequential damages of any character arising as a | ||||
|       result of this License or out of the use or inability to use the | ||||
|       Work (including but not limited to damages for loss of goodwill, | ||||
|       work stoppage, computer failure or malfunction, or any and all | ||||
|       other commercial damages or losses), even if such Contributor | ||||
|       has been advised of the possibility of such damages. | ||||
|  | ||||
|    9. Accepting Warranty or Additional Liability. While redistributing | ||||
|       the Work or Derivative Works thereof, You may choose to offer, | ||||
|       and charge a fee for, acceptance of support, warranty, indemnity, | ||||
|       or other liability obligations and/or rights consistent with this | ||||
|       License. However, in accepting such obligations, You may act only | ||||
|       on Your own behalf and on Your sole responsibility, not on behalf | ||||
|       of any other Contributor, and only if You agree to indemnify, | ||||
|       defend, and hold each Contributor harmless for any liability | ||||
|       incurred by, or claims asserted against, such Contributor by reason | ||||
|       of your accepting any such warranty or additional liability. | ||||
|  | ||||
|    END OF TERMS AND CONDITIONS | ||||
|  | ||||
|    APPENDIX: How to apply the Apache License to your work. | ||||
|  | ||||
|       To apply the Apache License to your work, attach the following | ||||
|       boilerplate notice, with the fields enclosed by brackets "[]" | ||||
|       replaced with your own identifying information. (Don't include | ||||
|       the brackets!)  The text should be enclosed in the appropriate | ||||
|       comment syntax for the file format. We also recommend that a | ||||
|       file or class name and description of purpose be included on the | ||||
|       same "printed page" as the copyright notice for easier | ||||
|       identification within third-party archives. | ||||
|  | ||||
|    Copyright [yyyy] [name of copyright owner] | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
							
								
								
									
										422
									
								
								vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										422
									
								
								vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,422 @@ | ||||
| // Code generated by protoc-gen-go. DO NOT EDIT. | ||||
| // source: events/events.proto | ||||
|  | ||||
| package events | ||||
|  | ||||
| import ( | ||||
| 	fmt "fmt" | ||||
| 	proto "github.com/golang/protobuf/proto" | ||||
| 	math "math" | ||||
| ) | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
|  | ||||
| // This is a compile-time assertion to ensure that this generated file | ||||
| // is compatible with the proto package it is being compiled against. | ||||
| // A compilation error at this line likely means your copy of the | ||||
| // proto package needs to be updated. | ||||
| const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package | ||||
|  | ||||
| type TypeObject int32 | ||||
|  | ||||
| const ( | ||||
| 	TypeObject_ANY  TypeObject = 0 | ||||
| 	TypeObject_CAR  TypeObject = 1 | ||||
| 	TypeObject_BUMP TypeObject = 2 | ||||
| 	TypeObject_PLOT TypeObject = 3 | ||||
| ) | ||||
|  | ||||
| var TypeObject_name = map[int32]string{ | ||||
| 	0: "ANY", | ||||
| 	1: "CAR", | ||||
| 	2: "BUMP", | ||||
| 	3: "PLOT", | ||||
| } | ||||
|  | ||||
| var TypeObject_value = map[string]int32{ | ||||
| 	"ANY":  0, | ||||
| 	"CAR":  1, | ||||
| 	"BUMP": 2, | ||||
| 	"PLOT": 3, | ||||
| } | ||||
|  | ||||
| func (x TypeObject) String() string { | ||||
| 	return proto.EnumName(TypeObject_name, int32(x)) | ||||
| } | ||||
|  | ||||
| func (TypeObject) EnumDescriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_8ec31f2d2a3db598, []int{0} | ||||
| } | ||||
|  | ||||
| type FrameRef struct { | ||||
| 	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` | ||||
| 	Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` | ||||
| 	XXX_NoUnkeyedLiteral struct{} `json:"-"` | ||||
| 	XXX_unrecognized     []byte   `json:"-"` | ||||
| 	XXX_sizecache        int32    `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *FrameRef) Reset()         { *m = FrameRef{} } | ||||
| func (m *FrameRef) String() string { return proto.CompactTextString(m) } | ||||
| func (*FrameRef) ProtoMessage()    {} | ||||
| func (*FrameRef) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_8ec31f2d2a3db598, []int{0} | ||||
| } | ||||
|  | ||||
| func (m *FrameRef) XXX_Unmarshal(b []byte) error { | ||||
| 	return xxx_messageInfo_FrameRef.Unmarshal(m, b) | ||||
| } | ||||
| func (m *FrameRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	return xxx_messageInfo_FrameRef.Marshal(b, m, deterministic) | ||||
| } | ||||
| func (m *FrameRef) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_FrameRef.Merge(m, src) | ||||
| } | ||||
| func (m *FrameRef) XXX_Size() int { | ||||
| 	return xxx_messageInfo_FrameRef.Size(m) | ||||
| } | ||||
| func (m *FrameRef) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_FrameRef.DiscardUnknown(m) | ||||
| } | ||||
|  | ||||
| var xxx_messageInfo_FrameRef proto.InternalMessageInfo | ||||
|  | ||||
| func (m *FrameRef) GetName() string { | ||||
| 	if m != nil { | ||||
| 		return m.Name | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *FrameRef) GetId() string { | ||||
| 	if m != nil { | ||||
| 		return m.Id | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type FrameMessage struct { | ||||
| 	Id                   *FrameRef `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | ||||
| 	Frame                []byte    `protobuf:"bytes,2,opt,name=frame,proto3" json:"frame,omitempty"` | ||||
| 	XXX_NoUnkeyedLiteral struct{}  `json:"-"` | ||||
| 	XXX_unrecognized     []byte    `json:"-"` | ||||
| 	XXX_sizecache        int32     `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *FrameMessage) Reset()         { *m = FrameMessage{} } | ||||
| func (m *FrameMessage) String() string { return proto.CompactTextString(m) } | ||||
| func (*FrameMessage) ProtoMessage()    {} | ||||
| func (*FrameMessage) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_8ec31f2d2a3db598, []int{1} | ||||
| } | ||||
|  | ||||
| func (m *FrameMessage) XXX_Unmarshal(b []byte) error { | ||||
| 	return xxx_messageInfo_FrameMessage.Unmarshal(m, b) | ||||
| } | ||||
| func (m *FrameMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	return xxx_messageInfo_FrameMessage.Marshal(b, m, deterministic) | ||||
| } | ||||
| func (m *FrameMessage) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_FrameMessage.Merge(m, src) | ||||
| } | ||||
| func (m *FrameMessage) XXX_Size() int { | ||||
| 	return xxx_messageInfo_FrameMessage.Size(m) | ||||
| } | ||||
| func (m *FrameMessage) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_FrameMessage.DiscardUnknown(m) | ||||
| } | ||||
|  | ||||
| var xxx_messageInfo_FrameMessage proto.InternalMessageInfo | ||||
|  | ||||
| func (m *FrameMessage) GetId() *FrameRef { | ||||
| 	if m != nil { | ||||
| 		return m.Id | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *FrameMessage) GetFrame() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.Frame | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type SteeringMessage struct { | ||||
| 	Steering             float32   `protobuf:"fixed32,1,opt,name=steering,proto3" json:"steering,omitempty"` | ||||
| 	Confidence           float32   `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` | ||||
| 	FrameRef             *FrameRef `protobuf:"bytes,3,opt,name=frame_ref,json=frameRef,proto3" json:"frame_ref,omitempty"` | ||||
| 	XXX_NoUnkeyedLiteral struct{}  `json:"-"` | ||||
| 	XXX_unrecognized     []byte    `json:"-"` | ||||
| 	XXX_sizecache        int32     `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *SteeringMessage) Reset()         { *m = SteeringMessage{} } | ||||
| func (m *SteeringMessage) String() string { return proto.CompactTextString(m) } | ||||
| func (*SteeringMessage) ProtoMessage()    {} | ||||
| func (*SteeringMessage) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_8ec31f2d2a3db598, []int{2} | ||||
| } | ||||
|  | ||||
| func (m *SteeringMessage) XXX_Unmarshal(b []byte) error { | ||||
| 	return xxx_messageInfo_SteeringMessage.Unmarshal(m, b) | ||||
| } | ||||
| func (m *SteeringMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	return xxx_messageInfo_SteeringMessage.Marshal(b, m, deterministic) | ||||
| } | ||||
| func (m *SteeringMessage) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_SteeringMessage.Merge(m, src) | ||||
| } | ||||
| func (m *SteeringMessage) XXX_Size() int { | ||||
| 	return xxx_messageInfo_SteeringMessage.Size(m) | ||||
| } | ||||
| func (m *SteeringMessage) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_SteeringMessage.DiscardUnknown(m) | ||||
| } | ||||
|  | ||||
| var xxx_messageInfo_SteeringMessage proto.InternalMessageInfo | ||||
|  | ||||
| func (m *SteeringMessage) GetSteering() float32 { | ||||
| 	if m != nil { | ||||
| 		return m.Steering | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *SteeringMessage) GetConfidence() float32 { | ||||
| 	if m != nil { | ||||
| 		return m.Confidence | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *SteeringMessage) GetFrameRef() *FrameRef { | ||||
| 	if m != nil { | ||||
| 		return m.FrameRef | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type ThrottleMessage struct { | ||||
| 	Throttle             float32   `protobuf:"fixed32,1,opt,name=throttle,proto3" json:"throttle,omitempty"` | ||||
| 	Confidence           float32   `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` | ||||
| 	FrameRef             *FrameRef `protobuf:"bytes,3,opt,name=frame_ref,json=frameRef,proto3" json:"frame_ref,omitempty"` | ||||
| 	XXX_NoUnkeyedLiteral struct{}  `json:"-"` | ||||
| 	XXX_unrecognized     []byte    `json:"-"` | ||||
| 	XXX_sizecache        int32     `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *ThrottleMessage) Reset()         { *m = ThrottleMessage{} } | ||||
| func (m *ThrottleMessage) String() string { return proto.CompactTextString(m) } | ||||
| func (*ThrottleMessage) ProtoMessage()    {} | ||||
| func (*ThrottleMessage) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_8ec31f2d2a3db598, []int{3} | ||||
| } | ||||
|  | ||||
| func (m *ThrottleMessage) XXX_Unmarshal(b []byte) error { | ||||
| 	return xxx_messageInfo_ThrottleMessage.Unmarshal(m, b) | ||||
| } | ||||
| func (m *ThrottleMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	return xxx_messageInfo_ThrottleMessage.Marshal(b, m, deterministic) | ||||
| } | ||||
| func (m *ThrottleMessage) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_ThrottleMessage.Merge(m, src) | ||||
| } | ||||
| func (m *ThrottleMessage) XXX_Size() int { | ||||
| 	return xxx_messageInfo_ThrottleMessage.Size(m) | ||||
| } | ||||
| func (m *ThrottleMessage) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_ThrottleMessage.DiscardUnknown(m) | ||||
| } | ||||
|  | ||||
| var xxx_messageInfo_ThrottleMessage proto.InternalMessageInfo | ||||
|  | ||||
| func (m *ThrottleMessage) GetThrottle() float32 { | ||||
| 	if m != nil { | ||||
| 		return m.Throttle | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *ThrottleMessage) GetConfidence() float32 { | ||||
| 	if m != nil { | ||||
| 		return m.Confidence | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *ThrottleMessage) GetFrameRef() *FrameRef { | ||||
| 	if m != nil { | ||||
| 		return m.FrameRef | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type ObjectsMessage struct { | ||||
| 	Objects              []*Object `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"` | ||||
| 	FrameRef             *FrameRef `protobuf:"bytes,2,opt,name=frame_ref,json=frameRef,proto3" json:"frame_ref,omitempty"` | ||||
| 	XXX_NoUnkeyedLiteral struct{}  `json:"-"` | ||||
| 	XXX_unrecognized     []byte    `json:"-"` | ||||
| 	XXX_sizecache        int32     `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *ObjectsMessage) Reset()         { *m = ObjectsMessage{} } | ||||
| func (m *ObjectsMessage) String() string { return proto.CompactTextString(m) } | ||||
| func (*ObjectsMessage) ProtoMessage()    {} | ||||
| func (*ObjectsMessage) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_8ec31f2d2a3db598, []int{4} | ||||
| } | ||||
|  | ||||
| func (m *ObjectsMessage) XXX_Unmarshal(b []byte) error { | ||||
| 	return xxx_messageInfo_ObjectsMessage.Unmarshal(m, b) | ||||
| } | ||||
| func (m *ObjectsMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	return xxx_messageInfo_ObjectsMessage.Marshal(b, m, deterministic) | ||||
| } | ||||
| func (m *ObjectsMessage) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_ObjectsMessage.Merge(m, src) | ||||
| } | ||||
| func (m *ObjectsMessage) XXX_Size() int { | ||||
| 	return xxx_messageInfo_ObjectsMessage.Size(m) | ||||
| } | ||||
| func (m *ObjectsMessage) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_ObjectsMessage.DiscardUnknown(m) | ||||
| } | ||||
|  | ||||
| var xxx_messageInfo_ObjectsMessage proto.InternalMessageInfo | ||||
|  | ||||
| func (m *ObjectsMessage) GetObjects() []*Object { | ||||
| 	if m != nil { | ||||
| 		return m.Objects | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *ObjectsMessage) GetFrameRef() *FrameRef { | ||||
| 	if m != nil { | ||||
| 		return m.FrameRef | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type Object struct { | ||||
| 	Type                 TypeObject `protobuf:"varint,1,opt,name=type,proto3,enum=robocar.events.TypeObject" json:"type,omitempty"` | ||||
| 	LLeft                int32      `protobuf:"varint,2,opt,name=lLeft,proto3" json:"lLeft,omitempty"` | ||||
| 	Up                   int32      `protobuf:"varint,3,opt,name=up,proto3" json:"up,omitempty"` | ||||
| 	Right                int32      `protobuf:"varint,4,opt,name=right,proto3" json:"right,omitempty"` | ||||
| 	Bottom               int32      `protobuf:"varint,5,opt,name=bottom,proto3" json:"bottom,omitempty"` | ||||
| 	Confidence           float32    `protobuf:"fixed32,6,opt,name=confidence,proto3" json:"confidence,omitempty"` | ||||
| 	XXX_NoUnkeyedLiteral struct{}   `json:"-"` | ||||
| 	XXX_unrecognized     []byte     `json:"-"` | ||||
| 	XXX_sizecache        int32      `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *Object) Reset()         { *m = Object{} } | ||||
| func (m *Object) String() string { return proto.CompactTextString(m) } | ||||
| func (*Object) ProtoMessage()    {} | ||||
| func (*Object) Descriptor() ([]byte, []int) { | ||||
| 	return fileDescriptor_8ec31f2d2a3db598, []int{5} | ||||
| } | ||||
|  | ||||
| func (m *Object) XXX_Unmarshal(b []byte) error { | ||||
| 	return xxx_messageInfo_Object.Unmarshal(m, b) | ||||
| } | ||||
| func (m *Object) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { | ||||
| 	return xxx_messageInfo_Object.Marshal(b, m, deterministic) | ||||
| } | ||||
| func (m *Object) XXX_Merge(src proto.Message) { | ||||
| 	xxx_messageInfo_Object.Merge(m, src) | ||||
| } | ||||
| func (m *Object) XXX_Size() int { | ||||
| 	return xxx_messageInfo_Object.Size(m) | ||||
| } | ||||
| func (m *Object) XXX_DiscardUnknown() { | ||||
| 	xxx_messageInfo_Object.DiscardUnknown(m) | ||||
| } | ||||
|  | ||||
| var xxx_messageInfo_Object proto.InternalMessageInfo | ||||
|  | ||||
| func (m *Object) GetType() TypeObject { | ||||
| 	if m != nil { | ||||
| 		return m.Type | ||||
| 	} | ||||
| 	return TypeObject_ANY | ||||
| } | ||||
|  | ||||
| func (m *Object) GetLLeft() int32 { | ||||
| 	if m != nil { | ||||
| 		return m.LLeft | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *Object) GetUp() int32 { | ||||
| 	if m != nil { | ||||
| 		return m.Up | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *Object) GetRight() int32 { | ||||
| 	if m != nil { | ||||
| 		return m.Right | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *Object) GetBottom() int32 { | ||||
| 	if m != nil { | ||||
| 		return m.Bottom | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *Object) GetConfidence() float32 { | ||||
| 	if m != nil { | ||||
| 		return m.Confidence | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func init() { | ||||
| 	proto.RegisterEnum("robocar.events.TypeObject", TypeObject_name, TypeObject_value) | ||||
| 	proto.RegisterType((*FrameRef)(nil), "robocar.events.FrameRef") | ||||
| 	proto.RegisterType((*FrameMessage)(nil), "robocar.events.FrameMessage") | ||||
| 	proto.RegisterType((*SteeringMessage)(nil), "robocar.events.SteeringMessage") | ||||
| 	proto.RegisterType((*ThrottleMessage)(nil), "robocar.events.ThrottleMessage") | ||||
| 	proto.RegisterType((*ObjectsMessage)(nil), "robocar.events.ObjectsMessage") | ||||
| 	proto.RegisterType((*Object)(nil), "robocar.events.Object") | ||||
| } | ||||
|  | ||||
| func init() { proto.RegisterFile("events/events.proto", fileDescriptor_8ec31f2d2a3db598) } | ||||
|  | ||||
| var fileDescriptor_8ec31f2d2a3db598 = []byte{ | ||||
| 	// 383 bytes of a gzipped FileDescriptorProto | ||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0x4d, 0x6f, 0x9b, 0x40, | ||||
| 	0x10, 0x2d, 0xcb, 0x87, 0xf1, 0xd8, 0xa2, 0x68, 0x5b, 0x59, 0xc8, 0x87, 0xca, 0xf2, 0xc9, 0xea, | ||||
| 	0x81, 0x56, 0x54, 0xfd, 0x01, 0x76, 0xa5, 0x9e, 0xfc, 0xa5, 0xad, 0x7b, 0x48, 0x2e, 0x11, 0xe0, | ||||
| 	0xc5, 0x26, 0xb2, 0x59, 0xb4, 0xac, 0x23, 0xf9, 0x9e, 0x9f, 0x93, 0x1f, 0x19, 0xed, 0x2e, 0x24, | ||||
| 	0x36, 0x97, 0xe4, 0x92, 0x13, 0xf3, 0x1e, 0x6f, 0xde, 0xbc, 0x59, 0x58, 0xf8, 0x42, 0x1f, 0x68, | ||||
| 	0x21, 0xaa, 0x1f, 0xfa, 0x11, 0x96, 0x9c, 0x09, 0x86, 0x3d, 0xce, 0x12, 0x96, 0xc6, 0x3c, 0xd4, | ||||
| 	0xec, 0x38, 0x04, 0xf7, 0x2f, 0x8f, 0x8f, 0x94, 0xd0, 0x0c, 0x63, 0xb0, 0x8a, 0xf8, 0x48, 0x03, | ||||
| 	0x63, 0x64, 0x4c, 0xba, 0x44, 0xd5, 0xd8, 0x03, 0x94, 0x6f, 0x03, 0xa4, 0x18, 0x94, 0x6f, 0xc7, | ||||
| 	0x4b, 0xe8, 0x2b, 0xfd, 0x82, 0x56, 0x55, 0xbc, 0xa3, 0x78, 0xa2, 0xde, 0xcb, 0x8e, 0x5e, 0x14, | ||||
| 	0x84, 0xd7, 0xe6, 0x61, 0xe3, 0x2c, 0x3b, 0xf1, 0x57, 0xb0, 0x33, 0x89, 0x95, 0x59, 0x9f, 0x68, | ||||
| 	0x30, 0x7e, 0x34, 0xe0, 0xf3, 0x3f, 0x41, 0x29, 0xcf, 0x8b, 0x5d, 0xe3, 0x39, 0x04, 0xb7, 0xaa, | ||||
| 	0x29, 0xe5, 0x8c, 0xc8, 0x0b, 0xc6, 0xdf, 0x00, 0x52, 0x56, 0x64, 0xf9, 0x96, 0x16, 0xa9, 0xb6, | ||||
| 	0x42, 0xe4, 0x82, 0xc1, 0xbf, 0xa1, 0xab, 0x8c, 0xef, 0x38, 0xcd, 0x02, 0xf3, 0x8d, 0x58, 0x6e, | ||||
| 	0x56, 0x57, 0x2a, 0xc6, 0x66, 0xcf, 0x99, 0x10, 0x07, 0x7a, 0x11, 0x43, 0xd4, 0x54, 0x13, 0xa3, | ||||
| 	0xc1, 0x1f, 0x15, 0xe3, 0x0c, 0xde, 0x2a, 0xb9, 0xa7, 0xa9, 0xa8, 0x9a, 0x10, 0x3f, 0xa1, 0xc3, | ||||
| 	0x34, 0x13, 0x18, 0x23, 0x73, 0xd2, 0x8b, 0x06, 0x6d, 0x1b, 0xdd, 0x40, 0x1a, 0xd9, 0xf5, 0x68, | ||||
| 	0xf4, 0xee, 0xd1, 0x4f, 0x06, 0x38, 0xda, 0x0a, 0x87, 0x60, 0x89, 0x73, 0xa9, 0x97, 0xf6, 0xa2, | ||||
| 	0x61, 0xbb, 0x79, 0x73, 0x2e, 0x69, 0x3d, 0x54, 0xe9, 0xe4, 0x97, 0x3d, 0xcc, 0x69, 0x26, 0xd4, | ||||
| 	0x34, 0x9b, 0x68, 0x20, 0xff, 0x9c, 0x53, 0xa9, 0x76, 0xb7, 0x09, 0x3a, 0x95, 0x52, 0xc5, 0xf3, | ||||
| 	0xdd, 0x5e, 0x04, 0x96, 0x56, 0x29, 0x80, 0x07, 0xe0, 0x24, 0x4c, 0x08, 0x76, 0x0c, 0x6c, 0x45, | ||||
| 	0xd7, 0xa8, 0x75, 0xc0, 0x4e, 0xfb, 0x80, 0xbf, 0x47, 0x00, 0xaf, 0x39, 0x70, 0x07, 0xcc, 0xe9, | ||||
| 	0xf2, 0xc6, 0xff, 0x24, 0x8b, 0x3f, 0x53, 0xe2, 0x1b, 0xd8, 0x05, 0x6b, 0xf6, 0x7f, 0xb1, 0xf6, | ||||
| 	0x91, 0xac, 0xd6, 0xf3, 0xd5, 0xc6, 0x37, 0x67, 0xee, 0xad, 0xa3, 0x57, 0x48, 0x1c, 0x75, 0x19, | ||||
| 	0x7e, 0x3d, 0x07, 0x00, 0x00, 0xff, 0xff, 0xb6, 0x83, 0x51, 0xbe, 0x23, 0x03, 0x00, 0x00, | ||||
| } | ||||
		Reference in New Issue
	
	Block a user