• ¼¼Êõ²©¿Í

    29/03/2016 ×÷Õß ÔÆº£ÓÎÏ·

    kvmlibÈëÃÅÖ¸ÄÏ ¡ª ÈçºÎʹÓÃkvmlibÅäÖÃÔÆº£ÓÎÏ· Memorator Pro 5xHS

    ÕâÊÇʹÓÃÔÆº£ÓÎÏ· MemoratorµÚ¶þ´úÉ豸ͨ¹ýkvmlib½øÐÐÅäÖúͶÁÈ¡¼Ç¼Êý¾Ý4ƪϵÁÐÎÄÕµĵÚһƪ£º

    1. kvmlibÈëÃÅÖ¸ÄÏ
    2. ÔÚÅäÖÃÖÐÌí¼Ó½Å±¾ºÍ´¥·¢Æ÷
    3. ÉîÈëÁ˽âkvmlib
    4. ʹÓÃkvmlibÅäÖÃSD¿¨

    µÚһƪÎÄÕ½«¸ÅÊöÈçºÎʹÓÃPythonÅäÖÃÔÆº£ÓÎÏ·É豸¡£µÚ¶þƪÎÄÕÂÔÚÅäÖÃÉÏÔö¼ÓÁËһЩ¸´ÔÓÐÔ£¬¶øµÚÈýƪÎÄÕ½«¸üÉîÈëµØ½²ÊöÈçºÎÔÚC API¼¶±ðʹÓÃkvmlib¡£×îºóһƪÎÄÕ½²ÊöÔÚÖ»¿É·ÃÎÊ¿ÉÒÆ¶¯SD¿¨µÄÇé¿öÏÂÈçºÎÅäÖÃÉ豸¡£È«²¿³ÌÐòÁбí¿ÉÔÚGitHubÉÏ»ñµÃ¡£

    1.1 ¼ò½é

    ÔÆº£ÓÎÏ· MemoratorµÚ¶þ´úÉèµÄÅäÖñ¸Í¨³£Ê¹ÓÃÔÆº£ÓÎÏ· MemomoratorÅäÖù¤¾ßÍê³É£¬ËüÊÇÒ»ÖÖGUI¹¤¾ß¡£µ«ÊÇÄãÒ²¿ÉÒÔʹÓðüº¬ÔÚCANlib SDK1¿ª·¢°üÖеÄkvmlibÀ´±à³ÌÅäÖÃÕâЩÉ豸¡£ÕâÀïÎÒÃǽ«½²ÊöÈçºÎʹÓÃkvmlibÅäÖÃÔÆº£ÓÎÏ· Memorator Pro 5xHS2¡£

    ÓйØÔƺ£ÓÎÏ· SDK¿âµÄ¸ÅÊö£¬ÇëÔĶÁÕâÆª¹ØÓÚÈçºÎʹÓÃÔÆº£ÓÎÏ· SDK¿â´ÓÓ²¼þÖлñµÃ¸ü¶àÐÅÏ¢µÄ²©ÎÄ¡£

    ÎÒÃÇÊÇÔÚWindowsϵͳÉÏÔËÐУ¬ËùÒÔÊ×ÏÈÎÒÃÇÐèÒªÏÂÔØ²¢°²×°CANlib SDK¡£±¾ÎĽ«Ê¹ÓÃPython3À´·ÃÎÊkvmlib£¬Òò´ËÈç¹ûÄã֮ǰûÓп´¹ýͨ¹ýPython·ÃÎÊCANlibµÄ²©ÎÄ£¬ÄÇÄã¿ÉÄÜÐèÒªÊ×ÏÈÔĶÁÏ¡£

    ΪÁ˼ò½à£¬±¾²©ÎÄÖеĴúÂëÆ¬¶ÎÊ¡ÂÔÁËÒÔÏÂimportÓï¾ä£º4

    ÏÂÔØCANlib

    ÏÂÔØCANlib

    ÏÂÔØº¬APIºÍʾÀýµÄSDK¿ª·¢°ü

    ÏÂÔØ
    import datetime
    
    import kvaMemoLibXml
    import kvDevice
    import kvmlib

    Áбí1£ºÓ¦°üº¬ÔÚËùÓдúÂëÆ¬¶ÎÖеÄimportÓï¾ä

    ÎÒÃǽ«Ê¹ÓÃÔËÐй̼þ°æ±¾3.0µÄÔÆº£ÓÎÏ· Memorator Pro 5xHS5£¬Èç¹ûÄúµÄ¹Ì¼þ°æ±¾½Ï¾É£¬ÇëÔÚ¼ÌÐøÇ°½øÐиüС£

    1.2 ³õʼ»¯SD¿¨

    ½ö½öÔÚÎÒÃǵ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¿¨

    1.3 ´´½¨ÅäÖÃ

    ÏÖÔÚÎÒÃ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ûÓÐÈκδíÎó¡£

    1.4 ÏÂÔØÅäÖÃ

    ÎÒÃÇÏÖÔÚ½«Òª×¼±¸¿ªÊ¼¼Ç¼£¬ÎÒÃÇÖ»ÐèÒª½«ÅäÖ÷ÅÔÚÉ豸ÉÏ¡£È»ºó½«Í¨¹ý¶ÁÈëÎÒÃǸոմ´½¨µÄ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×ÜÏßÁ¬½ÓÆ÷ͨµçÀ´¿ªÊ¼¼Ç¼¡£

    1.5 ¶ÁÈ¡Ëù¼Ç¼µÄ±¨ÎÄ

    ÔÚÎÒÃǼǼÁËһЩ±¨Îĺó£¬ÎÒÃÇÔٴν«ÎÒÃǵÄÔÆº£ÓÎÏ· 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¸ñʽ¹æ·¶Ïà¹ØÃèÊö¡£

    Author Image

    Logan Via

    ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿