@@ -32,6 +32,7 @@ def build_source(self):
3232 lines .extend (self ._build_messages ())
3333 lines .extend (self ._build_signal_states ())
3434 lines .extend (self ._build_signals ())
35+ lines .extend (self ._build_signal_managers ())
3536 lines .extend (self ._build_initializers ())
3637 lines .extend (self ._build_loop ())
3738 lines .extend (self ._build_commands ())
@@ -235,16 +236,41 @@ def _build_signals(self):
235236
236237 def block (message_set ):
237238 lines = []
238- i = 1
239+ i = 0
239240 for signal in message_set .all_signals ():
240241 if not signal .enabled :
241242 LOG .warning ("Skipping disabled signal '%s' (in 0x%x)" % (
242243 signal .generic_name , signal .message .id ))
243244 continue
244- signal .array_index = i - 1
245+ if signal .array_index is None :
246+ signal .array_index = i + +
245247 lines .append (" " * 8 + "%s" % signal )
246248 LOG .info ("Added signal '%s'" % signal .generic_name )
247- i += 1
249+ return lines
250+
251+ lines .extend (self ._message_set_lister (block ))
252+ lines .append ("};" )
253+ lines .append ("" )
254+
255+ return lines
256+
257+ def _build_signal_managers (self ):
258+ lines = []
259+ lines .append ("SignalManager SIGNAL_MANAGERS[][MAX_SIGNAL_COUNT] = {" )
260+
261+ def block (message_set ):
262+ lines = []
263+ i = 0
264+ for signal in message_set .all_signals ();
265+ if not signal .enabled :
266+ LOG .warning ("Skipping manager for disabled signal '%s' (in 0x%x)" % (
267+ signal .generic_name , signal .message .id ))
268+ continue
269+ if signal .array_index is None :
270+ signal .array_index = i + +
271+ signal_arr_str = "SIGNALS[%d][%d]" % (signal .message_set .index , signal .array_index )
272+ lines .append (" " * 8 + "{signal: &%s, frequencyClock: {%s.frequency}}," % signal_arr_str )
273+ LOG .info ("Added signal manager '%s'" % signal .generic_name )
248274 return lines
249275
250276 lines .extend (self ._message_set_lister (block ))
0 commit comments