• ¼¼Êõ²©¿Í

    29/05/2015 ×÷Õß ÔÆº£ÓÎÏ·

    ʹÓÃkvmlibºÍPython¼ì²é¼Ç¼µÄÊý¾Ý

    ½ñÌìÎÒÃÇÀ´¿´¿´ÈçºÎ¶ÁÈ¡¼Ç¼µÄÊý¾Ý£¬ÒÔ¼°ÈçºÎʹÓÃkvmlib½«Êý¾ÝÓë¼àÊÓÆ÷¹ØÁªÆðÀ´¡£ÎÒÃÇͨ¹ý¼Ç¼һЩÑù±¾Êý¾Ý£¬È»ºóʹÓÃPython°ü×°Æ÷³¢ÊÔ·ÖÎöËü¡£

    1.1 Éú³ÉºÍ¼Ç¼Êý¾Ý

    ÈÃÎÒÃÇ¿ªÊ¼Éú³ÉһЩÊý¾Ý¡£ÎÒÃÇʹÓÃtÑù±¾³ÌÐòhistogram_stimuli.t£¬Ëü°üº¬ÔÚCANlib SDK(Samples\tScript\histogram\histogram_stimuli.t).ÖС£Õâ¸ö³ÌÐòʹÓÃËĸö±¨ÎÄ; ECM_001£¬ECM_003£¬ECM_004ºÍLIM_002¡£ÕâЩ±¨Îİüº¬ÁËEngineSpeed£¬EngineTemp£¬FuelºÍLoadµÈÐźÅ¡£

    used-signals-and-their-main-attributes

    ±í1£ºÊ¹ÓõÄÐźż°ÆäÖ÷ÒªÊôÐÔ

    t³ÌÐòÔÚ±¨ÎÄÖ®¼äÉú³ÉËæ»úÊýÖµºÍÑÓ³Ù£¨ÔÚinit_stimuli_ctrl()ÖÐÉèÖõķ¶Î§ÄÚ£©¡£ÏÖÔÚÅäÖÃEagleÓÃÀ´¡°¼Ç¼ËùÓС±£¬Æô¶¯t³ÌÐò²¢ÈÃËü¼Ç¼¼¸·ÖÖÓ¡£

    1.2 ·¢¶¯»úζȺÎʱԼΪ161¡ãC£¿

    ÎÒÃÇÏë»Ø´ðµÄµÚÒ»¸öÎÊÌâÊÇ¡°·¢¶¯»úζȺÎʱΪ161¡ãC£¿¡±¡£ £¨Õâ¿ÉÄܲ»ÊÇÏÖʵÊÀ½çÖÐ×î¾ß¹¤³ÌѧµÄÎÊÌ⣬µ«ÊÇÓÉÓÚÎÒÃǵÄÊý¾ÝÊÇÍêÈ«Ëæ»úµÄ£¬ËùÒÔÎÒÏàÐÅ¿ÉÒÔÖ±¹ÛµØ¿´³öÎÒÃÇÈçºÎÔÚ¶ÁÈ¡ÈÕÖ¾Îļþʱ»ñµÃ¾ø¶ÔµÄʱ¼ä¡££©

    Èç¹ûÎÒÃÇ´ÓÒ»¿ªÊ¼¾ÍÖªµÀÕâ¸öÎÊÌ⣬ÎÒÃÇ¿ÉÒÔÌí¼Ó¼¸¸ö´¥·¢Æ÷£¬Ö»Òª·¢¶¯»úζȽéÓÚ159¡ãCµ½163¡ãCÖ®¼ä£¬¾Í»á¿ªÊ¼¼Ç¼£¨µ±³¬³ö´Ë·¶Î§Ê±Í£Ö¹¼Ç¼£©¡£µ«ÏÖÔÚÈÃÎÒÃǶÁ³öËùÓмǼµÄÊý¾Ý£¬²¢ÔÚ·¢¶¯»úζÈÔÚ159¡ãCºÍ163¡ãCÖ®¼äʱÊä³öÊý¾Ý¡£

    ÔÚÔËÐгÌÐò1֮ǰ£¬ÈÃÎÒÃÇÏÈÀ´¿´¿´Ö÷Òª²¿·Ö¡£ÎÒÃÇÊ×Ïȶ¨ÒåÒ»¸öº¯Êý£¬ÕÒµ½ÎÒÃǽøÐлỰµÄÉ豸£¬È»ºó´ò¿ªËüÀ´»ñȡһЩ¾ä±ú¡£

    def readEventsFromDevice(ean, channel, msgId):
    # Read all events from device matching ean, channel and msgId
    print "Open device..."
    # Create a device with the selected EAN number
    dev = kvDevice.kvDevice(ean=ean)
    # Open a device that matches our criteria (EAN)
    dev.memoOpen()
    # Mount the log files so we can acces them
    dev.memo.deviceMountKmf()
    # Read out how many log files that are availible on the card
    fileCount = dev.memo.logFileGetCount()
    print "Found %d file%s on card:" % (fileCount, "s" if fileCount > 1 else "")

    ´ÓÉÏÃæµÄ´úÂëÆ¬¶ÎÖпÉÒÔ¿´³ö£¬ÎÒÃÇÊ×ÏÈʹÓÃkvDevice°ïÖú³ÌÐòÄ£¿éÀ´¶¨ÒåÎÒÃǵÄÉ豸²¢´ò¿ªÒ»¸ö¾ä±ú¡£È»ºóÎÒÃÇ´ò¿ªÉ豸µÄkvmhandle?£¨Ê¹ÓÃmemoOpen()£©£¬È»ºóÎÒÃÇͨ¹ýdeviceMountKmf()»ñÈ¡É豸ÉϵÄÈÕÖ¾Îļþ¡£È»ºóÎÒÃǶÁ³ö¿¨ÉϵÄÈÕÖ¾ÎļþÊý¡£2

           # Now we read all events from each file found on the card.
           for fileIndx in range (fileCount):
               # When mounting the logfile, we get an aproximate value back
               eventCount = dev.memo.logFileMount(fileIndx)
               print "File %3d: Contains less than %d events" % (fileIndx, eventCount)
               # We read out when the logging was started
               startTime = dev.memo.logFileGetStartTime()
               print "Logging started at %s\n" % startTime

    ÎÒÃÇÒÀ´Îͨ¹ýÿ¸öÈÕÖ¾Îļþ²¢¹ÒÔØËü¡£3?¹ÒÔØÈÕÖ¾Îļþ»¹»á·µ»ØÒ»¸öʼþ¼ÆÊý£¬ÆäÖаüº¬¡°ÈÕÖ¾ÎļþÖеĴó¸ÅʼþÊý¡±¡£4?È»ºó£¬ÎÒÃǶÁ³öÈÕÖ¾ÎļþÆô¶¯µÄʱ¼ä£¬¼ÇסÕâµãÒÔ±ãºóÀ´Ê¹Óá£

               while True:
                   # Read events from the log file, when no more events are availible,
                   # 'None' will be returned
                   event = dev.memo.logReadEventEx()
                   if event is None:
                       break

    ÎÒÃÇÏÖÔÚÔÚÒ»¸öÑ­»·ÖÐÖð¸ö¶Á³öʼþ£¬Ö±µ½Ã»ÓÐʼþ¿É¶Á¡£

                   # We are only interested in events that are log messages
                   if type(event) is kvmlib.logMsg:
                       # Also filter on message id and channel number
                       if event.id == msgId and event.channel == channel:

    ÒòΪÎÒÃÇÖ»¶ÔÒ»ÖÖÀàÐ͵ÄÈÕÖ¾±¨ÎĸÐÐËȤ£¬ÎÒÃǽ«ÆäËü±¨Îͼ¹ýÂ˵ô¡£5 ÎÒÃÇ»¹¿É¹ýÂ˵ôÎÒÃǸÐÐËȤµÄ¿¨ÉϵÄͨµÀºÅ¡£6

                           # We know the message data is a float, so convert it to a
                           # more usable format
                           value = raw2float(event.data)
                           # Now filter on the value
                           if value > 159 and value < 163:
                               # Get the time of the event
                               eventTime = getEventTime(startTime, event)
                               print "%s, Msg id %d value %f on channel %d:" % (eventTime, msgId, value, channel)
                               #print event

    ÎÒÃǽ«Ô­Ê¼Öµ×ª»»Îªº¯Êýraw2float()ÖеÄfloat¡£²é¿´Êý¾Ý¿â£¬ÎÒÃÇ¿´µ½ÕâÊÇÒ»¸öÖ±½ÓÓ³É䣨ÀàÐÍfloat£¬¸ñʽIntel£¬¿ªÊ¼Î»0£¬³¤¶È32£¬Òò×Ó1Æ«ÒÆÁ¿0£©¡£Èç¹ûÖµÔÚ159ºÍ163Ö®¼ä£¬ÎÒÃÇÔÚº¯ÊýgetEventTime()ÖмÆËãʼþµÄ¾ø¶Ôʱ¼ä£¬²¢×îÖÕÊä³öÊý¾Ý¡£

               print "n"
               # Dismount to free up resources
               dev.memo.logFileDismount()
           # We are done, close the kvmlib handle to device
           dev.memoClose()

    µ±¶ÁÈ¡ËùÓÐʼþºó£¬ÎÒÃÇÐ¶ÔØÈÕÖ¾Îļþ²¢¼ÌÐø¶ÁÈ¡ÏÂÒ»¸ö¡£ÔÚ¶ÁÈ¡ËùÓÐÈÕÖ¾Îļþºó£¬ÎÒÃǹرÕÉ豸µÄ¾ä±ú¡£

    ͨ¹ý½«ÈÕÖ¾ÎļþµÄ¿ªÊ¼Ê±¼äÌí¼Óµ½Ê¼þµÄʱ¼ä´Á£¬ÔÚº¯ÊýgetEventTime()ÖмÆËãʼþµÄ¾ø¶Ôʱ¼ä¡£

       def getEventTime(startTime, event):
           # The event timestamp is given in nanoseconds. This function converts it to
           # seconds, and returns the sum of startTime and event time (as a Python
           # datetime object).
           offsetInSeconds = event.timeStamp/1000000000.0
           return startTime + datetime.timedelta(seconds=offsetInSeconds)

    Çë×¢Ò⣬ʱ¼ä´ÁÒÔÄÉÃëΪµ¥Î»£¬Òò´ËÎÒÃÇÐèÒª½«Æäת»»ÎªÃ룬ȻºóÔÙʹÓÃPython datetime°ü½«ÆäÌí¼Óµ½ÈÕÖ¾ÎļþµÄ¿ªÊ¼Ê±¼ä¡£

       # Read all events with message id 503, on the first channel, from the first
       # device with EAN 73-30130-00567-9.
       readEventsFromDevice(ean="73-30130-00567-9", channel=0, msgId=503)

    ÈçÉÏÃæ´úÂëËùʾµ÷ÓÃÎÒÃǵĺ¯Êý»á²úÉúÒÔÏÂÊä³ö£º

    Open device...
    Found 1 file on card:
    
    File   0: Contains less than 960 events
    Logging started at 2015-05-17 12:48:26
    
    2015-05-17 12:49:07.510234, Msg id 503 value 160.418518 on channel 0:
    2015-05-17 12:49:39.647368, Msg id 503 value 159.750595 on channel 0:
    2015-05-17 12:49:44.642380, Msg id 503 value 161.818268 on channel 0:
    2015-05-17 12:49:59.753440, Msg id 503 value 160.477036 on channel 0:
    2015-05-17 12:50:10.433490, Msg id 503 value 162.389267 on channel 0:
    2015-05-17 12:50:16.684522, Msg id 503 value 159.377579 on channel 0:
    2015-05-17 12:50:53.411675, Msg id 503 value 160.748947 on channel 0:
    2015-05-17 12:51:00.961706, Msg id 503 value 159.282867 on channel 0:

    ÔÚ´òÓ¡Êä³öÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬ÔÚ2015-05-17 12£º49£º59.753440ÖÐÒÑʶ±ðµ½160.477¡ãC¡£

    Èç¹ûÎÒÃÇûÓÐÌ«¶àµÄÊý¾Ý£¬ÁíÒ»ÖÖ·½Ê½ÊÇÌáÈ¡µ½.csv²¢¶ÔÁнøÐÐÅÅÐòÒÔÕÒµ½ÕýÈ·Öµ¡£ÏÖÔÚÈÃÎÒÃǾÍÕâÑù×ö£¬ÒòΪÕ⽫ʹÎÒÃÇÔÚʱ¼äÁìÓòÖж´²ì¸ü¶à

    1. ½«MemoratorÁ¬½Óµ½PC¡£
    2. Æô¶¯ÏàÓ¦µÄÔÆº£ÓÎÏ· MemoratorÅäÖù¤¾ß£¨ÀýÈçʹÓÃEagle¿ì½Ý·½Ê½£©²¢Á¬½Óµ½ÄãµÄÉ豸¡£
    3. תµ½Ñ¡ÏÈÕÖ¾Îļþ¡£
    4. µ¥»÷¡°ÁгöÎļþ¡±£¨List files£©ÒÔË¢ÐÂÁÐ±í¡£
    5. µ¥»÷¡°ÌáÈ¡Îļþ…¡±£¨Extract files¡­£©¡£
    6. ÉèÖÃÎļþ´æ´¢Î»ÖúÍÎļþÃûÑ¡Ïµ¥»÷¡°ÏÂÒ»²½¡±¡£
    7. ½«ÌáÈ¡µÄÎļþ¸ñʽÉèÖÃΪ¡°CSV¸ñʽѡ¶¨Ðźš±£¨Selected signals in CSV format£©£¬µ¥»÷¡°ÏÂÒ»²½¡±¡£
    8. µ¥»÷Ìí¼ÓÊý¾Ý¿â£¨Add Database£©²¢Ñ¡Ôñhistogram.dbc£¨ÔÚSamplestScript histogramhistogram.dbcÖÐÕÒµ½£©¡£
    9. Ë«»÷Ðźš°EngineTemp¡±£¬µ¥»÷ÏÂÒ»²½¡£
    10. È·±£¡°Ê±¼ä´ÁÆ«ÒÆÁ¿¡±£¨Time stamp offset£©ÉèÖÃΪ¡°¿ªÊ¼²âÁ¿¡±£¨Start of measurement£©£¬²¢Ñ¡ÖС°¸ß·Ö±æÂÊAbsTime¡±£¨High resolution AbsTime£©£¨ÔÚCSVÎļþÑ¡ÏîÏ£¬²Î¼ûͼ1£©¡£Èç¹ûÄãÏñÎÒÒ»ÑùʹÓ÷ÇÓ¢Óï°æ±¾µÄMS Excel£¬Çë¸ù¾ÝÐèÒªµ÷Õû¡°·Ö¸ô·û¡±(;)ºÍ¡°Ê®½øÖÆ·Ö¸ô·û¡±(,)£¬ÒÔ±ãµç×Ó±í¸ñ³ÌÐò½«ÊýÖµÊÓΪÊý×Ö£¨¶ø²»ÊÇÎı¾£©¡£µ¥»÷¡°Íê³É¡±¡£
       # Filter out log messages that are outside of our time range
       time = startTime + datetime.timedelta(seconds=event.timeStamp/1000000000.0)
       if time >= firstTime and time <= lastTime:       #
           msgId = event.id
           # We know the message data is a float, so convert it to a
           # more usable format
           value = raw2float(event.data)
           # Get the time of the event
           eventTime = getEventTime(startTime, event)
           print "%s, Msg id %d value %f on channel %d:" % (eventTime, msgId, value, channel)

    Õâ´ÎÎÒÃÇÃüÃûº¯ÊýreadTimedEventsFromDevice()²¢µ÷ÓÃËü£¬ÈçÏÂËùʾ¡£

       # Read all events with message id 503, on the first channel, from the first
       # device with EAN 73-30130-00567-9 that was recorded between 2015-05-17 12:49:10
       # and 2015-05-17 12:49:20.
       startTime = datetime.datetime.strptime("2015-05-17 12:49:10", "%Y-%m-%d %H:%M:%S")
       endTime = datetime.datetime.strptime("2015-05-17 12:49:20", "%Y-%m-%d %H:%M:%S")
       print "nLooking at %s - %s" % (startTime,endTime)
       readTimedEventsFromDevice(ean="73-30130-00567-9", channel=0, msgId=503, firstTime=startTime, lastTime=endTime)

    µ÷Óøú¯Êý½«²úÉúÒÔÏÂÊä³ö£º

    Looking at 2015-05-17 12:49:10 - 2015-05-17 12:49:20
    Open device...
    Found 1 file on card:
    
    File   0: Contains less than 960 events
    Logging started at 2015-05-17 12:48:26
    
    2015-05-17 12:49:10.189224, Msg id 503 value 8.356499 on channel 0:
    2015-05-17 12:49:10.425245, Msg id 503 value 148.579849 on channel 0:
    2015-05-17 12:49:10.683234, Msg id 503 value -21.685257 on channel 0:
    2015-05-17 12:49:10.853234, Msg id 503 value 33.064117 on channel 0:
    2015-05-17 12:49:10.935236, Msg id 503 value -29.684952 on channel 0:
    2015-05-17 12:49:11.320254, Msg id 503 value 54.329140 on channel 0:
    2015-05-17 12:49:11.692243, Msg id 503 value -28.083881 on channel 0:
    2015-05-17 12:49:11.770270, Msg id 503 value -48.805271 on channel 0:
    2015-05-17 12:49:12.234247, Msg id 503 value 117.977112 on channel 0:
    2015-05-17 12:49:12.294250, Msg id 503 value 72.071869 on channel 0:
    2015-05-17 12:49:12.690248, Msg id 503 value 26.443817 on channel 0:
    2015-05-17 12:49:13.132250, Msg id 503 value 74.562210 on channel 0:
    2015-05-17 12:49:13.146244, Msg id 503 value 84.493378 on channel 0:
    2015-05-17 12:49:13.184243, Msg id 503 value -30.005280 on channel 0:
    2015-05-17 12:49:13.375251, Msg id 503 value -10.720951 on channel 0:
    2015-05-17 12:49:13.821248, Msg id 503 value 58.475220 on channel 0:
    2015-05-17 12:49:14.184254, Msg id 503 value 176.979965 on channel 0:
    2015-05-17 12:49:14.427251, Msg id 503 value -37.418663 on channel 0:
    2015-05-17 12:49:14.624254, Msg id 503 value 197.064117 on channel 0:
    2015-05-17 12:49:14.646256, Msg id 503 value 175.246704 on channel 0:
    2015-05-17 12:49:14.715250, Msg id 503 value -54.334503 on channel 0:
    2015-05-17 12:49:15.017257, Msg id 503 value 18.197182 on channel 0:
    2015-05-17 12:49:15.303258, Msg id 503 value 110.723022 on channel 0:
    2015-05-17 12:49:15.337259, Msg id 503 value 86.609604 on channel 0:
    2015-05-17 12:49:15.758269, Msg id 503 value 40.770157 on channel 0:
    2015-05-17 12:49:15.975262, Msg id 503 value 71.019363 on channel 0:
    2015-05-17 12:49:16.342263, Msg id 503 value 95.364639 on channel 0:
    2015-05-17 12:49:16.475266, Msg id 503 value 124.447952 on channel 0:
    2015-05-17 12:49:16.740282, Msg id 503 value 81.019073 on channel 0:
    2015-05-17 12:49:16.796267, Msg id 503 value 171.284988 on channel 0:
    2015-05-17 12:49:16.911271, Msg id 503 value 189.340149 on channel 0:
    2015-05-17 12:49:16.984273, Msg id 503 value 163.904785 on channel 0:
    2015-05-17 12:49:17.276268, Msg id 503 value -33.255932 on channel 0:
    2015-05-17 12:49:17.434269, Msg id 503 value -52.797394 on channel 0:
    2015-05-17 12:49:17.470280, Msg id 503 value -10.525452 on channel 0:
    2015-05-17 12:49:17.929274, Msg id 503 value 49.282883 on channel 0:
    2015-05-17 12:49:17.973638, Msg id 503 value 184.748627 on channel 0:
    2015-05-17 12:49:18.109271, Msg id 503 value 36.713226 on channel 0:
    2015-05-17 12:49:18.543270, Msg id 503 value -41.598648 on channel 0:
    2015-05-17 12:49:18.617276, Msg id 503 value 172.797897 on channel 0:
    2015-05-17 12:49:18.686271, Msg id 503 value 19.661766 on channel 0:
    2015-05-17 12:49:18.974271, Msg id 503 value 187.943726 on channel 0:
    2015-05-17 12:49:19.374277, Msg id 503 value 39.316628 on channel 0:
    2015-05-17 12:49:19.657277, Msg id 503 value 79.659393 on channel 0:

    ËùÒÔ£¬ÎÒÃǵõ½£¬EngineTempµÄËùÓÐÖµÔÚ12:49:10ºÍ12:49:20Ö®¼ä¡£


    ͼ1£ºÔƺ£ÓÎÏ· MemoratorÅäÖù¤¾ßÖÐÌáÈ¡Ïòµ¼µÄ×îºóÒ»²½

    ÔÚµç×Ó±í¸ñ³ÌÐòÖдò¿ªµ¼³öµÄ.csv£¬¶Ô°üº¬EngineTempµÄÁнøÐÐÅÅÐò£¬²¢ÏòϹö¶¯µ½EngineTempΪ160¡ãCʱ£¬²Î¼ûͼ2¡£¶ÁÈ¡AbsTimeÁУ¬ÎÒÃÇÏÖÔÚ¿ÉÒÔ¿´µ½EngineTempΪÀýÈç160.477¡ãC at 2015-05-17T11:49:59.6651¡£

    ͼ2£ºÊ¹Ó᰸߷ֱæÂÊAbsTime¡±½âѹËõºóÉú³ÉµÄ.csvÎļþµÄÒ»²¿·Ö

    µ«ÊÇ£¬Python³ÌÐò²»ÊÇÒѾ­ÏÔʾ¡°12£º49£º59.753440¡±£¿ Êǵģ¬Äã·¢Ïֵúã¬ÕâÊÇÕýÈ·µÄ¡£

    Ê×ÏÈ£¬11:49ºÍ12:49ʱ¼ä²îÊÇ»ùÓÚUnixʱ¼äºÍµ±µØÊ±¼äµÄ²îÒì¡£ Unixʱ¼äÊÇ¡°´ÓÊÀ½çЭµ÷ʱ¼ä£¨UTC£©1970Äê1ÔÂ1ÈÕÐÇÆÚËÄ00:00:00ÆðÒѾ­¹ýÈ¥µÄÃëÊý¡±¡£7?ÕâÒâζ×ÅÔÚ½«Unixʱ¼äת»»µ½±¾µØÊ±¼äʱӦ¿¼ÂÇÊ±ÇøºÍÏÄÁîʱ¡£ MemoratorÖеÄʵʱʱÖÓÊÇÒÔUnixʱ¼äÉèÖõģ¬PythonÏà¶Ô¶øÑԱȽϷ½±ã£¬ÊDZ¾µØÊ±¼ä¡£ .csv±íÒ²ÊÇ»ùÓÚUTCʱ¼ä£¬µ«ÕâµãûÓÐÏòµç×Ó±í¸ñ³ÌÐò˵Ã÷£¬Òò´ËÕâÆäÖоÍÓÐÒ»¸öСʱµÄ²îÒì¡£

    ÄÇôʣϵÄ883 msµÄ²îÒìÄØ£¿ÕâÊÇÓÉÓÚʱ¼ä´ÁÆ«ÒÆµ¼ÖµÄ¡£ÈÃÎÒÃÇͨ¹ýÌáÈ¡µ½¡°´¿Îı¾¸ñʽµÄCANÖ¡¡±À´²é¿´ÎļþÖеĵÚÒ»¸öԭʼֵ£¬²¢½«¡°Ê±¼ä´ÁÆ«ÒÆÁ¿¡±ÉèÖÃΪ¡°¿ªÊ¼²âÁ¿¡±¡£ÎÒÃÇÏÖÔڵõ½ÒÔÏÂÄÚÈÝ£º

                                    ÔÆº£ÓÎÏ· Memorator Log
                                    ====================
    
      Converted from Memorator Binary format at:  5/19/2015 07:41:03
    
      Settings:
         Format of data field: DEC
         Format of id field:   DEC
         Timestamp Offset:     0,000000 s
         CAN channel:          1 2
    
              Time        CAN Identifier  Flags  DLC Data                          Counter
      =====================================================================================
      DateTime: 2015-05-17 11:48:26
          0,088284  Trigger (type=0x1, active=0x00, pre-trigger=0, post-trigger=-1)
         18,323147  1         503    Rx         8    8 206  37  66   0   0   0   0     1
         18,430094  1         501    Rx         8  202  19   0   0   0   0   0   0     2
         18,516129  1         503    Rx         8  206 208   2  67   0   0   0   0     3
         18,529129  1         503    Rx         8   60 184 254  66   0   0   0   0     4

    Çë×¢Ò⣬µÚÒ»¸ö´¥·¢Ê¼þÔÚ883 msÖ®ºóµ½´ï¡£ÏÖÔÚ£¬Í¨¹ýÔÙ´ÎÌáÈ¡µ½¡°´¿Îı¾¸ñʽµÄCANÖ¡¡±²¢½«¡°Ê±¼ä´ÁÆ«ÒÆÁ¿¡±ÉèÖÃΪ¡°µÚÒ»´¥·¢Æ÷¡±À´²¹³¥¡£ÎÒÃÇÏÖÔڵõ½ÒÔÏÂÄÚÈÝ£º

                                    ÔÆº£ÓÎÏ· Memorator Log
                                    ====================
    
      Converted from Memorator Binary format at:  5/19/2015 07:40:51
    
      Settings:
         Format of data field: DEC
         Format of id field:   DEC
         Timestamp Offset:     -0,088284 s
         CAN channel:          1 2
    
              Time        CAN Identifier  Flags  DLC Data                          Counter
      =====================================================================================
      DateTime: 2015-05-17 11:48:26
          0,000000  Trigger (type=0x1, active=0x00, pre-trigger=0, post-trigger=-1)
         18,234863  1         503    Rx         8    8 206  37  66   0   0   0   0     1
         18,341810  1         501    Rx         8  202  19   0   0   0   0   0   0     2
         18,427845  1         503    Rx         8  206 208   2  67   0   0   0   0     3
         18,440845  1         503    Rx         8   60 184 254  66   0   0   0   0     4

    ÏÖÔÚ¡°Ê±¼ä´ÁÆ«ÒÆ¡±-883ms£¬ËùÓеÄʱ¼ä´Á¶¼±»µ÷ÕûÁËÕâô¶à¡£ÄÇôΪʲôÎÒÃDz»ÄÜÔÚPython³ÌÐòÖв¹³¥ÕâÒ»µãÄØ£¿ÊµÊ±Ê±ÖÓ¾ßÓÐ2 s£¨¡À1 s£©µÄ¾«¶È£¬Òò´ËÔÚÕâÖÖÇé¿öÏ£¬Êµ¼ÊÉÏ¿ÉÄÜ»á¹ý¶ÈÃÖ²¹¼¸Ê®Ãë¡£

    1.3 ÔÚ12:49:15ʱ¼ä¶ÔÓ¦µÄÖµÊǶàÉÙ£¿

    ¼ÙÉèÓÐÈË˵£º¡°µ±Ê±ÖÓÏÔʾ12:49:15£¬Çý¶¯³ÌÐò±ê¼Çµ½Ò»¸öÉùÒô£¬ÄÇÕâ¸öʱ¿ÌµÄEngineTempµÄÖµÊÇʲô£¿¡±ÔٴΣ¬Èç¹ûÎÒÃÇÔç¾ÍÖªµÀÇý¶¯³ÌÐòÐèÒª±ê¼ÇһЩ¶«Î÷£¬ÄÇÎÒÃÇ»á¸øËûÌṩһ¸ö°´Å¥È¥µã»÷¡£´Ë°´Å¥½«±»Á¬½Óµ½MemoratorµÄ´¥·¢Æ÷ÊäÈ룬Èçͼ2Ëùʾ£¬ÔÚÈκÎʱºò°´Å¥±»µã»÷ºó£¬»áÌṩ¸øÎÒÃǷdz£ÈÝÒ×ÕÒµ½µÄ´¥·¢Æ÷¡£

    ͼ3£ºÈçºÎ½«°´Å¥Á¬½Óµ½MemoratorµÄÍⲿ´¥·¢ÊäÈëµÄʾÀý

    ÔÚÎÒÃÇÉîÈëµ½ÈÕÖ¾Îļþ֮ǰ£¬ÎÒÃDZØÐ뿼ÂÇÇý¶¯³ÌÐò×¢Òâµ½µÄʱ¼ä£¬12:49:15¡£ÒòΪËû˵Ëû¿´×ÅʱÖÓ£¬ÕâÊDZ¾µØÊ±¼ä²¢ÖªµÀPython kvmlib°ü×°Æ÷¿É½«Ê±¼ä´Áת»»Îª±¾µØÊ±¼ä£¬ÈÃÎÒÃÇдһ¸öС³ÌÐòÀ´Êä³öÏà¹ØµÄÊý¾Ý¡£ÎÒÃÇÒ²ÖªµÀ¾«¶ÈÊÇ2Ã룬ËùÒÔÈÃÎÒÃÇ¿´¿´12:49:10 – 12:49:20Õâ¸ö¼ä¸ô¡£¸Ã³ÌÐò·Ç³£ÏñÒÔǰµÄ³ÌÐò£¬³ýÁËÎÒÃǶÔʱ¼ä´Á¶ø²»ÊǼǼֵ½øÐйýÂË¡£


    ½Å×¢£º

    1 ÍêÕûµÄ³ÌÐòÁбí¼û?http://github.com/ÔÆº£ÓÎÏ·/developer-blog

    2 ÈÕÖ¾ÎļþÊýÓë.kmfÈÝÆ÷ÊýÁ¿²»Í¬£¨log000000.kmf£¬log000001.kmfµÈ£©£¬Èç¹ûÎÒÃǽ«SD¿¨·Åµ½SD¿¨¶Á¿¨Æ÷ÄÚ²¢Í¨¹ýµçÄԲ鿴ÄÚÈÝ£¬Ôò¿ÉÒÔ¿´µ½ÕâЩSD¿¨ÉϵÄÊýÁ¿¡£Ã¿´Î´¥·¢Æ÷¿ªÊ¼¼Ç¼ʱ¶¼»á´´½¨Ò»¸öеÄÈÕÖ¾Îļþ¡£ÔÚÎÒÃǵÄʾÀýÖУ¬ÓÉÓÚÎÒÃÇʹÓÃÅäÖÃÑ¡Ïî¡°¼Ç¼ËùÓС±£¨Log everything£©£¬µ±ÎÒÃǸøCAN×ÜÏß¹©µçʱ£¨Í¬Ê±¶Ï¿ªUSBÁ¬½Ó£©£¬½«´´½¨Ò»¸öеÄÈÕÖ¾Îļþ¡£

    3 Çë×¢Ò⣬kvmlibÖеĺ¯ÊýµÄÃüÃûÔÚ×îа汾ÖÐÒѽøÐÐÁ˱ä¸ü£¬ÒÔʹËüÃǸü¼Óͳһ£¬¸üÈÝÒ×Àí½â¡£ Python kvmlib°ü×°Æ÷ÖеÄÃüÃûÉÐδÍêÈ«±ä¸ü¡£

    4 ÎÒÃÇʵ¼Ê¶ÁÈ¡µÄÊǸÃÈÕÖ¾ÎļþÔÚ´ÅÅÌÉÏʹÓõÄÉÈÇøÊý£¬²¢ÖªµÀÔÚÒ»¸öÉÈÇøÖпÉÓµÓÐʼþµÄÊýÁ¿²¢½«Æä×÷ΪһϵÁÐʼþ½øÐзµ»Ø¡£

    5 ÔÚÎÒÃǵÄʾÀýÖУ¬ÎÒÃǶԱ¨Îıêʶ 503½øÐйýÂË£¬ÒòΪÕâÊÇÎÒÃǵÄÐźÅEngineTemp±£´æµÄλÖᣱäÁ¿msgIdʵ¼ÊÉÏÊÇÔÚÖ÷´úÂëÖÐÉèÖò¢×÷Ϊ²ÎÊý´«µÝ¡£

    6 ͨ³£ÔÚÎҵIJâÊÔÉèÖÃÖÐÁ¬½Óµ½Í¬Ò»CAN×ÜÏßµÄÉ豸ÉÏÓÐÁ½¸öͨµÀ£¬²¢ÇÒ¶ÔͨµÀºÅµÄ¹ýÂ˽«¼õÉټǼCAN±¨ÎĵÄÈßÓà¡£

    7 ÓйØUnixʱ¼äµÄ¸ü¶àÐÅÏ¢£¬Çë²ÎÔÄhttp://en.wikipedia.org/wiki/Unix_time

    Author Image

    Magnus Carlsson

    Margus CarlssonÊÇÔÆº£ÓÎÏ· AB¹«Ë¾µÄÈí¼þ¿ª·¢ÈËÔ±£¬´Ó2007ÄêÒÔÀ´Éî¶È²ÎÓëÁËÔÆº£ÓÎÏ·¹Ì¼þºÍÈí¼þµÄ¿ª·¢¡£Ëû»¹ÎªÔƺ£ÓÎÏ·µÄ¼¼Êõ²©¿Í׫дÁËÐí¶àÓÃÁ÷ÐеÄPythonÓïÑÔ±àдӦÓóÌÐòµÄÎÄÕ¡£



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