@@ -17,14 +17,12 @@ import (
1717
1818 blcuPackage "github.com/HyperloopUPV-H8/h9-backend/internal/blcu"
1919 "github.com/HyperloopUPV-H8/h9-backend/internal/common"
20- "github.com/HyperloopUPV-H8/h9-backend/internal/connection_transfer"
2120 "github.com/HyperloopUPV-H8/h9-backend/internal/data_transfer"
2221 "github.com/HyperloopUPV-H8/h9-backend/internal/excel"
2322 "github.com/HyperloopUPV-H8/h9-backend/internal/excel/ade"
2423 "github.com/HyperloopUPV-H8/h9-backend/internal/excel/utils"
2524 "github.com/HyperloopUPV-H8/h9-backend/internal/info"
2625 "github.com/HyperloopUPV-H8/h9-backend/internal/message_transfer"
27- "github.com/HyperloopUPV-H8/h9-backend/internal/order_transfer"
2826 "github.com/HyperloopUPV-H8/h9-backend/internal/pod_data"
2927 "github.com/HyperloopUPV-H8/h9-backend/internal/server"
3028 "github.com/HyperloopUPV-H8/h9-backend/internal/update_factory"
@@ -34,6 +32,7 @@ import (
3432 "github.com/HyperloopUPV-H8/h9-backend/pkg/broker"
3533 connection_topic "github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/connection"
3634 data_topic "github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/data"
35+ order_topic "github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/order"
3736 "github.com/HyperloopUPV-H8/h9-backend/pkg/transport"
3837 "github.com/HyperloopUPV-H8/h9-backend/pkg/transport/network/sniffer"
3938 "github.com/HyperloopUPV-H8/h9-backend/pkg/transport/network/tcp"
@@ -111,8 +110,6 @@ func main() {
111110 }
112111 config .Vehicle .Network .Interface = dev .Name
113112
114- connectionTransfer := connection_transfer .New (config .Connections )
115-
116113 vehicleOrders , err := vehicle_models .NewVehicleOrders (podData .Boards , config .Excel .Parse .Global .BLCUAddressKey )
117114 if err != nil {
118115 trace .Fatal ().Err (err ).Msg ("creating vehicleOrders" )
@@ -146,24 +143,22 @@ func main() {
146143 idToBoard [packet .Id ] = board .Name
147144 }
148145 }
149- orderTransfer , orderChannel := order_transfer .New (idToBoard )
150146
151147 // <--- blcu --->
152148 var blcu blcuPackage.BLCU
153149 blcuAddr , useBlcu := info .Addresses .Boards ["BLCU" ]
154150
155151 // <--- broker --->
156152 broker := broker .New ()
157- broker .SetAPI (& brokerAPI {
158- OnUserPush : func (push abstraction.BrokerPush ) {},
159- })
160153
161154 dataTopic := data_topic .NewUpdateTopic (time .Second / 10 )
162155 defer dataTopic .Stop ()
163156 connectionTopic := connection_topic .NewUpdateTopic ()
157+ orderTopic := order_topic .NewSendTopic ()
164158
165159 broker .AddTopic (data_topic .UpdateName , dataTopic )
166160 broker .AddTopic (connection_topic .UpdateName , connectionTopic )
161+ broker .AddTopic (order_topic .SendName , orderTopic )
167162
168163 connections := make (chan * websocket.Client )
169164 upgrader := websocket .NewUpgrader (connections )
@@ -244,10 +239,9 @@ func main() {
244239 }
245240
246241 case * order.Add :
247- orderTransfer .AddStateOrders (* p )
248-
242+ trace .Debug ().Msg ("adding order" )
249243 case * order.Remove :
250- orderTransfer . RemoveStateOrders ( * p )
244+ trace . Debug (). Msg ( "removing order" )
251245 }
252246 },
253247
@@ -256,6 +250,42 @@ func main() {
256250 },
257251 })
258252
253+ // this is here because we need to use transport to send messages
254+ broker .SetAPI (& brokerAPI {
255+ OnUserPush : func (push abstraction.BrokerPush ) {
256+ switch push .Topic () {
257+ case order_topic .SendName :
258+ order , ok := push .(* order_topic.Order )
259+ if ! ok {
260+ trace .Error ().Any ("push" , push ).Msg ("error casting push to order" )
261+ return
262+ }
263+
264+ packet , err := order .ToPacket ()
265+ if err != nil {
266+ trace .Error ().Any ("order" , order ).Err (err ).Msg ("error converting order to packet" )
267+ return
268+ }
269+
270+ err = transp .SendMessage (transport .NewPacketMessage (packet ))
271+ if err != nil {
272+ trace .Error ().Any ("order" , order ).Err (err ).Msg ("error sending order" )
273+ return
274+ }
275+
276+ err = loggerHandler .PushRecord (& order_logger.Record {
277+ Packet : packet ,
278+ })
279+
280+ if err != nil {
281+ fmt .Println ("Error pushing record to logger: " , err )
282+ }
283+ default :
284+ fmt .Printf ("unknow topic %s\n " , push .Topic ())
285+ }
286+ },
287+ })
288+
259289 // Load and set packet decoder and encoder
260290 decoder , encoder := getTransportDecEnc (info , podData )
261291 transp .WithDecoder (decoder ).WithEncoder (encoder )
@@ -299,24 +329,6 @@ func main() {
299329 }
300330 go transp .HandleSniffer (sniffer .New (source , & layers .LayerTypeEthernet ))
301331
302- // <--- order transfer --->
303- go func () {
304- for order := range orderChannel {
305- err := transp .SendMessage (transport .NewPacketMessage (& order ))
306- if err != nil {
307- trace .Error ().Any ("order" , order ).Err (err ).Msg ("error sending order" )
308- }
309-
310- err = loggerHandler .PushRecord (& order_logger.Record {
311- Packet : & order ,
312- })
313-
314- if err != nil {
315- fmt .Println ("Error pushing record to logger: " , err )
316- }
317- }
318- }()
319-
320332 // <--- blcu --->
321333 if useBlcu {
322334 blcu = blcuPackage .NewBLCU (net.TCPAddr {
@@ -337,11 +349,8 @@ func main() {
337349 websocketBroker .RegisterHandle (& blcu , config .BLCU .Topics .Upload , config .BLCU .Topics .Download )
338350 }
339351
340- websocketBroker .RegisterHandle (& connectionTransfer , config .Connections .UpdateTopic , "connection/update" )
341- websocketBroker .RegisterHandle (& dataTransfer , "podData/update" )
342352 websocketBroker .RegisterHandle (loggerHandler , config .LoggerHandler .Topics .Enable )
343353 websocketBroker .RegisterHandle (& messageTransfer , "message/update" )
344- websocketBroker .RegisterHandle (& orderTransfer , config .Orders .SendTopic , "order/stateOrders" )
345354
346355 uploadableBords := common .Filter (common .Keys (info .Addresses .Boards ), func (item string ) bool {
347356 return item != config .Excel .Parse .Global .BLCUAddressKey
0 commit comments