¼¼Êõ²©¿Í

12/11/2016 ×÷Õß ÔÆº£ÓÎÏ·

ʹÓÃCANlib¼ì²âÒç³öÇé¿ö

ÔÚ¿ª·¢ÑÏÖØÒÀÀµÍ¨ÐÅЭÒéµÄÈí¼þÓ¦ÓóÌÐòʱ£¬¹Ø¼üÎÊÌâÖ®Ò»ÊÇÓ¦ÓóÌÐò¿ìËٵش¦Àí´«ÈëµÄ±¨ÎÄ£¬¶ø²»»á¶ªÆú±¨ÎÄ¡£ÕâÖÖÇé¿ö¿ÉÄÜÊÇÓÉÓÚÓ¦ÓóÌÐò»¨·ÑÌ«¶àʱ¼ä´¦Àíijһ±¨ÎÄ£¬Ó¦ÓóÌÐòÔÝÍ£µÈ´ýÓû§½»»¥£¬»òÕßÓ¦ÓóÌÐòÕýÔڵȴý¹²Ïíϵͳ×ÊÔ´£¬ÈçÊý¾ÝÎļþ¡£²»¹ÜʲôԭÒò£¬Ó¦ÓóÌÐò¿ª·¢ÈËÔ±Ó¦¼Æ»®¼ì²âÕâЩ¶ªÆúµÄ±¨ÎÄ£¬ÒÔ·ÀÖ¹ÔÚÓÉÓ¦ÓóÌÐòÐÐΪµ¼Ö´íÎóʱËÑË÷ϵͳÎÊÌâ¡£

ΪÁ˼ì²âÕâ¸öÎÊÌ⣬CANlibÌṩÁ˼¸ÖÖ»úÖÆÀ´¼ì²é½ÓÊÕ»º³åÇø×´Ì¬ºÍÈ·¶¨CANÖ¡ÊÇ·ñÒѾ­¶ªÆú¡£

 

canRead±êÖ¾²ÎÊý

ÓÃÓÚÈ·¶¨CANÖ¡ÊÇ·ñÒѱ»¶ªÆúµÄµÚÒ»ÖÖ·½·¨ÊǼàÊÓÓÉcanReadº¯Êý·µ»ØµÄ±êÖ¾²ÎÊý¡£±êÖ¾²ÎÊý°üº¬Á½¸ö룬ËüÃDZíʾÔڴ˺¯Êýµ÷Óúͺ͵±Ç°µ÷Ó÷µ»ØµÄ×îºóÒ»¸ö±¨ÎÄÖ®¼äÊÇ·ñ·¢ÉúÈí¼þ»òÓ²¼þÒç³ö¡£ÕâЩλ±»¶¨ÒåΪÓÃÓÚÓ²¼þÒç³öµÄcanMSGERR_HW_OVERRUNºÍÓÃÓÚÈí¼þÒç³öµÄcanMSGERR_SW_OVERRUN¡£ÄãÒ²¿ÉÒÔʹÓÃcanMSGERR_OVERRUNÑÚÂëͬʱ¼ì²éÕâÁ½ÖÖÇé¿ö¡£Òò´Ë£¬µ±Ó¦ÓóÌÐò¼ì²éµ½ÕâЩλ¼¯ÖеÄÒ»¸öʱ£¬Ó¦ÓóÌÐò¾Í»á»ñÖªÔÚµ±Ç°CANÖ¡ºÍ½ÓÊÕµÄǰһ¸öCANÖ¡Ö®¼ä¶ªÆúÁ˱¨ÎÄ¡£

ÒªÁ˽âÔÚʹÓÃÈí¼þµÄÇé¿öÏÂÈçºÎÏÔʾ£¬¿É¼ÙÉèÒ»¸ö½ÓÊÕ»º³åÇø£¬Ëü¿ÉÈÝÄÉ10Ö¡¡££¨µ±È»£¬CANlibÖеÄĬÈϽÓÊÕ»º³åÇø´óСԶԶ´óÓÚ10.£©Ó²¼þÒѽÓÊÕµ½10¸öCANÖ¡²¢½«Æä·ÅÈë¿ÉÌîÈëµÄ»º³åÇø¡£
overflow-1-v2

Ó²¼þ½ÓÊÕµ½ÁíÒ»¸öCANÖ¡£¬µ«½ÓÊÕ»º³åÇøÒÑÂú£¬Òò´Ë¸Ã֡δÌí¼Óµ½»º³åÇø¡£

overflow-2

Ó²¼þ½ÓÊÕµ½µÚ12¸öCANÖ¡£¬¸²¸ÇδÌí¼Óµ½»º³åÇøµÄÖ¡¡£

overflow-3

Ó¦ÓóÌÐòµ÷ÓÃcanReadɾ³ýµÚÒ»¸ö½ÓÊÕµÄCANÖ¡£¬²¢ÎªÒªÌí¼Óµ½½ÓÊÕ»º³åÇøµÄµÚ12Ö¡Áôϵã¡£

overflow-4

µÚ1µ½10µÄCANÖ¡ÔÚÓÉcanRead¼ìË÷ʱ²»»áָʾÒç³ö¡£ µ±µÚ11Ö¡¶ªÆú£¬Í¨¹ýcanRead´Ó»º³åÇø¼ìË÷ʱ£¬µÚ12¸öCANÖ¡½«Ö¸Ê¾Òç³ö¡£

 

canReadStatus

ÓÃÓÚÈ·¶¨CANÖ¡ÊÇ·ñÒѱ»¶ªÆúµÄµÚ¶þÖÖ·½·¨Êǵ÷ÓÃcanReadStatus¡£Èç¹ûÉèÖÃÁËcanSTAT_HW_OVERRUN»òcanSTAT_SW_OVERRUN룬¸Ãº¯Êý·µ»ØµÄ±êÖ¾²ÎÊý½«Ö¸Ê¾Òç³ö¡£Äã¿ÉÒÔʹÓÃcanSTAT_OVERRUNÑÚÂë¼ì²éÕâЩÒç³öλÊÇ·ñÒÑÉèÖá£

´Ë״̬ÐÅÏ¢ÊÇÒì²½¸üеģ¬Òâζ×ÅcanReadStatus·µ»ØµÄÖµÊÇ×îºóÒ»´Î±¨¸æµÄÖµ£¬µ«²»Ò»¶¨Êǵ±Ç°×´Ì¬¡£ÒªÈ·±£±¨¸æµÄÊý¾ÝÊÇ×îеģ¬Äã¿ÉÒÔÒÔÖÜÆÚÐÔËÙÂʵ÷ÓÃcanRequestChipStatus¡£ canRequestChipStatusÒªÇó¸üÐÂ״̬ÐÅÏ¢£¬µ«ÊǺ¯ÊýÍ˳öʱÐÅÏ¢²»ÊÇ×îеġ£µ÷ÓÃÍê³Éºó״̬½«Êǵĵ±Ç°µÄÒ»¶Îʱ¼ä¡£

ËùÒÔÈÃÎÒÃÇÄÃÇ°ÃæµÄÎÒÃǵÄÍêÕûµÄ»º³åÇøÒÔ¼°Ó²¼þ½ÓÊÕµ½µÚ11¸ö±¨ÎÄΪÀýÀ´ËµÃ÷¡£ÎÒÃÇÿÃëµ÷ÓÃcanRequestChipStatusÁ½´Î£¬Ã¿Ãëµ÷ÓÃÒ»´ÎcanReadStatus¡£

overflow-5

´ËʱcanReadStatus²»»áָʾÒç³ö¡£µ±Ó²¼þ½ÓÊÕµ½µÚ12¸öCANÖ¡¸²¸ÇδÌí¼Óµ½»º³åÇøµÄ֡ʱ£¬Ð¾Æ¬×´Ì¬¸Ä±äÒÔָʾÒç³ö¡£

overflow-6

ÔÚÏÂÒ»¸öÖÜÆÚÐÔcanRequestChipStatusµ÷Óùý³ÌÖб¨¸æ¸Ã״̬¿ªÊ¼¡£µ±½ø³ÌÍê³Éʱ£¬ÏÂÒ»´Îµ÷ÓÃcanReadStatus½«Ö¸Ê¾Òç³ö¡£ÕâÒâζןù¾ÝµÚ12¸öCANÖ¡ÔÚcanRequestChipStatusºÍcanReadStatusµ÷ÓõÄÖÜÆÚÖе½´ïµÄʱ¼ä£¬canReadStatusµ÷Óý«²»»áÔÚʼþ£¨ÔÚ±¾ÀýÖУ©ºó×î¶àÒ»ÃëÖÓָʾ״̬¡£

Ò»µ©ÔÚcanReadStatusµ÷ÓõıêÖ¾²ÎÊýÖÐָʾÒç³ö£¬×´Ì¬½«±£³ÖËø¶¨×´Ì¬£¬Ö±µ½ÄãʹÓÃcanIOCtlÀý³ÌÓëcanIOCTL_CLEAR_ERROR_COUNTERSº¯ÊýÇå³ý״̬¡£ÕâÊÇΪÁË·ÀÖ¹Ó¦ÓóÌÐòÓÉÓÚ¼ì²éµ½Òç³öºÍʹÓÃcanReadStatusÀý³ÌÂÖѯ״̬֮¼äµÄ¾ºÕùÇé¿ö¶ø¶ªÆú¼ì²âµ½µÄÒç³ö¡£

 

ÇëÇó½ÓÊÕ»º³åÇø¼¶±ð

µÚÈýÖÖ·½·¨ÊÇͨ¹ýʹÓú¯Êý²ÎÊýÉèÖÃΪcanIOCTL_GET_RX_BUFFER_LEVELµÄcanIoCtlÀý³ÌÀ´¼àÊÓ½ÓÊÕ»º³åÇøµÄµ±Ç°Éî¶È¡£·µ»ØµÄ»º³åÇø½«Êǵ±Ç°´æ´¢ÔÚ½ÓÊÕ»º³åÇøÖеÄCANÖ¡µÄ¼ÆÊý¡£

Çë¼Çס£¬¼ì²é»º³åÇø¼¶±ðËù»¨·ÑµÄʱ¼äʵ¼ÊÉÏ¿ÉÄܸüºÃµØÓÃÓÚÇå¿Õ½ÓÊÕ»º³åÇø¡£ÔÚÖ´ÐÐÔ¤¶¨Òå¿é´«Êäʱ£¬¼ì²é½ÓÊÕ»º³åÇø¼¶±ð¿ÉÄܸüÓÐÓã¬ÆäÖÐÓ¦ÓóÌÐò¿ÉÒԵȴýÖ±µ½ÔÚ´¦Àí֮֡ǰ½ÓÊÕµ½Õû¸ö¿é¡£

 

²Ù×÷Óкó¹û

Äã¿ÉÄÜ»á×¢Òâµ½£¬µ±Ê¹ÓÃ×îºóÁ½¸ö·½·¨£¨canReadStatus»òcanIOCTL_GET_RX_BUFFER_LEVEL£©Ö®Ò»Ê±£¬Èç¹û»º³åÇøÒÑÂú²¢´¦ÓÚÒç³ö״̬£¬ÔòÔÚÒÔϵ÷ÓÃcanReadÖÐָʾÒç³ö״̬¡£ÒªÔÚÕâЩ·½·¨ÖмìË÷Êý¾Ý£¬½ÓÊÕ¶ÓÁбØÐëÖÃÓÚÎȶ¨×´Ì¬£¬ÒÔ±ã¿ÉÒÔ¼ì²éÕû¸ö¶ÓÁС£Ôڴ˹ý³ÌÖУ¬ÓÉÓÚȱÉٿռ䣬¿ÉÄÜÔÚÇý¶¯³ÌÐòºÍÓ¦ÓóÌÐò»º³åÇøÖ®¼ä±¨Îı»¶ªÆú¡£´Ë¶ªÆúÊÇÓÉÔÚʹÓÃcanRead¼ìË÷µÄÏÂÒ»¸öCANÖ¡ÉϵÄÒç³ö״ָ̬ʾ¡£

 

½áÂÛ

Ó¦ÓóÌÐò¿ª·¢ÈËÔ±Ó¦¸ÃÔÚcanRead()´¦ÀíÆÚ¼äʼÖÕ¼ì²â¶ªÆúµÄ±¨ÎÄ£¬ÒÔ·ÀÖ¹ÔÚÓÉÓ¦ÓóÌÐòÐÐΪµ¼Ö´íÎóʱËÑË÷ϵͳÎÊÌâ¡£ÄãµÄÓ¦ÓóÌÐòÉè¼Æ¿ÉÄÜ»á¶ÔCAN×ÜÏßÉϵÄÁ÷Á¿Ôì³ÉÎÊÌ⣬ÕâÊÇÄãµÄµÚÒ»Ìõָʾ¡£Ê¹Óô˷½·¨½øÐмàÊÓ½«ÓÐÖúÓÚÈ·¶¨ÔÚÎÕÊÖ±¨ÎĶªÆú»òÔ¤ÆÚµÄÖÜÆÚÐÔ±¨Îij¬Ê±Ê±¹ÊÕÏ·¢ÉúÔںδ¦¡£ËäÈ»Äã¿ÉÒÔʹÓõ¥¶ÀµÄ¹¤¾ßÀ´¼àÊÓ×ÜÏßÉÏËùÐèµÄ±¨ÎÄ£¬µ«¼àÊÓÒç³ö±êÖ¾½«Ö¸Ê¾ÄãµÄÓ¦ÓóÌÐò½ÚµãÊÇ×îÖÕÔ­Òò»òÖÁÉÙÓзçÏÕ¡£

Äã¿ÉÒÔʹÓÃcanReadÒç³öÐÅÏ¢À´¸ú×ÙÒç³öµÄƵÂÊ¡£µ±Á÷Á¿´ø¿íÓÉÓÚ±¨ÎÄÍ»·¢¶øÔö¼Óʱ£¬Õâ¿ÉÒÔʶ±ðÓ¦ÓõĿÉÄÜÎÊÌâ¡£

µ±ÔÚGUIÉÏָʾµ±Ç°Òç³ö״̬»òÏòÓû§·¢³öÖØÒª±¨ÎÄ¿ÉÄÜÒѱ»¶ªÆúµÄ¾¯¸æÊ±£¬Ê¹ÓÃcanReadStatus·½·¨¡£

µ±ÄãÔ¸ÒâÍ£Ö¹GUI»òÆäËû½ø³Ìʱ£¬½«Ê¹Óüì²é½ÓÊÕ»º³åÇø¼¶±ð£¬ÒÔ±ãÔÚ´ïµ½ÌØ¶¨´óСºóרÃżÆËã×ÊÔ´Á¢¼´Çå¿Õ»º³åÇø¡ª¡ª·ÀÖ¹·¢ÉúÒç³ö¡£Ò»¸öÕâÑùµÄÇé¿öÊÇÉÁ˸½Úµã¡£

 

ÎÒÃǷdz£¸ÐлÄúÄÜͨ¹ýµç×ÓÓʼþ·¢Ë͵½support@kvaser.comÌṩ´íÎ󱨸æ¡¢¹±Ïס¢¸Ä½ø½¨ÒéÒÔ¼°ÆäËûÀàËÆ·½Ãæ¡£

 

Author Image

Mikkel Gerdes

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