Skip to content

Commit 9c75724

Browse files
committed
Fix to sending cyclic tasks with socketcan_native
1 parent 4699845 commit 9c75724

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

can/interfaces/socketcan_native.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,18 @@ def dissect_can_frame(frame):
112112
return (can_id, can_dlc, data[:can_dlc])
113113

114114

115+
def create_bcm_socket(channel):
116+
"""create a broadcast manager socket and connect to the given interface"""
117+
try:
118+
s = socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_BCM)
119+
except AttributeError:
120+
raise SystemExit("To use BCM sockets you need Python3.4 or higher")
121+
try:
122+
s.connect((channel,))
123+
except OSError as e:
124+
log.error("Couldn't connect a broadcast manager socket")
125+
raise e
126+
return s
115127

116128

117129
class CyclicSendTask(CyclicSendTaskABC):
@@ -127,18 +139,6 @@ def __init__(self, channel, message, period):
127139
self.bcm_socket = create_bcm_socket(channel)
128140
self._tx_setup(message)
129141
self.message = message
130-
def create_bcm_socket(channel):
131-
"""create a broadcast manager socket and connect to the given interface"""
132-
try:
133-
s = socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_BCM)
134-
except AttributeError:
135-
raise SystemExit("To use BCM sockets you need Python3.4 or higher")
136-
try:
137-
s.connect((channel,))
138-
except OSError as e:
139-
log.error("Couldn't connect a broadcast manager socket")
140-
raise e
141-
return s
142142

143143
def _tx_setup(self, message):
144144
# Create a low level packed frame to pass to the kernel
@@ -164,8 +164,6 @@ def modify_data(self, message):
164164
"""
165165
assert message.arbitration_id == self.can_id, "You cannot modify the can identifier"
166166
self._tx_setup(message)
167-
self.message
168-
169167

170168
def start(self):
171169
self._tx_setup(self.message)

0 commit comments

Comments
 (0)