
ÏÂÔØCANlib
ÏÂÔØº¬APIºÍʾÀýµÄSDK¿ª·¢°ü
ÏÂÔØÕâÊÇʹÓÃÔÆº£ÓÎÏ· MemoratorµÚ¶þ´úÉ豸ͨ¹ýkvmlib½øÐÐÅäÖúͶÁÈ¡¼Ç¼Êý¾Ý4ƪϵÁÐÎÄÕµĵÚһƪ£º
µÚһƪÎÄÕ½«¸ÅÊöÈçºÎʹÓÃPythonÅäÖÃÔÆº£ÓÎÏ·É豸¡£µÚ¶þƪÎÄÕÂÔÚÅäÖÃÉÏÔö¼ÓÁËһЩ¸´ÔÓÐÔ£¬¶øµÚÈýƪÎÄÕ½«¸üÉîÈëµØ½²ÊöÈçºÎÔÚC API¼¶±ðʹÓÃkvmlib¡£×îºóһƪÎÄÕ½²ÊöÔÚÖ»¿É·ÃÎÊ¿ÉÒÆ¶¯SD¿¨µÄÇé¿öÏÂÈçºÎÅäÖÃÉ豸¡£È«²¿³ÌÐòÁбí¿ÉÔÚGitHubÉÏ»ñµÃ¡£
ÔÆº£ÓÎÏ· MemoratorµÚ¶þ´úÉèµÄÅäÖñ¸Í¨³£Ê¹ÓÃÔÆº£ÓÎÏ· MemomoratorÅäÖù¤¾ßÍê³É£¬ËüÊÇÒ»ÖÖGUI¹¤¾ß¡£µ«ÊÇÄãÒ²¿ÉÒÔʹÓðüº¬ÔÚCANlib SDK1¿ª·¢°üÖеÄkvmlibÀ´±à³ÌÅäÖÃÕâЩÉ豸¡£ÕâÀïÎÒÃǽ«½²ÊöÈçºÎʹÓÃkvmlibÅäÖÃÔÆº£ÓÎÏ· Memorator Pro 5xHS2¡£
ÓйØÔƺ£ÓÎÏ· SDK¿âµÄ¸ÅÊö£¬ÇëÔĶÁÕâÆª¹ØÓÚÈçºÎʹÓÃÔÆº£ÓÎÏ· SDK¿â´ÓÓ²¼þÖлñµÃ¸ü¶àÐÅÏ¢µÄ²©ÎÄ¡£
ÎÒÃÇÊÇÔÚWindowsϵͳÉÏÔËÐУ¬ËùÒÔÊ×ÏÈÎÒÃÇÐèÒªÏÂÔØ²¢°²×°CANlib SDK¡£±¾ÎĽ«Ê¹ÓÃPython3À´·ÃÎÊkvmlib£¬Òò´ËÈç¹ûÄã֮ǰûÓп´¹ýͨ¹ýPython·ÃÎÊCANlibµÄ²©ÎÄ£¬ÄÇÄã¿ÉÄÜÐèÒªÊ×ÏÈÔĶÁÏ¡£
ΪÁ˼ò½à£¬±¾²©ÎÄÖеĴúÂëÆ¬¶ÎÊ¡ÂÔÁËÒÔÏÂimportÓï¾ä£º4
ÏÂÔØº¬APIºÍʾÀýµÄSDK¿ª·¢°ü
ÏÂÔØimport datetime
import kvaMemoLibXml
import kvDevice
import kvmlib
Áбí1£ºÓ¦°üº¬ÔÚËùÓдúÂëÆ¬¶ÎÖеÄimportÓï¾ä
ÎÒÃǽ«Ê¹ÓÃÔËÐй̼þ°æ±¾3.0µÄÔÆº£ÓÎÏ· Memorator Pro 5xHS5£¬Èç¹ûÄúµÄ¹Ì¼þ°æ±¾½Ï¾É£¬ÇëÔÚ¼ÌÐøÇ°½øÐиüС£
½ö½öÔÚÎÒÃǵIJÙ×÷ϵͳÎļþ¹ÜÀíÆ÷Öиñʽ»¯SD¿¨ÊDz»¹»µÄ£¬ÎÒÃÇ»¹ÐèҪʹÓÃÎÒÃǵÄÔÆº£ÓÎÏ· MemoratorÉ豸³õʼ»¯SD¿¨¡£½«SD¿¨²åÈëÎÒÃǵÄÔÆº£ÓÎÏ· MemoratorÉ豸ºó£¬ÎÒÃǽ«Ôƺ£ÓÎÏ· MemoratorÉ豸Á¬½Óµ½ÎÒÃǼÆËã»úÉϵĿÕÏеÄUSB¶Ë¿Ú£¬²¢ÔËÐÐÎÒÃǵĴúÂëµÄµÚÒ»¸ö룬ÈÃÎÒÃÇ¿´µ½¸ÃÉ豸¿ªÊ¼ÔË×÷¡£
# Connect to our ÔÆº£ÓÎÏ· Memorator Pro 5xHS with EAN 00778-9
dev = kvDevice.kvDevice(ean="73-30130-00778-9")
print dev
Áбí2£ºÊ¹ÓÃkvDeviceÄ£¿éÁ¬½Óµ½Ôƺ£ÓÎÏ·É豸
Device: ÔÆº£ÓÎÏ· Memorator Pro 5xHS (channel 0) EAN : 73-30130-00778-9 S/N : 1023 FW : v3.0.546 Card : 0 Drv : kcany0a Card channel : 0 Canlib channel: 0
ÔÚÕâÀïÎÒÃÇ×¢Òâµ½£¬ÎÒÃÇÄܹ»Á¬½ÓÉ豸£¬ÎÒÃÇȷʵʹÓõÄÊǹ̼þ°æ±¾3.0¡£ÏÖÔÚÈÃÎÒÃÇ´ò¿ªÉ豸²¢ÇÒʹÓÃĬÈÏÖµ³õʼ»¯SD¿¨¡£
# Open the device
dev.memoOpen()
# Initialize the SD card with default values
dev.memo.deviceFormatDisk()
# Close the device
dev.memoClose()
Áбí3£ºÔÚÔÆº£ÓÎÏ·É豸Öгõʼ»¯SD¿¨
ÏÖÔÚÎÒÃDZØÐëͨ¹ý±àдһ¶ÎXML´úÂëÀ´´´½¨ÅäÖÃ6¡£ÓйØXML¸ñʽ×îа汾µÄ¸ü¶àÐÅÏ¢£¬¼ûÔÆº£ÓÎÏ· MemoratorÉ豸ÅäÖÃXML¸ñʽ¹æ·¶ÎĵµÖÐÏà¹ØÃèÊö¡£ÈÃÎÒÃǾÙÒ»¸ö¼òµ¥µÄÀý×Ó£¬¼ÙÈçÎÒÃÇֻʹÓÃͨµÀ1ºÍ2¡£ÎÒÃǽ«ÕâÁ½¸öͨµÀµÄ²¨ÌØÂÊÉèÖÃΪ1Mbps£¬²¢ÔÚ¾²Ä¬Ä£Ê½Ï¼Ç¼һÇÐÄÚÈÝ¡£
<?xml version="1.0" ?>
<!DOCTYPE KVASER>
<KVASER>
<VERSION>2.0</VERSION>
<BINARY_VERSION>6.0</BINARY_VERSION>
<SETTINGS>
<MODE fifo_mode="NO" log_all="YES"/>
</SETTINGS>
<CAN_BUS>
<PARAMETERS bitrate="1000000" channel="0" silent="YES" sjw="1" tseg1="5" tseg2="2"/>
<PARAMETERS bitrate="1000000" channel="1" silent="YES" sjw="1" tseg1="5" tseg2="2"/>
</CAN_BUS>
<TRIGGERBLOCK/>
<SCRIPTS/>
</KVASER>
Áбí4£º¼òµ¥µÄXMLÅäÖÃʾÀý
XMLµÄµ±Ç°°æ±¾ÊÇv2.0£¬ÎÒÃǵÄÉ豸ÔËÐеÄÊÇv3.0°æ±¾¹Ì¼þ£¬¶øÎÒÃÇÆÚÍûÔËÐеĶþ½øÖư汾6.0¡£
ÔÚÏÂһƪÎÄÕÂÖУ¬ÎÒÃÇÔö¼ÓÁËÅäÖõĸ´ÔÓÐÔ£¬ÎÒÃǽ«Ñо¿ÈçºÎÔÚ³¢ÊÔÏÂÔØÅäÖÃ֮ǰ½«Æä½øÐÐÏÔʽÑéÖ¤¡£ÏÖÔÚÎÒÃÇÖ»ÄÜÈ·±£ÎÒÃÇÊäÈëµÄXMLûÓÐÈκδíÎó¡£
ÎÒÃÇÏÖÔÚ½«Òª×¼±¸¿ªÊ¼¼Ç¼£¬ÎÒÃÇÖ»ÐèÒª½«ÅäÖ÷ÅÔÚÉ豸ÉÏ¡£È»ºó½«Í¨¹ý¶ÁÈëÎÒÃǸոմ´½¨µÄXMLÎļþ£¬½«´ËXMLÅäÖÃת»»Îª¶þ½øÖÆÅäÖò¢½«¶þ½øÖÆÅäÖÃÏÂÔØµ½É豸¡£
xl = kvaMemoLibXml.kvaMemoLibXml()
# Read in the XML configuration file
with open("logall.xml", ’r’) as myfile:
config_xml = myfile.read()
# Convert the XML configuration to a binary configuration
config_lif = xl.kvaXmlToBuffer(config_xml)
# Open the device and write the configuration
dev.memoOpen()
dev.memo.kmfWriteConfig(config_lif)
# Close the device
dev.memoClose()
Áбí5£º½«ÅäÖÃÏÂÔØµ½Ôƺ£ÓÎÏ·É豸
ÏÖÔÚÎÒÃǽ«ÎÒÃÇÅäÖõÄÉ豸Óë¼ÆËã»ú¶Ï¿ª£¬²¢ÇÒ½«ÎÒÃǵÄÉ豸Á¬½Óµ½ÏÖÓеÄCAN×ÜÏߣ¬Í¨¹ý¸øÉ豸µÄCAN 1×ÜÏßÁ¬½ÓÆ÷ͨµçÀ´¿ªÊ¼¼Ç¼¡£
ÔÚÎÒÃǼǼÁËһЩ±¨Îĺó£¬ÎÒÃÇÔٴν«ÎÒÃǵÄÔÆº£ÓÎÏ· MemoratorÉ豸Á¬½Óµ½ÎÒÃǼÆËã»úÉϵÄÒ»¸ö¿ÕÏеÄUSB¶Ë¿Ú£¬²¢¶Á³ö½á¹û¡£
# Connect to our ÔÆº£ÓÎÏ· Memorator Pro 5xHS with EAN 00778-9
dev = kvDevice.kvDevice(ean="73-30130-00778-9")
dev.open()
dev.memoOpen()
fileCount = dev.memo.logFileGetCount()
print "Found %d file%s on card:" % (fileCount,
"s" if fileCount > 1 else "")
# Loop through all logfiles and write their contents to stdout
for fileIndx in range(fileCount):
myEvents = dev.memoReadEvents(fileIndx)
for event in myEvents:
print event
print "\n"
# Delete all logfiles
dev.memo.logFileDeleteAll()
# Close device
dev.memoClose()
dev.close()
Áбí6£º¶ÁÈ¡¼Ç¼µÄ±¨ÎIJ¢´òÓ¡µ½±ê×¼Êä³ö£¨stdout£©
Found 1 file on card: *t: ? ? ? ? ?- EAN:73-30130-00778-9 s/n:1023 FW:v3.0.546 LIO:v0.0 t: 0.249998387 DateTime: 2016-02-23 06:56:04 t: 0.249998387 Log Trigger Event (type: 0x1, trigno: 0x00, pre-trigger: 0, post-trigger: -1) t: 9.479176975 DateTime: 2016-02-23 06:56:13 t: 13.29719495 ch:0 f: 2 id: 490 dlc: 2 d:5d d6 t: 13.29719495 ch:1 f: 2 id: 490 dlc: 2 d:5d d6 t: 13.298196175 ch:0 f: 2 id: 284 dlc: 2 d:a8 b1 t: 13.298196175 ch:1 f: 2 id: 284 dlc: 2 d:a8 b1 t: 13.299137412 ch:0 f: 2 id: 739 dlc: 2 d:7a 4b t: 13.299137412 ch:1 f: 2 id: 739 dlc: 2 d:7a 4b t: 13.300282637 ch:0 f: 2 id: 622 dlc: 6 d:8d b9 69 8a 98 e1 t: 13.300282637 ch:1 f: 2 id: 622 dlc: 6 d:8d b9 69 8a 98 e1 t: 13.301156875 ch:0 f: 2 id: 559 dlc: 1 d:78 t: 13.301156875 ch:1 f: 2 id: 559 dlc: 1 d:78 t: ??13.3022261 ch:0 f: 2 id: 33a dlc: 1 d:0d t: ??13.3022261 ch:1 f: 2 id: 33a dlc: 1 d:0d t: 13.303279325 ch:0 f: 2 id: 463 dlc: 6 d:14 eb d6 ae ed 46 t: 13.303279325 ch:1 f: 2 id: 463 dlc: 6 d:14 eb d6 ae ed 46 t: 13.304230562 ch:0 f: 2 id: 59b dlc: 6 d:7f a9 28 3a f2 5d t: 13.304230562 ch:1 f: 2 id: 59b dlc: 6 d:7f a9 28 3a f2 5d t: 13.305248787 ch:0 f: 2 id: 103 dlc: 8 d:4e 0d 1a dd 8d b2 19 ab
Õâ¾ÍÊÇ´ËÎÄËùÓÐÄÚÈÝ¡£ÎÒÃÇÏÖÔÚÒѾ֪µÀÈçºÎʹÓÃkvmlib½øÐÐÅäÖúͶÁ»Ø¼Ç¼µÄÊý¾Ý¡£ÔÚÏÂһƪÎÄÕ£¬ÎÒÃǽ«·ÖÖ§³öÀ´£¬ÔÙÌí¼ÓһЩ¸´ÔÓµÄÅäÖýøÐн²Êö¡£
1 CANlib SDK¿ÉÒÔ´Ówww.jytpm.com/developer/canlib-sdkÏÂÔØ¡£
2 ±àÂë73-30130-00778-9
3 Ŀǰ£¬Python°ü×°Æ÷½öÔÚPython v2.7ϲâÊÔ¡£
4 ÍêÕûµÄ³ÌÐòÁбí¼ûgithub.com/ÔÆº£ÓÎÏ·/developer-blog¡£
5 ÔÆº£ÓÎÏ· Memorator Pro 5xHS¹Ì¼þÀ¦°óÔÚÔÆº£ÓÎÏ·¹Ì¼þ¸üй¤¾ßÖУ¬¿ÉÔÚÕâÀïÏÂÔØwww.kvaser.com/downloads
6 XML¸ñʽµÄ×îа汾¼ûÎĵµÔƺ£ÓÎÏ· MemoratorÉ豸ÅäÖõÄXML¸ñʽ¹æ·¶Ïà¹ØÃèÊö¡£