parameters: (self, can_messenger: CanMessenger)
docstring: Send commands to set up the message groups.
docstring_summary: Send commands to set up the message groups.
docstring_tokens: Send commands to set up the message groups .
function: async def _send_groups(self, can_messenger: CanMessenger) -> None:
          """Send commands to set up the message groups."""
          for group_i, group in enumerate(self._move_groups):
              for seq_i, sequence in enumerate(group):
                  for node, step in sequence.items():
                      await can_messenger.send(
                          node_id=node,
                          message=AddLinearMoveRequest(
                              payload=AddLinearMoveRequestPayload(
                                  group_id=UInt8Field(group_i),
                                  seq_id=UInt8Field(seq_i),
                                  duration=UInt32Field(
                                      int(step.duration_sec * interrupts_per_sec)
                                  ),
                                  acceleration=Int32Field(0),
                                  velocity=Int32Field(
                                      int(interrupts_per_sec * step.velocity_mm_sec)
                                  ),
                              )
                          ),
                      )
function_tokens: async def _send_groups ( self , can_messenger : CanMessenger ) -> None : for group_i , group in enumerate ( self . _move_groups ) : for seq_i , sequence in enumerate ( group ) : for node , step in sequence . items ( ) : await can_messenger . send ( node_id = node , message = AddLinearMoveRequest ( payload = AddLinearMoveRequestPayload ( group_id = UInt8Field ( group_i ) , seq_id = UInt8Field ( seq_i ) , duration = UInt32Field ( int ( step . duration_sec * interrupts_per_sec ) ) , acceleration = Int32Field ( 0 ) , velocity = Int32Field ( int ( interrupts_per_sec * step . velocity_mm_sec ) ) , ) ) , )