Skip to content

Commit e77a42c

Browse files
authored
Merge pull request #117 from openxc/Signalfrequency
Signalfrequency
2 parents 074d10f + 9f1117f commit e77a42c

2 files changed

Lines changed: 21 additions & 14 deletions

File tree

openxc/generator/structures.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import operator
22
import math
33
from collections import defaultdict
4+
from openxc.utils import fatal_error
45

56
import logging
67

@@ -353,6 +354,14 @@ def merge_signal(self, data):
353354
"%s is deprecated and has no effect " % self.generic_name +
354355
" - see the replacement, max_frequency")
355356

357+
signal_attributes = dir(self)
358+
data_attributes = list(data.keys())
359+
extra_attributes = set(data_attributes) - set(signal_attributes)
360+
361+
if extra_attributes:
362+
fatal_error('ERROR: Signal %s in %s has unrecognized attributes: %s' % (self.name, self.message.name, ', '.join(extra_attributes)))
363+
364+
356365
@property
357366
def decoder(self):
358367
decoder = getattr(self, '_decoder', None)

tests/mapped_signals.json.example

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,26 @@
22
"messages": {
33
"0x128": {
44
"name": "ECM_z_5D2",
5+
"handlers": ["handleInvertedSteeringWheel","ignoreHandler","handleSteeringWheelMessage"],
56
"signals": {
67
"StrAnglAct": {
78
"generic_name": "SteeringWheelAngle",
89
"bit_position": 52,
910
"bit_size": 12,
1011
"factor": 0.15392,
11-
"offset": 0,
12-
"handler": "handleInvertedSteeringWheel"},
12+
"offset": 0
13+
},
1314
"StrAnglSign": {
1415
"generic_name": "steering_angle_sign",
15-
"handler": "ignoreHandler",
1616
"bit_position": 52,
17-
"bit_size": 12},
17+
"bit_size": 12
18+
},
1819
"EngSpd": {
1920
"generic_name": "engine_speed",
2021
"max_frequency": 5,
2122
"bit_position": 12,
22-
"bit_size": 8},
23+
"bit_size": 8
24+
},
2325
"GrshftPos": {
2426
"generic_name": "GearshiftPosition",
2527
"bit_position": 41,
@@ -31,23 +33,21 @@
3133
"FOURTH": [4],
3234
"REVERSE": [5],
3335
"NEUTRAL": [6]}
34-
},
36+
},
3537
"StrAnglErr": {
36-
"handler": "ignoreHandler",
3738
"generic_name": "steering_wheel_angle_error",
3839
"bit_position": 44,
3940
"bit_size": 12
4041
}
41-
},
42-
"handlers": ["handleSteeringWheelMessage"]
42+
}
4343
},
4444
"0x49": {
4545
"name": "BrkSt",
46+
"handlers": ["booleanHandler"],
4647
"signals": {
4748
"BrakePedalPosition": {
4849
"generic_name": "brake_pedal_status",
4950
"send_same": false,
50-
"handler": "booleanHandler",
5151
"bit_position": 0,
5252
"bit_size": 0
5353
}
@@ -58,19 +58,17 @@
5858
"signals": {
5959
"TurnSignalLeft": {
6060
"generic_name": "turn_signal_left",
61-
"handler": "booleanHandler",
6261
"bit_position": 0,
6362
"bit_size": 0,
6463
"writable": true,
65-
"write_handler": "booleanWriter"
64+
"encoder": "booleanWriter"
6665
},
6766
"TurnSignalRight": {
6867
"generic_name": "turn_signal_right",
69-
"handler": "booleanHandler",
7068
"bit_position": 1,
7169
"bit_size": 0,
7270
"writable": true,
73-
"write_handler": "booleanWriter"
71+
"encoder": "booleanWriter"
7472
}
7573
}
7674
}

0 commit comments

Comments
 (0)