$ robot --versionRobot Framework 3.0.2 (Python 3.5.2 on linux)
$ robot -P . --test "*Setup" --test "*Speed" ./c4_slingshot.robot
[ ERROR ] Error in test library 'ttCanLibrary': Creating keyword 'Is Alive' failed: Keyword with same name defined multiple times.
class ttCanLibrary(threading.Thread):
ROBOT_LIBRARY_SCOPE = 'TEST SUITE'
def __init__(self):
threading.Thread.__init__(self, name="MainSndRecv")
logging.basicConfig(level=logging.DEBUG)
self.bus=None
self.keepGoing = False
self.semTx = threading.Semaphore()
self.semLst = threading.Semaphore()
self.perodicList = []
self.protocol = J1939.J1939()
self.traplist = {}
.....
# lots of stuff below..
Library ttCanLibrary
Library Dialogs
Suite Setup j1939 start ${TESTER_ADDRESS} 64 [65]
Suite Teardown j1939 stop def j1939_start(self, ecu_addr=0, key_gen=None, secondary_addrs=None):
logger.info('j1939_start: suite start, ecu_addr=%s __name__=%s, secondary=%s' % (ecu_addr, __name__, secondary_addrs))
try:
interfaces = subprocess.check_output('ifconfig')
canIF = re.search('.*(can[0-9]).*', str(interfaces)).group(1)
except:
logging.exception("j1939_start: Failed to locate CAN interface, is the interface started?")
raise
if callable(key_gen):
keyFunction = key_gen
else:
keyFunction = None
logger.info('j1939_start: discovered can interface %s' % canIF )
self.ecu_addr = self._valueParm(ecu_addr)
self.bus = j1939.Bus( channel=canIF,
broadcast=None,
name='j1939StartGeneral',
keygen=keyFunction,
ignoreCanSendError=True)
addrs = [ecu_addr]
if isinstance(secondary_addrs, list):
logger.debug('WWWW: j1939_start: discovered secondary addrs %s' % secondary_addrs )
addrs = addrs + secondary_addrs
self.node = j1939.Node(self.bus, j1939.NodeName(0), [ecu_addr])
self.bus.connect(self.node)
self.reader = can.BufferedReader()
self.notifier = can.Notifier(self.bus, [self.reader], 0.01)
self.dispatch = Dispatcher(self, self.reader);
self.dispatch.start()
self.keepGoing = True
self.start()
logger.info('j1939_start: suite start, ecu_addr=%s __name__=%s' % (ecu_addr, __name__))