Minor refactor

This commit is contained in:
2023-10-13 16:57:39 +03:00
parent 7679cc3ba9
commit d709c2107d
6 changed files with 101 additions and 100 deletions
+35 -8
View File
@@ -1,14 +1,41 @@
package yabl
const (
CONVERTERS_MAX = 18 + 1
CONTACTOR_MAX = 18 + 1
CONNECTOR_COUNT = 6
CONNECTOR_MAX = CONNECTOR_COUNT + 1
ALL_BITS = 0xFFFFFFFFFFFFFFFF
UNIT_ID_OFFSET = 12
UNIT_ID_MASK = 0b111111111111 << UNIT_ID_OFFSET
ACTION_ID_MASK = 0b111111111111
CONVERTERS_MAX = 18 + 1
CONTACTOR_MAX = 18 + 1
CONNECTOR_COUNT = 6
CONNECTOR_MAX = CONNECTOR_COUNT + 1
ALL_BITS = 0xFFFFFFFFFFFFFFFF
UNIT_ID_OFFSET = 12
UNIT_ID_MASK = 0b111111111111 << UNIT_ID_OFFSET
ACTION_ID_MASK = 0b111111111111
CanIdContIntState = 0x071
CanIdContIntErr = 0x073
CanIdContIntForce = 0x074
CanIdContIntDebug = 0x075
CanIdPuPresentEnergy = 0x021
CanIdPuPeriphery = 0x022
CanIdPuErrors = 0x023
CanIdCpuPresentEnergy = 0x011
CanIdCpuPeriphery = 0x014
CanIdCpuEnergySettings = 0x015
CanIdCpuErrors = 0x016
CanIdCpuDebug = 0x01A
CanIdPuDebug = 0x02A
CanIdSeccTargetEnergy = 0x041
CanIdSeccErrors = 0x042
CanIdLogicAuth = 0x046
CanIdLogicEnergyMode = 0x047
CanIdLogicErrors = 0x048
CanIdLogicWorkingMode = 0x049
CanIdPeripheryState = 0x067
CanIdPeripheryInfo = 0x068
CanIdPeripheryDebug = 0x06C
CanIdConverterPresentEnergy = 0x061
CanIdConverterErrors = 0x062
CanIdConverterDebug = 0x065
BOARD_READY_OK BoardReadyType = 0
BOARD_READY_INFO BoardReadyType = 1
BOARD_READY_WARNING BoardReadyType = 2
+25 -27
View File
@@ -1,12 +1,10 @@
package yabl
import "cli-mon/can"
func (c *converter) initialize() {
c.protocolMap = make(map[key]action)
for i := uint(1); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_011, i}
key := key{CanIdCpuPresentEnergy, i}
cpe := &CpuPresentEnergy{unit: 1}
c.cpuPresentEnergyArray[i] = cpe
fields := []*field{
@@ -23,7 +21,7 @@ func (c *converter) initialize() {
{length: 2, setter: c.cpuPeripheryInstance.setCircuitBreakerInput, name: FCircuitBreakerInput},
{length: 2, setter: c.cpuPeripheryInstance.setCircuitBreakerPowerCBInput, name: FCircuitBreakerPowerCBInput},
}
c.protocolMap[key{can.CAN_ID_014, 0}] = action{
c.protocolMap[key{CanIdCpuPeriphery, 0}] = action{
fields: fields,
interval: 1000,
name: PCpuPeriphery,
@@ -31,7 +29,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_015, i}
key := key{CanIdCpuEnergySettings, i}
ces := &CpuEnergySettings{unit: unit(i)}
c.cpuEnergySettingsArray[i] = ces
fields := []*field{
@@ -65,7 +63,7 @@ func (c *converter) initialize() {
{length: 2, setter: c.cpuErrorsInstance.setContactorInputError, name: FContactorInputError},
{length: 2, setter: c.cpuErrorsInstance.setNotReadyPeriphery, name: FNotReadyPeriphery},
}
c.protocolMap[key{can.CAN_ID_016, 0}] = action{
c.protocolMap[key{CanIdCpuErrors, 0}] = action{
fields: fields,
interval: 1000,
name: PCpuErrors,
@@ -79,7 +77,7 @@ func (c *converter) initialize() {
{length: 3, setter: c.cpuDebugInstance.setDebugCircuitBreakerOn, name: FDebugCircuitBreakerOn},
{length: 3, setter: c.cpuDebugInstance.setDebugRedButtonSoftware, name: FDebugRedButtonSoftware},
}
c.protocolMap[key{can.CAN_ID_01A, 0}] = action{
c.protocolMap[key{CanIdCpuDebug, 0}] = action{
fields: fields,
interval: 1000,
name: PCpuDebug,
@@ -87,7 +85,7 @@ func (c *converter) initialize() {
}
for i := uint(1); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_021, i}
key := key{CanIdPuPresentEnergy, i}
ppe := &PuPresentEnergy{unit: unit(i)}
c.puPresentEnergyArray[i] = ppe
fields := []*field{
@@ -100,7 +98,7 @@ func (c *converter) initialize() {
}
for i := uint(1); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_022, i}
key := key{CanIdPuPeriphery, i}
pp := &PuPeriphery{unit: unit(i)}
c.puPeripheryArray[i] = pp
fields := []*field{
@@ -117,7 +115,7 @@ func (c *converter) initialize() {
}
for i := uint(1); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_023, i}
key := key{CanIdPuErrors, i}
pe := &PuErrors{unit: 1}
c.puErrorsArray[i] = pe
fields := []*field{
@@ -142,7 +140,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_02A, i}
key := key{CanIdPuDebug, i}
pd := &PuDebug{unit: unit(i)}
c.puDebugArray[i] = pd
fields = []*field{
@@ -153,7 +151,7 @@ func (c *converter) initialize() {
}
for i := uint(1); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_041, i}
key := key{CanIdSeccTargetEnergy, i}
ste := &SeccTargetEnergy{unit: unit(i)}
c.seccTargetEnergyArray[i] = ste
fields = []*field{
@@ -166,7 +164,7 @@ func (c *converter) initialize() {
}
for i := uint(1); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_042, i}
key := key{CanIdSeccErrors, i}
se := &SeccErrors{unit: unit(i)}
c.seccErrorsArray[i] = se
fields = []*field{
@@ -177,7 +175,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_046, i}
key := key{CanIdLogicAuth, i}
la := &LogicAuth{unit: unit(i)}
c.logicAuthArray[i] = la
fields = []*field{
@@ -188,7 +186,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_047, i}
key := key{CanIdLogicEnergyMode, i}
lem := &LogicEnergyMode{unit: unit(i)}
c.logicEnergyMode[i] = lem
fields = []*field{
@@ -205,7 +203,7 @@ func (c *converter) initialize() {
{length: 3, setter: c.logicErrorsInstance.setBoardReady, name: FBoardReady},
{length: 2, setter: c.logicErrorsInstance.setNotReadySettings, name: FNotReadySettings},
}
c.protocolMap[key{can.CAN_ID_048, 0}] = action{
c.protocolMap[key{CanIdLogicErrors, 0}] = action{
fields: fields,
interval: 1000,
name: PLogicErrors,
@@ -213,7 +211,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_049, i}
key := key{CanIdLogicWorkingMode, i}
lwm := &LogicWorkingMode{unit: unit(i)}
c.logicWorkingMode[i] = lwm
fields = []*field{
@@ -229,7 +227,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i < CONTACTOR_MAX; i++ {
key := key{can.CAN_ID_071, i}
key := key{CanIdContIntState, i}
cis := &ContactorInternalState{unit: unit(i)}
c.contactorInternalStateArray[i] = cis
fields = []*field{
@@ -253,7 +251,7 @@ func (c *converter) initialize() {
{length: 2, setter: c.contactorInternalErrorsInstance.setDebug, name: FDebug},
{length: 5, setter: c.contactorInternalErrorsInstance.setPresentContactorMode, name: FPresentContactorMode},
}
c.protocolMap[key{can.CAN_ID_073, 0}] = action{
c.protocolMap[key{CanIdContIntErr, 0}] = action{
fields: fields,
interval: 1000,
name: PContactorInternalErrors,
@@ -265,7 +263,7 @@ func (c *converter) initialize() {
{length: 2, setter: c.contactorsInternalForce.setForceModeEnabled, name: FForceModeEnabled},
{length: 4, setter: c.contactorsInternalForce.setForceModeValue, name: FForceModeValue},
}
c.protocolMap[key{can.CAN_ID_074, 0}] = action{
c.protocolMap[key{CanIdContIntForce, 0}] = action{
fields: fields,
interval: 1000,
name: PContactorsInternalForce,
@@ -273,7 +271,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i < CONTACTOR_MAX; i++ {
key := key{can.CAN_ID_075, i}
key := key{CanIdContIntDebug, i}
cid := &ContactorInternalDebug{unit: unit(i)}
c.contactorInternalDebugArray[i] = cid
fields = []*field{
@@ -284,7 +282,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_067, i}
key := key{CanIdPeripheryState, i}
ps := &PeripheryState{unit: unit(i)}
c.peripheryStateArray[i] = ps
fields = []*field{
@@ -315,7 +313,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_068, i}
key := key{CanIdPeripheryInfo, i}
pi := &PeripheryInfo{unit: unit(i)}
c.peripheryInfoArray[i] = pi
fields = []*field{
@@ -329,7 +327,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i <= CONNECTOR_COUNT; i++ {
key := key{can.CAN_ID_06C, i}
key := key{CanIdPeripheryDebug, i}
pd := &PeripheryDebug{unit: unit(i)}
c.peripheryDebugArray[i] = pd
fields = []*field{
@@ -342,7 +340,7 @@ func (c *converter) initialize() {
}
for i := uint(1); i < CONVERTERS_MAX; i++ {
key := key{can.CAN_ID_061, i}
key := key{CanIdConverterPresentEnergy, i}
cpe := &ConverterPresentEnergy{unit: unit(i)}
c.converterPresentEnergyArray[i] = cpe
fields = []*field{
@@ -355,7 +353,7 @@ func (c *converter) initialize() {
}
for i := uint(1); i < CONVERTERS_MAX; i++ {
key := key{can.CAN_ID_062, i}
key := key{CanIdConverterErrors, i}
ce := &ConverterErrors{unit: unit(i)}
c.converterErrorsArray[i] = ce
fields = []*field{
@@ -381,7 +379,7 @@ func (c *converter) initialize() {
}
for i := uint(0); i < CONVERTERS_MAX; i++ {
key := key{can.CAN_ID_065, i}
key := key{CanIdConverterDebug, i}
cd := &ConverterDebug{unit: unit(i)}
c.converterDebugArray[i] = cd
fields = []*field{
+2 -2
View File
@@ -104,8 +104,8 @@ func (c *converter) EventsFromFrame(frame *can.CanFrame) ([]*Event, bool) {
return nil, false
}
func get(from uint8, size uint8, buffer []byte) (uint64, bool) {
value := binary.LittleEndian.Uint64(buffer)
func get(from uint8, size uint8, buffer *[]byte) (uint64, bool) {
value := binary.LittleEndian.Uint64(*buffer)
var mask uint64 = ^(ALL_BITS << size)
mask = mask << from