ÕâÊÇCANlib¿ª·¢3ƪϵÁÐÎÄÕµÄ×îºóһƪ£º
- ÔÚVisual StudioÖÐÉèÖÃCANlib
- »ù´¡APIµ÷ÓÃ
- ʼþÇý¶¯Ó¦ÓóÌÐò
CANlib ¼ò½é
ÔÚÎÒÃǵÄÉÏÒ»¸öÊÓÆµÖУ¬ÎÒÃÇÑÝʾÁËÈçºÎ´´½¨Ò»¸ö¿ØÖÆÌ¨Ó¦ÓóÌÐò£¬Ëü¿ÉÒÔʹÓÃCANlib SDKÖÐÌṩµÄ»ù±¾APIµ÷ÓÃÀ´ÅäÖúͶÁÈ¡CAN×ÜÏßÉϵı¨ÎÄ¡£ ÔÚ±¾ÊÓÆµÖУ¬ÎÒÃǽ«Öصã½éÉÜÈçºÎʹѻ·Ê¼þÇý¶¯¶ÁÈ¡¸ü¸ßЧ¡£
ʾÀý
ÔÚÇ°ÃæµÄʾÀýÖУ¬ÎÒÃÇʹÓÃÁËWindows C££¿ØÖÆÌ¨Ó¦ÓóÌÐò¡£ÓÉÓÚÎÒÃÇÏëÔÚ¶àÏß³ÌÓ¦ÓóÌÐòÖÐÏÔʾʼþÇý¶¯Ñ»·£¬±¾Ê¾Àý½«Ê¹ÓÃWindows Presentation Foundation³ÌÐò£¬ÆäÖÐÖ÷Ï̴߳¦ÀíͼÐÎÓû§½çÃæ£¨GUI£©ÒÔ¼°ºǫ́Ï̴߳ÓCAN×ÜÏß¶ÁÈ¡Êý¾Ý¡£
ÎÒÃÇÓÐÒ»¸ö¼òµ¥µÄͼÐÎÓû§½çÃæ£¬Ò»¸ö°´Å¥Æô¶¯ºǫ́Ï̺߳ÍÒ»¸ö°´Å¥Í£Ö¹ºǫ́Ï̡߳£ÎÒÃÇ»¹Ìí¼ÓÁËÒ»¸öÎı¾¿òÒÔÏÔʾ½ÓÊÕµ½µÄ±¨ÎÄ¡£ÎÒÃÇʹÓÃXAMLÉè¼ÆÁËÕâ¸öGUI¡£
ÎÒÃǽ«Ê¹ÓÃ.NETºǫ́¹¤×÷Ïß³ÌÀ´Ö´ÐÐËùÓеÄCAN×ÜÏß²Ù×÷¡£ÕâÒâζ×ÅÎÒÃDZØÐë°üÀ¨System ComponentModelÃüÃû¿Õ¼ä£¬²¢ÔÚ´´½¨Ö÷´°¿Úʱ´´½¨ºǫ́¹¤×÷³ÌÐò¡£ GUIËùÒª×öµÄ¾ÍÊÇÔÚ°´ÏÂ×ÜÏß¿ªÆô°´Å¥Ê±Æô¶¯ºǫ́¹¤×÷£¬µ±°´ÏÂ×ÜÏ߹رհ´Å¥Ê±Í£Ö¹ºǫ́¹¤×÷£¬²¢ÏÔʾºǫ́Ï̱߳¨¸æµÄ×Ö·û´®¡£
ÎÒÃǵĺǫ́¹¤×÷³ÌÐò½«Ö´ÐÐReceiveMessageLoopº¯ÊýÀ´´ÓCAN×ÜÏßÖмìË÷Êý¾Ý¡£ ÏñÎÒÃÇÇ°ÃæµÄÀý×Ó£¬ÎÒÃÇÐèÒª°üÀ¨canlibCLSNETÃüÃû¿Õ¼äºÍÉèÖÃÔÆº£ÓÎÏ·É豸µÄ¾ä±ú¡£ÎÒÃÇÔÚInitializeChannelº¯ÊýÖзÅÖÃÁ˾ä±úÉèÖÃÖ¸Áî¡£ ÎÒÃdzõʼ»¯¿â£¬»ñÈ¡¾ä±ú£¬ÉèÖñÈÌØÂÊ£¬²¢Ê¹×ÜÏßÉϵÄͨµÀÓÐЧ¡£ÎÒÃÇ»¹Ìí¼ÓÁ˶ÔcanIoCtlµÄµ÷Óã¬ÒÔ»ñȡһ¸öWindowsʼþ¾ä±ú£¬µ±Çý¶¯³ÌÐòÖз¢ÉúijЩʼþʱ£¬Ëü½«´¥·¢¡£Õâ¿ÉÄÜÊǽÓÊÕµ½µÄ±¨ÎÄ£¬±¨ÎÄ´«Êä»òCAN¿ØÖÆÆ÷״̬µÄ¸Ä±ä¡£ÎÞÂÛʼþ´¥·¢µÄÔÒòÊÇʲô£¬Äã±ØÐëÇå¿Õ½ÓÊÕ»º³åÇø£¬·ñÔò²»»áÔÙ»ñµÃÁíÒ»¸öʼþ´¥·¢Æ÷¡£Äã»á×¢Òâµ½canIoCtl·µ»ØµÄÖ¸Õë±ØÐë·ÅÔÚ´ÓWaitHandleÀàÅÉÉúµÄÀàÖС£ÒªÊ¹ÓÃWaitHandleÀ࣬ÎÒÃDZØÐë°üÀ¨System.ThreadingÃüÃû¿Õ¼ä¡£
ÎÒÃÇÏÖÔÚÓÐÒ»¸öÕýÈ·³õʼ»¯µÄͨµÀ¾ä±úºÍÒ»¸öʼþ¾ä±ú£¬ËùÒԻص½ReceiveMessageLoopÑ»·£¬Ö±µ½GUIÇëÇóºǫ́¹¤×÷³ÌÐòÍ£Ö¹¡£ÔÚÑ»·ÄÚ£¬ÎÒÃÇʹÓÃWaitAny·½·¨µÈ´ý1ÃëÖÓÖ±µ½Ê¼þ·¢Éú¡£ Èç¹ûûÓÐʼþ·¢Éú£¬ÎÒÃÇÔÙ´ÎÑ»·¡£ Èç¹ûCANʼþ´¥·¢£¬ÎÒÃÇʹÓÃcanReadµ÷ÓÃÑ»·¶ÁÈ¡±¨ÎÄ£¬Ö±µ½¸Ãº¯Êýָʾ½ÓÊÕ»º³åÇøÎª¿ÕÇÒ¾ßÓÐcanERR_NOMSG״̬¡£¶ÔÓÚÿ¸ö±¨ÎĵÄÏûÏ¢£¬ÎÒÃÇʹÓÃBackgroundWorkerÀàÖÐÄÚÖõÄReportProgress·½·¨½«±¨ÎÄÐÅÏ¢´«µÝ»ØGUI¡£
Èç¹ûGUIÇëÇóºǫ́¹¤×÷³ÌÐòÍ£Ö¹£¬ÎÒÃǽ«Í˳öwhileÑ»·£¬½øÈëReleaseChannelº¯Êý£¬Í¨¹ýʹͨµÀ´¦Óڷǻ״̬²¢¹Ø±Õ¾ä±úÀ´Ö´ÐÐÎÒÃǵıê×¼ÇåÀí¡£
ÏÖÔÚÓ¦ÓóÌÐòÈÔÈ»ÏìÓ¦£¬²¢ÇÒʹÓýÏÉÙµÄCPU×ÊÔ´£¬ÒòΪÎÒÃÇÖ»¼ì²éÏûÏ¢ÒÔ¼°µ±CANʼþ»òÓû§Ê¼þ·¢Éúʱ¸üÐÂÏÔʾ¡£Çë¼Çס£¬µ±Ê¹ÓöàÏß³Ìʱ£¬canOpenChannelµ÷Ó÷µ»ØµÄ¾ä±ú²»ÊÇḬ̈߳²È«µÄ¡£Òò´Ëÿ¸öÏ̱߳ØÐëʹÓÃcanOpenChannelº¯ÊýÉùÃ÷×Ô¼ºµÄÎïÀíͨµÀ¾ä±ú¡£
CANlib¸ü¶àÐÅÏ¢
ÓйØCANlibµÄ¸ü¶àÐÅÏ¢£¬Äú¿ÉÒԲ鿴ÎÒÃǵÄCANlib SDK°ïÖú£¬²¢²é¿´ÎÒÃǵļ¼Êõ²©¿ÍÖеÄϵÁÐÎÄÕ¡£