Skip to content

Commit 9f14a04

Browse files
committed
Load units to unit converter
1 parent 81e1276 commit 9f14a04

1 file changed

Lines changed: 24 additions & 10 deletions

File tree

backend/cmd/main.go

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/HyperloopUPV-H8/h9-backend/internal/data_transfer"
2121
"github.com/HyperloopUPV-H8/h9-backend/internal/excel"
2222
"github.com/HyperloopUPV-H8/h9-backend/internal/excel/ade"
23+
"github.com/HyperloopUPV-H8/h9-backend/internal/excel/utils"
2324
"github.com/HyperloopUPV-H8/h9-backend/internal/info"
2425
"github.com/HyperloopUPV-H8/h9-backend/internal/logger_handler"
2526
protection_logger "github.com/HyperloopUPV-H8/h9-backend/internal/message_logger"
@@ -436,27 +437,29 @@ func getTransportDecEnc(info info.Info, podData pod_data.PodData) (*presentation
436437
for i, measurement := range packet.Measurements {
437438
switch meas := measurement.(type) {
438439
case pod_data.NumericMeasurement:
440+
podOps := getOps(meas.PodUnits)
441+
displayOps := getOps(meas.DisplayUnits)
439442
switch meas.Type {
440443
case "uint8":
441-
descriptor[i] = data.NewNumericDescriptor[uint8](data.ValueName(meas.Id))
444+
descriptor[i] = data.NewNumericDescriptor[uint8](data.ValueName(meas.Id), podOps, displayOps)
442445
case "uint16":
443-
descriptor[i] = data.NewNumericDescriptor[uint16](data.ValueName(meas.Id))
446+
descriptor[i] = data.NewNumericDescriptor[uint16](data.ValueName(meas.Id), podOps, displayOps)
444447
case "uint32":
445-
descriptor[i] = data.NewNumericDescriptor[uint32](data.ValueName(meas.Id))
448+
descriptor[i] = data.NewNumericDescriptor[uint32](data.ValueName(meas.Id), podOps, displayOps)
446449
case "uint64":
447-
descriptor[i] = data.NewNumericDescriptor[uint64](data.ValueName(meas.Id))
450+
descriptor[i] = data.NewNumericDescriptor[uint64](data.ValueName(meas.Id), podOps, displayOps)
448451
case "int8":
449-
descriptor[i] = data.NewNumericDescriptor[int8](data.ValueName(meas.Id))
452+
descriptor[i] = data.NewNumericDescriptor[int8](data.ValueName(meas.Id), podOps, displayOps)
450453
case "int16":
451-
descriptor[i] = data.NewNumericDescriptor[int16](data.ValueName(meas.Id))
454+
descriptor[i] = data.NewNumericDescriptor[int16](data.ValueName(meas.Id), podOps, displayOps)
452455
case "int32":
453-
descriptor[i] = data.NewNumericDescriptor[int32](data.ValueName(meas.Id))
456+
descriptor[i] = data.NewNumericDescriptor[int32](data.ValueName(meas.Id), podOps, displayOps)
454457
case "int64":
455-
descriptor[i] = data.NewNumericDescriptor[int64](data.ValueName(meas.Id))
458+
descriptor[i] = data.NewNumericDescriptor[int64](data.ValueName(meas.Id), podOps, displayOps)
456459
case "float32":
457-
descriptor[i] = data.NewNumericDescriptor[float32](data.ValueName(meas.Id))
460+
descriptor[i] = data.NewNumericDescriptor[float32](data.ValueName(meas.Id), podOps, displayOps)
458461
case "float64":
459-
descriptor[i] = data.NewNumericDescriptor[float64](data.ValueName(meas.Id))
462+
descriptor[i] = data.NewNumericDescriptor[float64](data.ValueName(meas.Id), podOps, displayOps)
460463
default:
461464
panic(fmt.Sprintf("unexpected numeric type for %s: %s", meas.Id, meas.Type))
462465
}
@@ -500,6 +503,17 @@ func getTransportDecEnc(info info.Info, podData pod_data.PodData) (*presentation
500503
return decoder, encoder
501504
}
502505

506+
func getOps(units utils.Units) data.ConversionDescriptor {
507+
output := make(data.ConversionDescriptor, len(units.Operations))
508+
for i, operation := range units.Operations {
509+
output[i] = data.Operation{
510+
Operator: operation.Operator,
511+
Operand: operation.Operand,
512+
}
513+
}
514+
return output
515+
}
516+
503517
type TransportAPI struct {
504518
OnNotification func(abstraction.TransportNotification)
505519
OnConnectionUpdate func(abstraction.TransportTarget, bool)

0 commit comments

Comments
 (0)