Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ǶÈëʽϵͳÈí¼þ¼Ü¹¹Éè¼Æ
 
  17759  次浏览      32
 2019-6-12
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚveryarm£¬±¾ÎÄÖ÷Òª¶ÔǶÈëʽÈí¼þ¿ª·¢µÄÌØµã£¬ÌÖÂۼܹ¹Éè¼ÆµÄ˼·ºÍ·½·¨µÈÏà¹ØÄÚÈÝ¡£

1. ǰÑÔ

ǶÈëʽÊÇÈí¼þÉè¼ÆÁìÓòµÄÒ»¸ö·ÖÖ§£¬Ëü×ÔÉíµÄÖî¶àÌØµã¾ö¶¨ÁËϵͳ¼Ü¹¹Ê¦µÄÑ¡Ôñ£¬Í¬Ê±ËüµÄһЩÎÊÌâÓÖ¾ßÓÐÏ൱µÄͨÓÃÐÔ£¬¿ÉÒÔÍÆ¹ãµ½ÆäËûµÄÁìÓò¡£

ÌáÆðǶÈëʽÈí¼þÉè¼Æ£¬´«Í³µÄÓ¡ÏóÊǵ¥Æ¬»ú£¬»ã±à£¬¸ß¶ÈÒÀÀµÓ²¼þ¡£´«Í³µÄǶÈëʽÈí¼þ¿ª·¢ÕßÍùÍùÖ»¹Ø×¢ÊµÏÖ¹¦Äܱ¾Éí£¬¶øºöÊÓÖîÈç´úÂ븴Óã¬Êý¾ÝºÍ½çÃæ·ÖÀ룬¿É²âÊÔÐÔµÈÒòËØ¡£´Ó¶øµ¼ÖÂǶÈëʽÈí¼þµÄÖÊÁ¿¸ß¶ÈÒÀÀµ¿ª·¢ÕßµÄˮƽ£¬³É°Üϵ֮һÉí¡£Ëæ×ÅǶÈëʽÈíÓ²¼þµÄ·ÉËÙ·¢Õ¹£¬½ñÌìµÄǶÈëʽϵͳÔÚ¹¦ÄÜ£¬¹æÄ£ºÍ¸´ÔӶȸ÷·½Ãæ¶¼ÓÐÁ˼«´óµÄÌáÉý¡£±ÈÈ磬Marvell¹«Ë¾µÄPXA3xxϵÁеÄ×î¸ßÖ÷ƵÒѾ­´ïµ½800Mhz£¬ÄÚ½¨USB,WIFI,2DͼÐμÓËÙ,32λDDRÄÚ´æ¡£ÔÚÓ²¼þÉÏ£¬½ñÌìµÄǶÈëʽϵͳÒѾ­´ïµ½ÉõÖÁ³¬¹ýÁËÊýÄêǰµÄPCƽ̨¡£ÔÚÈí¼þ·½Ã棬ÍêÉÆµÄ²Ù×÷ϵͳÒѾ­³ÉÊ죬±ÈÈçSymbian, Linux, WinCE¡£»ùÓÚÍêÉÆµÄ²Ù×÷ϵͳ£¬ÖîÈç×Ö´¦Àí£¬Í¼Ïñ£¬ÊÓÆµ£¬ÒôƵ£¬ÓÎÏ·£¬ÍøÒ³ä¯ÀÀµÈ¸÷ÖÖÓ¦ÓóÌÐò²ã³ö²»ÇÆä¹¦ÄÜÐԺ͸´ÔӶȱÈÖîPCÈí¼þ²»åضàÈá£Ô­À´¶àÑ¡ÓÃרÓÃÓ²¼þºÍרÓÃϵͳµÄһЩÉÌÒµÉ豸¹«Ë¾Ò²¿ªÊ¼×ª»»Ë¼Â·£¬ÒÔ³öÉ«¶øÁ®¼ÛµÄÓ²¼þºÍÍêÉÆµÄ²Ù×÷ϵͳΪ»ù´¡£¬ÓÃÈí¼þµÄ·½Ê½´úÌæÒÔǰʹÓÃרÓÐÓ²¼þʵÏֵŦÄÜ£¬´Ó¶øÊµÏÖ¸üµÍµÄ³É±¾ºÍ¸ü¸ßµÄ¿É±ä¸ü£¬¿Éά»¤ÐÔ¡£

2.¾ö¶¨¼Ü¹¹µÄÒòËØºÍ¼Ü¹¹µÄÓ°Ïì

¼Ü¹¹²»ÊÇÒ»¸ö¹ÂÁ¢µÄ¼¼ÊõµÄ²úÎËüÊÜ¶à·½ÃæÒòËØµÄÓ°Ï졣ͬʱ£¬Ò»¸ö¼Ü¹¹ÓÖ¶ÔÈí¼þ¿ª·¢µÄÖî¶à·½ÃæÔì³ÉÓ°Ïì¡£

ÏÂÃæ¾ÙÒ»¸ö¾ßÌåµÄÀý×Ó¡£

ĦÍгµµÄ·¢¶¯»úÔÚ³ö³§Ç°±ØÐëͨ¹ýһϵÁеIJâÊÔ¡£ÔÚÁ÷Ë®ÏßÉÏ£¬·¢¶¯»ú±»Ë͵½Ã¿¸ö¹¤Î»ÉÏ£¬Óɹ¤È˽øÐÐÖîÈçתËÙ£¬ÔëÒô£¬Õñ¶¯µÈ·½ÃæµÄ²âÊÔ¡£ÒªÇóʵÏÖÒ»¸öǶÈëʽÉ豸£¬¾ß±¸ÒÔÏ»ù±¾¹¦ÄÜ:

1. °²×°ÔÚ¹¤Î»ÉÏ£¬¹¤ÈËÉϰàǰ¿ªÆô²¢µÇ¼¡£

2. ͨ¹ý´«¸ÐÆ÷×Ô¶¯²É¼¯²âÊÔÊý¾Ý£¬²¢ÏÔʾÔÚÆÁÄ»ÉÏ¡£

3. ¼Ç¼ËùÓеIJâÊÔ½á¹û£¬²¢Ìṩͳ¼Æ¹¦ÄÜ¡£±ÈÈç´ÎÆ·ÂÊ¡£

Èç¹ûÄãÊÇÕâ¸öÉ豸µÄ¼Ü¹¹Ê¦£¬ÄÄЩÎÊÌâÊÇÔÚÉè¼Æ¼Ü¹¹µÄʱºòÓ¦¸Ã¹Ø×¢µÄÄØ£¿

1.1. ³£¼ûµÄÎó½â

1.1.1. СÐ͵Äϵͳ²»ÐèÒª¼Ü¹¹

ÓÐÏ൱¶àµÄǶÈëʽϵͳ¹æÄ£¶¼½ÏС£¬Ò»°ãÊÇΪÁËÄ³Ð©ÌØ¶¨µÄÄ¿µÄ¶øÉè¼ÆµÄ¡£Êܹ¤³ÌʦÈÏʶ£¬¿Í»§¹æÄ£ºÍÏîÄ¿½ø¶ÈµÄÓ°Ï죬¾­³£²»×öÈκμܹ¹Éè¼Æ£¬Ö±½ÓÒÔʵÏÖ¹¦ÄÜΪĿ±ê½øÐбàÂë¡£ÕâÖÖÐÐΪ±íÃæÉÏ¿´Âú×ãÁ˽ø¶È£¬³É±¾£¬¹¦Äܸ÷·½ÃæµÄÐèÇ󣬵«ÊÇ´Ó³¤Ô¶À´¿´£¬ÔÚÀ©Õ¹ºÍά»¤Éϸ¶³öµÄ³É±¾£¬ÒªÔ¶Ô¶¸ßÓÚ×î³õ½ÚÔ¼µÄ³É±¾¡£Èç¹ûϵͳµÄ×î³õ¿ª·¢Õß¼ÌÐøÁôÔÚ×éÖ¯ÄÚ²¢¸ºÔðÕâ¸öÏîÄ¿£¬ÄÇô¿ÉÄÜÒ»Çж¼»áÕý³££¬Ò»µ©ËûÀ뿪£¬ºóÐøÕßÒòΪ¶Ôϵͳϸ½ÚµÄÀí½â²»×㣬¾Í¿ÉÄÜÒýÈë¸ü¶àµÄ´íÎó¡£Òª×¢Ò⣬ǶÈëʽϵͳµÄ±ä¸ü³É±¾ÒªÔ¶Ô¶¸ßÓÚÒ»°ãµÄÈí¼þϵͳ¡£ºÃµÄÈí¼þ¼Ü¹¹£¬¿ÉÒÔ´Óºê¹ÛºÍ΢¹ÛµÄ²»Í¬²ã´ÎÉÏÃèÊöϵͳ£¬²¢½«¸÷¸ö²¿·Ö¸ôÀ룬´Ó¶øÊ¹ÐÂÌØÐÔµÄÌí¼ÓºÍºóÐøÎ¬»¤±äµÃÏà¶Ô¼òµ¥¡£

¾ÙÒ»¸ö³ÇÌúË¢¿¨»úµÄÀý×Ó£¬Õâ¸öÀý×ÓÔÚÇ°ÃæµÄ¿Î³ÌÖгöÏÖ¹ý¡£¼òµ¥µÄ³ÇÌúË¢¿¨»úÖ»ÐèҪʵÏÖÈçϹ¦ÄÜ£º

Ò»¸öWhileÑ­»·×ãÒÔʵÏÖÕâ¸öϵͳ£¬Ö±½Ó¾Í¿ÉÒÔ¿ªÊ¼±àÂëµ÷ÊÔ¡£µ«ÊÇ´ÓÒ»¸ö¼Ü¹¹Ê¦µÄ½Ç¶È£¬ÕâÀïÓÐûÓÐÖµµÃ³éÏóºÍ°þÀëµÄ²¿·ÖÄØ£¿

1. ¼Æ·Ñϵͳ¡£¼Æ·ÑϵͳÊDZØÐë³éÏóµÄ£¬±ÈÈç´Óµ¥´Î¼Æ·Ñµ½°´Àï³Ì¼Æ·Ñ¡£

2. ´«¸ÐÆ÷ϵͳ¡£´«¸ÐÆ÷°üÀ¨´Å¿¨¸ÐÓ¦Æ÷£¬Í¶±ÒÆ÷µÈ¡£É豸¿ÉÄܸü»»¡£

3. ¹ÊÕÏ´¦ÀíºÍ»Ö¸´¡£¿¼Âǵ½½Ï¸ßµÄ¿É¿¿ÐԺͽ϶̵ĹÊÕϻָ´Ê±¼ä£¬Õⲿ·ÖÓбØÒªµ¥¶ÀÉè¼Æ¡£

δÀ´ºÜ¿ÉÄܳöÏÖµÄÐèÇó±ä¸ü£º

1. ²Ù×÷½çÃæ¡£ÊÇ·ñÐèÒª³éÏó³öרÃŵÄModelÀ´£¿ÒÔ±¸½«À´ÊµÏÖView¡£

4. Êý¾Ýͳ¼Æ¡£ÊÇ·ñÐèÒªÒýÈë¹ØÏµÐÍÊý¾Ý¿â£¿

Èç¹ûÖ±½ÓÒÔÉÏÃæµÄÁ÷³Ìͼ±àÂ룬µ±³öÏÖ±ä¸üºó£¬ÓжàÉÙ´úÂë¿ÉÒÔ¸´Óã¿

²»¹ý£¬Ò²²»ÒªÒò´Ë²úÉú¹ý¶ÈµÄÉè¼Æ¡£¼Ü¹¹Ó¦µ±Á¢×ãÂú×㵱ǰÐèÇ󣬲¢Êʵ±µÄ¿¼ÂÇÖØÓúͱä¸ü¡£

1.1.2. Ãô½Ý¿ª·¢²»ÐèÒª¼Ü¹¹

¼«ÏÞ±à³Ì£¬Ãô½Ý¿ª·¢µÄ³öÏÖʹһЩÈËÎóÒÔΪÈí¼þ¿ª·¢ÎÞÐèÔÙ×ö¼Ü¹¹ÁË¡£ÕâÊÇÒ»¸öºÜ´óµÄÎó½â¡£Ãô½Ý¿ª·¢ÊÇÔÚ´«Í³ÆÙ²¼Ê½¿ª·¢Á÷³Ì³öÏÖÃ÷ÏԱ׶˺óÌá³öµÄ½â¾ö·½°¸£¬ËùÒÔËü±ØÈ»ÓÐÒ»¸ö¸ü¸ßµÄÆðµãºÍ¶Ô¿ª·¢¸üÑϸñµÄÒªÇó¡£¶ø²»Êǵ¹Í˵½Ê¯Æ÷ʱ´ú¡£ÊÂʵÉÏ£¬¼Ü¹¹ÊÇÃô½Ý¿ª·¢µÄÒ»²¿·Ö£¬Ö»²»¹ýÔÚÐÎʽÉÏ£¬Ãô½Ý¿ª·¢ÍƼöʹÓøü¸ßЧ£¬¼òµ¥µÄ·½Ê½À´×öÉè¼Æ¡£±ÈÈç»­ÔÚ°×°åÉÏÈ»ºóÓÃÊýÂëÏà»úÅÄϵÄUMLͼ£»ÓÃÓû§¹ÊÊ´úÌæÓû§ÓÃÀýµÈ¡£²âÊÔÇý¶¯µÄÃô½Ý¿ª·¢¸üÊÇÇ¿ÆÈ¹¤³ÌʦÔÚдʵ¼Ê´úÂëǰÉè¼ÆºÃ×é¼þµÄ¹¦Äܺͽӿڣ¬¶ø²»ÊÇÖ±½Ó¿ªÊ¼Ð´´úÂë¡£Ãô½Ý¿ª·¢µÄÒ»Ð©ÌØÕ÷£º

1. Õë¶Ô±È´«Í³¿ª·¢Á÷³Ì¸ü´óµÄϵͳ

5. ³ÐÈϱ仯£¬µü´ú¼Ü¹¹

6. ¼ò½à¶ø²»»ìÂÒ

7. Ç¿µ÷²âÊÔºÍÖØ¹¹

2. ǶÈëʽ»·¾³ÏÂÈí¼þÉè¼ÆµÄÌØµã

Ҫ̸ǶÈëʽµÄÈí¼þ¼Ü¹¹£¬Ê×ÏȱØÐëÁ˽âǶÈëʽÈí¼þÉè¼ÆµÄÌØµã¡£

2.1. ºÍÓ²¼þÃÜÇÐÏà¹Ø

ǶÈëʽÈí¼þÆÕ±é¶ÔÓ²¼þÓÐ×ÅÏ൱µÄÒÀÀµÐÔ¡£ÕâÌåÏÖÔÚ¼¸¸ö·½Ã棺

1. һЩ¹¦ÄÜÖ»ÄÜͨ¹ýÓ²¼þʵÏÖ,Èí¼þ²Ù×÷Ó²¼þ£¬Çý¶¯Ó²¼þ¡£

8. Ó²¼þµÄ²îÒì/±ä¸ü»á¶ÔÈí¼þ²úÉúÖØ´óÓ°Ïì¡£

9. ûÓÐÓ²¼þ»òÕßÓ²¼þ²»ÍêÉÆÊ±£¬Èí¼þÎÞ·¨ÔËÐлòÎÞ·¨ÍêÕûÔËÐС£

ÕâÐ©ÌØµãµ¼Ö¼¸·½ÃæµÄºó¹û£º

1. Èí¼þ¹¤³Ìʦ¶ÔÓ²¼þµÄÀí½âºÍÊìÁ·³Ì¶È»áºÜ´ó³Ì¶ÈµÄ¾ö¶¨Èí¼þµÄÐÔÄÜ/Îȶ¨ÐԵȷǹ¦ÄÜÐÔÖ¸±ê£¬¶øÕⲿ·ÖÒ»ÏòÊÇÏà¶Ô¸´Ôӵģ¬ÐèÒª×ÊÉîµÄ¹¤³Ìʦ²ÅÄܱ£Ö¤ÖÊÁ¿¡£

10. Èí¼þ¶ÔÓ²¼þÉè¼Æ¸ß¶ÈÒÀÀµ£¬²»Äܱ£³ÖÏà¶ÔÎȶ¨£¬¿Éά»¤ÐԺͿÉÖØÓÃÐÔ²î

11. Èí¼þ²»ÄÜÀ뿪Ӳ¼þµ¥¶À²âÊÔºÍÑéÖ¤£¬ÍùÍùÐèÒªºÍÓ²¼þÑé֤ͬ²½½øÐУ¬Ôì³É½ø¶ÈǰËɺó½ô£¬´íÎó¶¨Î»·¶Î§À©´ó¡£

Õë¶ÔÕâЩÎÊÌ⣬Óм¸·½ÃæµÄ½â¾ö˼·£º

1. ÓÃÈí¼þʵÏÖÓ²¼þ¹¦ÄÜ¡£Ñ¡ÓøüÇ¿´óµÄ´¦ÀíÆ÷£¬ÓÃÈí¼þÀ´ÊµÏÖ²¿·ÖÓ²¼þ¹¦ÄÜ£¬²»½ö¿ÉÒÔ½µµÍ¶ÔÓ²¼þµÄÒÀÀµ£¬ÔÚÏìÓ¦±ä»¯£¬±ÜÃâ¶ÔÌØ¶¨Ðͺźͳ§É̵ÄÒÀÀµ·½Ãæ¶¼ºÜÓкô¦¡£ÕâÔÚһЩÐÐÒµÀïÒѾ­³ÉΪÁËÇ÷ÊÆ¡£ÔÚPCƽ̨Ҳ¾­ÀúÁËÕâÑùµÄ¹ý³Ì£¬±ÈÈçÔçÆÚµÄºº¿¨¡£

12. ½«¶ÔÓ²¼þµÄÒÀÀµ¶ÀÁ¢³ÉÓ²¼þ³éÏó²ã£¬¾¡¿ÉÄÜʹÈí¼þµÄÆäËû²¿·ÖÓ²¼þÎ޹أ¬²¢¿ÉÒÔÍÑÀëÓ²¼þÔËÐС£Ò»·½Ã潫Ӳ¼þ±ä¸üÉõÖÁ»»¼þµÄ·çÏÕ¿ØÖÆÔÚÓÐÏ޵ķ¶Î§ÄÚ£¬ÁíÒ»·½ÃæÌá¸ßÈí¼þ²¿·ÖµÄ¿É²âÊÔÐÔ¡£

2.2. Îȶ¨ÐÔÒªÇó¸ß

´ó²¿·ÖǶÈëʽÈí¼þ¶¼¶Ô³ÌÐòµÄ³¤ÆÚÎȶ¨ÔËÐÐÓнϸߵÄÒªÇó¡£±ÈÈçÊÖ»ú¾­³£¼¸¸öÔ¿ª»ú£¬Í¨Ñ¶É豸ÔòÒªÇó24*7Õý³£ÔËÐУ¬¼´Ê¹ÊÇͨѶÉϵIJâÊÔÉ豸ҲҪÇóÖÁÉÙÕý³£ÔËÐÐ8Сʱ¡£ÎªÁËÎȶ¨ÐÔµÄÄ¿±ê£¬ÓÐһЩ±È½Ï³£ÓõÄÉè¼ÆÊֶΣº

1. ½«²»Í¬µÄÈÎÎñ·Ö²¼ÔÚ¶ÀÁ¢µÄ½ø³ÌÖС£Á¼ºÃµÄÄ£¿é»¯Éè¼ÆÊǹؼü

13. Watch Dog, Heart beat£¬ÖØÐÂÆô¶¯Ê§Ð§µÄ½ø³Ì¡£

14. ÍêÉÆ¶øÍ³Ò»µÄÈÕ־ϵͳÒÔ¿ìËÙ¶¨Î»ÎÊÌ⡣ǶÈëʽÉ豸һ°ãȱ·¦ÓÐÁ¦µÄµ÷ÊÔÆ÷£¬ÈÕ־ϵͳÓÈÆäÖØÒª¡£

15. ½«´íÎó¹ÂÁ¢ÔÚ×îСµÄ·¶Î§ÄÚ£¬±ÜÃâ´íÎóµÄÀ©É¢ºÍÁ¬Ëø·´Ó¦¡£ºËÐÄ´úÂëÒª¾­¹ý³ä·ÖµÄÑéÖ¤£¬¶Ô·ÇºËÐÄ´úÂ룬¿ÉÒÔÔÚ¼à¿Ø»òÕßɳºÐÖÐÔËÐУ¬±ÜÃâÆäÆÆ»µÕû¸öϵͳ¡£

¾ÙÀý£¬SymbianÉϵÄGPRS·ÃÎÊÊܲ»Í¬Ó²¼þºÍ²Ù×÷ϵͳ°æ±¾Ó°Ï죬¹¦Äܲ»ÊǷdz£Îȶ¨¡£ÆäÖÐÓÐÒ»¸ö°æ±¾Éϵ±¹Ø±ÕGPRSÁ¬½Óʱһ¶¨»á±ÀÀ££¬¶øÇÒÊôÓÚknown issue¡£½«GPRSÁ¬½Ó£¬HTTPЭÒé´¦Àí£¬ÎļþÏÂÔØµÈ²Ù×÷¶ÀÁ¢µ½Ò»¸ö½ø³ÌÖУ¬ËäȻÿ´Î²Ù×÷Íê±Ï¸Ã½ø³Ì¶¼»á±ÀÀ££¬¶ÔÓû§È´Ã»ÓÐÓ°Ïì¡£

16. Ë«±¸·ÝÕâÑùµÄÊֶνÏÉÙ²ÉÓÃ

2.3. ÄÚ´æ²»×ã

ËäÈ»µ±½ñµÄǶÈëʽϵͳµÄÄÚ´æ±ÈÖ®ÒÔK¼ÆÊýµÄʱ´úÒѾ­ÓÐÁ˺ܴóµÄÌá¸ß£¬µ«ÊÇËæ×ÅÈí¼þ¹æÄ£µÄÔö³¤£¬ÄÚ´æ²»×ãµÄÎÊÌâÒÀȻʱʱÀ§ÈÅ×Åϵͳ¼Ü¹¹Ê¦¡£ÓÐһЩԭÔò£¬¼Ü¹¹Ê¦ÔÚ½øÐÐÉè¼Æ¾ö²ßµÄʱºò¿ÉÒԲο¼£º

2.3.1. ÐéÄâÄÚ´æ¼¼Êõ

ÓÐһЩǶÈëʽÉ豸ÐèÒª´¦Àí¾Þ´óµÄÊý¾ÝÁ¿£¬¶øÕâЩÊý¾Ý²»¿ÉÄÜÈ«²¿×°ÈëÄÚ´æÖС£Ò»Ð©Ç¶Èëʽ²Ù×÷ϵͳ²»ÌṩÐéÄâÄÚ´æ¼¼Êõ£¬±ÈÈçWinCE4.2ÿ¸ö³ÌÐò×î¶àÖ»ÄÜʹÓÃ32MÄÚ´æ¡£¶ÔÕâÑùµÄÓ¦Ó㬼ܹ¹Ê¦Ó¦¸ÃÌØ±ðÉè¼Æ×Ô¼ºµÄÐéÄâÄÚ´æ¼¼Êõ¡£ËùνµÄÐéÄâÄÚ´æ¼¼ÊõµÄºËÐÄÊÇ£¬½«ÔÝʱ²»Ì«¿ÉÄÜʹÓõÄÊý¾ÝÒÆ³öÄÚ´æ¡£ÕâÉæ¼°µ½Ò»Ð©¼¼Êõµã£º

1. ÒýÓüÆÊý£¬ÕýÔÚʹÓõÄÊý¾Ý²»ÄÜÒÆ³ö¡£

2. ʹÓÃÔ¤²â£¬Ô¤²âÏÂÒ»¸ö½×¶Îij¸öÊý¾ÝµÄʹÓÿÉÄÜÐÔ¡£»ùÓÚÔ¤²âÒÆ³öÊý¾Ý»òÕßÌáǰװÈëÊý¾Ý¡£

3. ռλÊý¾Ý/¶ÔÏó¡£

4. ¸ßËÙ»º´æ¡£ÔÚ¸´ÔÓÊý¾Ý½á¹ûÏ»º´æ¸ßƵÂÊʹÓõÄÊý¾Ý£¬Ö±½Ó·ÃÎÊ¡£

5. ¿ìËٵij־û¯ºÍ×°ÔØ¡£

ÏÂͼÊÇÒ»¸öÈ«¹úµçÐÅ»ú·¿¹ÜÀíϵͳµÄ½çÃæÊ¾Òâͼ£º

ÿ¸ö½Úµã϶¼ÓдóÁ¿µÄÊý¾ÝÐèÒª×°ÔØ£¬¿ÉÒÔʹÓÃÉÏÊö¼¼Êõ½«ÄÚ´æÕ¼Óýµµ½×îµÍ¡£

2.3.2. Á½¶Îʽ¹¹Ôì

ÔÚÄÚ´æÓÐÏÞµÄϵͳÀ¶ÔÏó¹¹Ôìʧ°ÜÊDZØÐëÒª´¦ÀíµÄÎÊÌâ,ʧ°ÜµÄÔ­ÒòÖÐ×î³£¼ûµÄÔòÊÇÄÚ´æ²»×㣨ʵ¼ÊÉÏÕâÒ²ÊǶÔPCƽ̨µÄÒªÇ󣬵«ÊÇÔÚʵ¼ÊÖÐÍùÍùºöÂÔ£¬ÒòΪÄÚ´æÊµÔÚ±ãÒË£©¡£Á½¶Îʽ¹¹Ôì¾ÍÊÇÒ»ÖÖ³£ÓöøÓÐЧµÄÉè¼Æ¡£¾ÙÀýÀ´Ëµ£º

CMySimpleClass:
class CMySimpleClass
{
public:
CMySimpleClass();
~CMySimpleClass();
...
private:
int SomeData;
};
CMyCompoundClass:
class CMyCompoundClass
{
public:
CMyCompoundClass();
~CMyCompoundClass();
...
private:
CMySimpleClass* iSimpleClass;
};

ÔÚCMyCompoundClassµÄ¹¹Ô캯ÊýÀï³õʼ»¯iSimpleClass¶ÔÏó¡£

CMyCompoundClass::CMyCompoundClass()
{
iSimpleClass = new CMySimpleClass;
}

µ±´´½¨CMyCompoundClassµÄʱºò»á·¢ÉúÊ²Ã´ÄØ£¿

CMyCompoundClass* myCompoundClass = new CMyCompoundClass;

1. ΪCMyCompoundClassµÄ¶ÔÏó·ÖÅäÄÚ´æ

17. µ÷ÓÃCMyCompoundClass¶ÔÏóµÄ¹¹Ô캯Êý

18. ÔÚ¹¹Ô캯ÊýÖд´½¨Ò»¸öCMySimpleClassµÄʵÀý

19. ¹¹Ô캯Êý½áÊø·µ»Ø

Ò»Çп´ÆðÀ´¶¼ºÜ¼òµ¥£¬µ«ÊÇÈç¹ûµÚÈý²½´´½¨CMySimpleClass¶ÔÏóµÄʱºò·¢ÉúÄÚ´æ²»×ãµÄ´íÎóÔõô°ìÄØ£¿¹¹Ô캯ÊýÎÞ·¨·µ»ØÈκδíÎóÐÅÏ¢ÒÔÌáʾµ÷ÓÃÕß¹¹ÔìûÓгɹ¦¡£µ÷ÓÃÕßÓÚÊÇ»ñµÃÁËÒ»¸öÖ¸ÏòCMyCompoundClassµÄÖ¸Õ룬µ«ÊÇÕâ¸ö¶ÔÏó²¢Ã»Óй¹ÔìÍêÕû¡£

Èç¹ûÔÚ¹¹Ô캯ÊýÖÐÅ׳öÒì³£»áÔõôÑùÄØ£¿ÕâÊǸöÖøÃûµÄجÃΣ¬ÒòΪÎö¹¹º¯Êý²»»á±»µ÷Óã¬ÔÚ´´½¨CMySimpleClass¶ÔÏó֮ǰÈç¹û·ÖÅäÁË×ÊÔ´¾Í»áй¶¡£¹ØÓÚÔÚ¹¹Ô캯ÊýÖÐÅ׳öÒì³£¿ÉÒÔµ¥½²Ò»¸öСʱ£¬µ«ÊÇÓÐÒ»¸ö½¨ÒéÊÇ£º¾¡Á¿±ÜÃâÔÚ¹¹Ô캯ÊýÖÐÅ׳öÒì³£¡£

ËùÒÔ£¬Ê¹ÓÃÁ½¶Îʽ¹¹Ôì·¨ÊÇÒ»¸ö¸üºÃµÄÑ¡Ôñ¡£¼òµ¥µÄ˵£¬¾ÍÊÇÔÚ¹¹Ô캯Êý±ÜÃâÈκοÉÄܲúÉú´íÎóµÄ¶¯×÷£¬±ÈÈç·ÖÅäÄڴ棬¶ø°ÑÕâЩ¶¯×÷·ÅÔÚ¹¹ÔìÍê³ÉÖ®ºó£¬µ÷ÓÃÁíÒ»¸öº¯Êý¡£±ÈÈç:

AddressBook* book = new AddressBook()
If(!book->Construct())
{
delete book;
book = NULL;
}

ÕâÑù¿ÉÒÔ±£Ö¤µ±Construct²»³É¹¦µÄʱºòÊÍ·ÅÒѾ­·ÖÅäµÄ×ÊÔ´¡£

ÔÚ×îÖØÒªµÄÊÖ»ú²Ù×÷ϵͳSymbianÉÏ£¬¶þ¶Îʽ¹¹Ôì·¨ÆÕ±éʹÓá£

2.3.3. ÄÚ´æ·ÖÅäÆ÷

²»Í¬µÄϵͳÓÐ×Ų»Í¬µÄÄÚ´æ·ÖÅäµÄÌØµã¡£ÓÐЩҪÇó·ÖÅäºÜ¶àСÄڴ棬ÓеÄÔòÐèÒª¾­³£Ôö³¤ÒѾ­·ÖÅäµÄÄÚ´æ¡£Ò»¸öºÃµÄÄÚ´æ·ÖÅäÆ÷¶ÔǶÈëʽµÄÈí¼þµÄÐÔÄÜÓÐʱ¾ßÓÐÖØ´óµÄÒâÒå¡£Ó¦¸ÃÔÚϵͳÉè¼ÆÊ±±£Ö¤Õû¸öϵͳʹÓÃͳһµÄÄÚ´æ·ÖÅäÆ÷£¬²¢ÇÒ¿ÉÒÔËæÊ±¸ü»»¡£

2.3.4. ÄÚ´æÐ¹Â©

ÄÚ´æÐ¹Â©¶ÔǶÈëʽϵͳÓÐÏÞµÄÄÚ´æÊǷdz£ÑÏÖØµÄ¡£Í¨¹ýʹÓÃ×Ô¼ºµÄÄÚ´æ·ÖÅäÆ÷£¬¿ÉÒÔºÜÈÝÒ׵ĸú×ÙÄÚ´æµÄ·ÖÅäÊÍ·ÅÇé¿ö£¬´Ó¶ø¼ì²â³öÄÚ´æÐ¹Â©µÄÇé¿ö¡£

2.4. ´¦ÀíÆ÷ÄÜÁ¦ÓÐÏÞ£¬ÐÔÄÜÒªÇó¸ß

ÕâÀï²»ÌÖÂÛʵʱϵͳ£¬ÄÇÊÇÒ»¿éºÜ´óµÄרҵ»°Ìâ¡£¶ÔÒ»°ãµÄǶÈëʽϵͳ¶øÑÔ£¬ÓÉÓÚ´¦ÀíÆ÷ÄÜÁ¦ÓÐÏÞ£¬ÒªÌرð×¢ÒâÐÔÄܵÄÎÊÌ⡣һЩºÜºÃµÄ¼Ü¹¹Éè¼ÆÓÉÓÚ²»ÄÜÂú×ãÐÔÄÜÒªÇó£¬×îÖÕµ¼ÖÂÕû¸öÏîÄ¿µÄʧ°Ü¡£

2.4.1. µÖÓùм¼ÊõµÄÓÕ»ó

¼Ü¹¹Ê¦±ØÐëÃ÷°×£¬Ð¼¼Êõ³£³£Òâζן´ÔӺ͸üµÍµÄÐÔÄÜ¡£¼´Ê¹Õâ²»ÊǾø¶ÔµÄ£¬ÓÉÓÚǶÈëʽϵͳӲ¼þÐÔÄÜËùÏÞ£¬µ¯ÐԽϵ͡£Ò»µ©·¢ÏÖм¼ÊõÓк͵±³õÉèÏ벻֮ͬ´¦£¬¾Í¸üÄÑͨ¹ýÐÞ¸ÄÀ´ÊÊÓ¦¡£±ÈÈçGWT¼¼Êõ¡£ÕâÊÇGoogleÍÆ³öµÄAjax¿ª·¢¹¤¾ß£¬Ëü¿ÉÒÔÈóÌÐòÔ±Ïñ¿ª·¢Ò»¸ö×ÀÃæÓ¦ÓóÌÐòÒ»Ñù¿ª·¢WebµÄAjax³ÌÐò¡£ÕâʹµÃÔÚǶÈëʽϵͳÉÏÓÃÒ»Ì×´úÂëʵÏÖÔ¶³ÌºÍ±¾µØ²Ù×÷½çÃæ³ÉΪÁ˺ÜÈÝÒ×µÄÒ»¼þÊ¡£µ«ÊÇÔÚǶÈëʽÉ豸ÉÏÔËÐÐB-S½á¹¹µÄÓ¦Óã¬ÐÔÄÜÉÏÊÇÒ»¸öºÜ´óµÄÌôÕ½¡£Í¬Ê±£¬ä¯ÀÀÆ÷¼æÈÝ·½ÃæµÄÎÊÌâÒ²ºÜÑÏÖØ£¬GWTĿǰµÄ°æ±¾»¹²»¹»ÍêÉÆ¡£

ÊÂʵ֤Ã÷£¬Ç¶ÈëʽµÄÔ¶³Ì¿ØÖÆ·½°¸»¹ÊÇÒª²ÉÓÃActivex,VNC»òÕ߯äËûµÄ·½°¸¡£

2.4.2. ²»ÒªÓÐÌ«¶àµÄ²ã´Î

·Ö²ã½á¹¹ÓÐÀûÓÚÇåÎúµÄ»®·ÖϵͳְÔð£¬ÊµÏÖϵͳµÄ½âñµ«ÊÇÿ¶àÒ»¸ö²ã´Î£¬¾ÍÒâζ×ÅÐÔÄܵÄÒ»´ÎËðʧ¡£ÓÈÆäÊǵ±²ãºÍ²ãÖ®¼äÐèÒª´«µÝ´óÁ¿Êý¾ÝµÄʱºò¡£¶ÔǶÈëʽϵͳ¶øÑÔ£¬ÔÚ²ÉÓ÷ֲã½á¹¹Ê±Òª¿ØÖƲã´ÎÊýÁ¿£¬²¢ÇÒ¾¡Á¿²»Òª´«µÝ´óÁ¿Êý¾Ý£¬ÓÈÆäÊÇÔÚ²»Í¬½ø³ÌµÄ²ã´ÎÖ®¼ä¡£Èç¹ûÒ»¶¨Òª´«µÝÊý¾Ý£¬Òª±ÜÃâ´óÁ¿µÄÊý¾Ý¸ñʽת»»£¬ÈçXMLµ½¶þ½øÖÆ£¬C++½á¹¹µ½Python½á¹¹¡£

ǶÈëʽϵͳÄÜÁ¦ÓÐÏÞ£¬Ò»¶¨Òª½«ÓÐÏÞµÄÄÜÁ¦ÓÃÔÚϵͳµÄºËÐŦÄÜÉÏ¡£

2.5. ´æ´¢É豸Ò×Ë𻵣¬ËٶȽÏÂý

ÊÜÌå»ýºÍ³É±¾µÄÏÞÖÆ£¬´ó²¿·ÖµÄǶÈëʽÉ豸ʹÓÃÖîÈçCompact Flash, SD, mini SD, MMCµÈ×÷Ϊ´æ´¢É豸¡£ÕâЩÉ豸ËäÈ»ÓÐ×Ų»µ£ÐÄ»úеÔ˶¯Ë𻵵ÄÓŵ㣬µ«ÊÇÆä±¾ÉíµÄʹÓÃÊÙÃü¶¼±È½Ï¶ÌÔÝ¡£±ÈÈ磬CF¿¨Ò»°ãÖ»ÄÜд100Íò´Î¡£¶øSD¸ü¶Ì£¬Ö»ÓÐ10Íò´Î¡£¶ÔÓÚÏñÊýÂëÏà»úÕâÑùµÄÓ¦Óã¬Ò²ÐíÊÇ×ã¹»µÄ¡£µ«ÊǶÔÓÚÐèҪƵ·±²Áд´ÅÅ̵ÄÓ¦Ó㬱ÈÈçÀúÊ·Êý¾Ý¿â£¬´ÅÅ̵ÄËð»µÎÊÌâ»áºÜ¿ìÏÔÏÖ¡£±ÈÈçÓÐÒ»¸öÓ¦ÓÃʽÿÌìÏòCF¿¨ÉÏдһ¸ö16MµÄÎļþ£¬ÎļþϵͳÊÇFAT16, ÿ´Ø´óСÊÇ2K£¬ÄÇôдÍêÕâ¸ö16MµÄÎļþ£¬·ÖÇø±íÐèҪд8192´Î£¬ÓÚÊÇÒ»¸ö100Íò´ÎÊÙÃüµÄCFʵ¼ÊÄܹ»¹¤×÷µÄʱ¼äÊÇ1000000/8192 = 122Ìì¡£¶øË𻵵Äʱºò£¬CF¿¨µÄÆäËû¾ø´ó²¿·ÖµØ·½µÄʹÓôÎÊý²»¹ýÍò·ÖÖ®Ò»¡£

³ýÁËÒòΪ¾²Ì¬µÄÎļþ·ÖÇø±íµÈÇø¿é±»Æµ·±µÄ¶Áд¶øÌáǰË𻵣¬Ò»Ð©Ç¶ÈëʽÉ豸»¹ÒªÃæ¶ÔÖ±½Ó¶ÏµçµÄÌôÕ½£¬Õâ»áÔÚ´æ´¢É豸ÉϲúÉú²»ÍêÕûµÄÊý¾Ý¡£

2.5.1. ËðºÄ¾ùºâ

ËðºÄ¾ùºâµÄ»ù±¾Ë¼Â·ÊÇÆ½¾ùµØÊ¹Óô洢Æ÷Éϵĸ÷¸öÇø¿é¡£ÐèҪά»¤Ò»ÕÅ´æ´¢Æ÷Çø¿éʹÓÃÇé¿öµÄ±í£¬Õâ¸ö±í°üÀ¨Çø¿éµÄÆ«ÒÆÎ»Ö㬵±Ç°ÊÇ·ñ¿ÉÓã¬ÒÔ¼°ÒѾ­²ÁдµØ´ÎÊý¡£µ±ÓÐеIJÁдÇëÇóµÄʱºò£¬¸ù¾ÝÒÔÏÂÔ­ÔòÑ¡ÔñÇø¿é£º

1. ¾¡Á¿Á¬Ðø

20. ²Áд´ÎÊý×îÉÙ

¼´Ê¹ÊǸüÐÂÒѾ­´æÔÚµÄÊý¾Ý£¬Ò²»áʹÓÃÒÔÉÏÔ­Ôò·ÖÅäеÄÇø¿é¡£Í¬Ñù£¬ÕâÕűíµÄ´æ·ÅλÖÃÒ²²»ÄÜÊǹ̶¨²»±äµÄ£¬·ñÔòÕâÕűíËùÕ¼¾ÝµÄÇø¿é¾Í»á×îÏÈË𻵡£µ±Òª¸üÐÂÕâÕűíµÄʱºò£¬Í¬ÑùҪʹÓÃÒÔÉÏËã·¨·ÖÅäÇø¿é¡£

Èç¹û´æ´¢Æ÷ÉÏÓдóÁ¿µÄ¾²Ì¬Êý¾Ý£¬ÄÇôÉÏÊöËã·¨¾ÍÖ»ÄÜÕë¶ÔʣϵĿռäÉúЧ£¬ÕâÖÖÇé¿öÏ»¹ÒªÊµÏÖ¶ÔÕâЩ¾²Ì¬Êý¾ÝµÄ°áÔ˵ÄËã·¨¡£µ«ÊÇÕâÖÖËã·¨»á½µµÍд²Ù×÷µÄÐÔÄÜ£¬Ò²Ôö¼ÓÁËËã·¨µÄ¸´ÔÓ¶È¡£Ò»°ã¶¼Ö»Ê¹Óö¯Ì¬¾ùºâËã·¨¡£

Ŀǰ±È½Ï³ÉÊìµÄËðºÄ¾ùºâµÄÎļþϵͳÓÐJFFS2, ºÍ YAFFS¡£Ò²ÓÐÁíÒ»ÖÖ˼·¾ÍÊÇÔÚFAT16µÈ´«Í³ÎļþϵͳÉÏʵÏÖËðºÄ¾ùºâ£¬Ö»ÒªÊÂÏÈ·ÖÅäÒ»¿é×ã¹»´óµÄÎļþ£¬ÔÚÎļþÄÚ²¿ÊµÏÖËðºÄ¾ùºâËã·¨¡£²»¹ý±ØÐëÐÞ¸ÄFAT16µÄ´úÂ룬¹Ø±Õ¶Ô×îºóÐÞ¸Äʱ¼äµÄ¸üС£

ÏÖÔÚµÄCF¿¨ºÍSD¿¨ÓеÄÒѾ­ÔÚÄÚ²¿ÊµÏÖÁËËðºÄ¾ùºâ£¬ÕâÖÖÇé¿öϾͲ»ÐèÒªÈí¼þʵÏÖÁË¡£

2.5.2. ´íÎó»Ö¸´

Èç¹ûÔÚÏò´æ´¢Æ÷дÊý¾ÝµÄʱºò·¢Éú¶Ïµç»òÕß±»°Î³ö£¬ÄÇôËùдµÄÇøÓòµÄÊý¾Ý¾Í´¦ÓÚδ֪µÄ״̬¡£ÔÚһЩӦÓÃÖУ¬Õâ»áµ¼Ö²»ÍêÕûµÄÎļþ£¬¶øÔÚÁíһЩӦÓÃÖУ¬Ôò»áµ¼ÖÂϵͳʧ°Ü¡£ËùÒÔ¶ÔÕâÀà´íÎóµÄ»Ö¸´Ò²ÊÇǶÈëʽÈí¼þÉè¼Æ±ØÐ뿼Âǵġ£³£ÓõÄ˼·ÓÐÁ½ÖÖ£º

1. ÈÕÖ¾Ð͵ÄÎļþϵͳ

ÕâÖÖÎļþϵͳ²¢²»ÊÇÖ±½Ó´æ´¢Êý¾Ý£¬¶øÊÇÒ»ÌõÌõµÄÈÕÖ¾£¬ËùÒÔµ±·¢Éú¶ÏµçµÄʱºò£¬×Ü¿ÉÒÔ»Ö¸´µ½Ö®Ç°µÄ״̬¡£ÕâÀàÎļþϵͳµÄ´ú±íÈçext3¡£

21. Ë«±¸·Ý

Ë«±¸·ÝµÄ˼·¸ü¼òµ¥£¬ËùÓеÄÊý¾Ý¶¼Ð´Á½·Ý¡£Ã¿´Î½»ÌæÊ¹Óá£Îļþ·ÖÇø±íÒ²±ØÐëÊÇË«±¸·ÝµÄ¡£¼ÙÉèÓÐÊý¾Ý¿éA£¬A1ÊÇËûµÄ±¸·Ý¿é£¬ÔÚ³õʼʱ¿ÌºÍAµÄÄÚÈÝÊÇÒ»Öµġ£ÔÚ·ÖÇø±íÖУ¬FÖ¸ÏòÊý¾Ý¿éA£¬F1ÊÇËûµÄ±¸·Ý¿é¡£µ±ÐÞ¸ÄÎļþʱ£¬Ê×ÏÈÐÞ¸ÄÊý¾Ý¿éA1µÄÄÚÈÝ£¬Èç¹û´Ëʱ¶Ïµç£¬A1µÄÄÚÈÝ´íÎ󣬵«ÒòΪFÖ¸ÏòµÄÊÇÍêºÃµÄA£¬ËùÒÔÊý¾ÝûÓÐË𻵡£Èç¹ûA1Ð޸ijɹ¦£¬ÔòÐÞ¸ÄF1µÄÄÚÈÝ£¬Èç¹û´Ëʱ¶Ïµç£¬ÒòΪFÊÇÍêºÃµÄ£¬ËùÒÔÒÀȻûÓÐÎÊÌâ¡£

ÏÖÔÚµÄFlashÉ豸£¬ÓеÄÒѾ­ÄÚÖôíÎó¼ì²âºÍ´íÎóУÕý¼¼Êõ£¬¿ÉÒÔ±£Ö¤ÔڶϵçʱÊý¾ÝµÄÍêÕû¡£»¹ÓеİüÀ¨×Ô¶¯µÄ¶¯Ì¬/¾²Ì¬ËðºÄ¾ùºâËã·¨ºÍ»µ¿é´¦Àí£¬ÍêÈ«ÎÞÐëÉϲãÈí¼þ¶îÍâ¶Ô´ý£¬¿ÉÒÔµ±×÷Ó²ÅÌʹÓá£ËùÒÔ£¬Ó²¼þÔ½·¢´ï£¬Èí¼þ¾Í»áÔ½¿É¿¿£¬¼¼Êõ²»¶ÏµÄ½ø²½£¬½«ÈÃÎÒÃÇ¿ÉÒ԰Ѹü¶àµÄ¾«Á¦Í¶Èëµ½Èí¼þ¹¦Äܵı¾Éí£¬ÕâÊÇ·¢Õ¹µÄÇ÷ÊÆ¡£

2.6. ¹ÊÕϳɱ¾¸ß°º

ǶÈëʽ²úÆ·¶¼ÊÇÈíÓ²¼þÒ»ÆðÏúÊ۵ĸøÓû§µÄ£¬ËùÒÔÕâ´øÀ´ÁËÒ»¸ö´¿Èí¼þËù²»¾ß±¸µÄÎÊÌ⣬ÄǾÍÊǵ±²úÆ··¢Éú¹ÊÕÏʱ£¬Èç¹ûÐèÒª·µ³§²ÅÄÜÐÞ¸´£¬Ôò³É±¾¾ÍºÜ¸ß¡£Ç¶ÈëʽÉ豸³£¼ûÓÐÒÔϵļ¸Àà¹ÊÕÏ£º

a) Êý¾Ý¹ÊÕÏ¡£ÓÉÓÚijЩԭÒòµ¼ÖÂÊý¾Ý²»ÄܶÁ³ö»òÕß²»Ò»Ö¡£±ÈÈç¶ÏµçÒýÆðµÄÊý¾Ý¿â´íÎó¡£

b) Èí¼þ¹ÊÕÏ¡£Èí¼þ±¾ÉíµÄȱÏÝ£¬ÐèҪͨ¹ý·¢²¼²¹¶¡³ÌÐò»òÕßа汾µÄÈí¼þÐÞÕý¡£

c) ϵͳ¹ÊÕÏ¡£±ÈÈçÓû§ÏÂÔØÁË´íÎóµÄϵͳÄںˣ¬µ¼ÖÂϵͳÎÞ·¨Æô¶¯¡£

d) Ó²¼þ¹ÊÕÏ¡£ÕâÖÖ¹ÊÕÏÖ»Óзµ³§£¬²»ÊôÓÚÎÒÃǵÄÌÖÂÛ·¶Î§¡£

Õë¶ÔǰÈýÀà¹ÊÕÏ£¬Òª¾¡¿ÉÄܱ£Ö¤¿Í»§×Ô¼º£¬»òÕßÏÖ³¡¼¼ÊõÈËÔ±¾Í¿ÉÒÔ½â¾ö¡£´Ó¼Ü¹¹µÄ½Ç¶È¿¼ÂÇ£¬ÈçÏÂÔ­Ôò¿ÉÒԲο¼£º

a) ʹÓþ߱¸´íÎó»Ö¸´ÄÜÁ¦µÄÊý¾Ý¹ÜÀíÉè¼Æ¡£µ±Êý¾Ý·¢Éú´íÎóʱ£¬Óû§¿ÉÒÔ½ÓÊܵĴ¦ÀíÒÀ´ÎÊÇ£º

i. ´íÎó±»¾ÀÕý£¬ËùÓÐÊý¾ÝÓÐЧ

ii. ´íÎó·¢ÉúʱµÄÊý¾Ý£¨¿ÉÄܲ»ÍêÕû£©¶ªÊ§£¬Ö®Ç°µÄÊý¾ÝÓÐЧ¡£

iii. ËùÓÐÊý¾Ý¶ªÊ§

iv. Êý¾ÝÒýÇæ±ÀÀ£ÎÞ·¨¼ÌÐø¹¤×÷

Ò»°ã¶øÑÔ£¬Âú×ãµÚ¶þ¸öÌõ¼þ¼´¿É¡£(ÈÕÖ¾£¬ÊÂÎñ£¬±¸·Ý£¬´íÎóʶ±ð)

b) ½«Ó¦ÓóÌÐòºÍϵͳ·ÖÀë¡£Ó¦ÓóÌÐòÓ¦¸Ã·ÅÖÃÔڿɲå°ÎµÄFlash¿¨ÉÏ£¬¿ÉÒÔͨ¹ý¶Á¿¨Æ÷½øÐÐÎļþ¸´ÖÆÉý¼¶¡£·Ç±ØÒªµÄÇé¿ö²»ÒªÊ¹ÓÃרÓÃÓ¦ÓÃÈí¼þÀ´Éý¼¶Ó¦ÓóÌÐò¡£

c) ÒªÓС°°²È«Ä£Ê½¡±¡£¼´µ±Ö÷ϵͳ±»Ë𻵺ó£¬É豸ÒÀÈ»¿ÉÒÔÆô¶¯£¬ÖØÐÂÉý¼¶ÏµÍ³¡£³£¼ûµÄuboot¿ÉÒÔ±£Ö¤ÕâÒ»µã£¬ÔÚϵͳË𻵺󣬿ÉÒÔ½øÈëubootͨ¹ýtftpÖØÐÂÉý¼¶¡£

3. Èí¼þ¿ò¼Ü

ÔÚ×ÀÃæÏµÍ³ºÍÍøÂçϵͳÉÏ£¬¿ò¼ÜÊÇÆÕ±éÓ¦Óõ쬱ÈÈçÖøÃûµÄACE, MFC, Ruby On RailsµÈ¡£¶øÔÚǶÈëʽϵͳÖУ¬¿ò¼ÜÔòÊǺÜÉÙʹÓõġ£¾¿ÆäÔ­Òò£¬´ó¸ÅÊÇÈÏΪǶÈëʽϵͳ¼òµ¥£¬Ã»ÓÐÖØ¸´ÐÔ£¬¹ýÓÚ×¢ÖØ¹¦ÄܵÄʵÏÖºÍÐÔÄܵÄÓÅ»¯¡£ÔÚǰÑÔÖÐÎÒÃÇÒѾ­Ìáµ½£¬ÏÖÔÚµÄǶÈëʽ·¢Õ¹Ç÷ÊÆÊÇÏòן´ÔÓ»¯£¬´óÐÍ»¯£¬ÏµÁл¯·¢Õ¹µÄ¡£ËùÒÔ£¬ÔÚǶÈëʽÏÂÉè¼ÆÈí¼þ¿ò¼ÜÒ²ÊǺÜÓбØÒª£¬Ò²ºÜÓмÛÖµµÄ¡£

3.1. ǶÈëʽÈí¼þ¼Ü¹¹ÃæÁÙµÄÎÊÌâ

Ç°ÃæÎÒÃǽ²µ½£¬Ç¶ÈëʽϵͳÈí¼þ¼Ü¹¹ËùÃæÁÙµÄһЩÎÊÌ⣬ÆäÖкÜÖØÒªµÄÒ»µãÊÇ£¬¶ÔÓ²¼þµÄÒÀÀµºÍÓ²¼þÏà¹ØÈí¼þµÄ¸´ÔÓÐÔ¡£»¹°üÀ¨Ç¶ÈëʽÈí¼þÔÚÎȶ¨ÐÔºÍÄÚ´æÕ¼Óõȷ½ÃæµÄ¿Á¿ÌÒªÇó¡£Èç¹ûÍŶÓÖеÄÿ¸öÈ˶¼ÊÇÕâЩ·½Ãæ¸ßÊֵϰ£¬Ò²ÐíÓпÉÄÜ¿ª·¢³ö¸ßÖÊÁ¿µÄÈí¼þ£¬µ«ÊÂʵÊÇÒ»¸öÍŶÓÖпÉÄÜÖ»ÓÐÒ»Á½¸ö×ÊÉîÈËÔ±£¬ÆäËû´ó²¿·Ö¶¼Êdzõ¼¶¹¤³Ìʦ¡£ÈËÈ˶¼È¥ºÍÓ²¼þ´ò½»µÀ£¬¶¼¸ºÔðÎȶ¨ÐÔ£¬ÐÔÄܵȵÈÖ¸±êµÄ»°£¬ÊǺÜÄѱ£Ö¤×îÖÕ²úÆ·ÖÊÁ¿µÄ¡£Èç¹û×é¼þÍŶÓʱ¶¼ÊǾ«Í¨Ó²¼þµÈµ×²ã¼¼ÊõµÄÈ˲ţ¬ÓÖºÜÄÑÉè¼Æ³öÔÚ¿ÉÓÃÐÔ£¬À©Õ¹ÐԵȷ½Ãæ³öÉ«µÄÈí¼þ¡£ÊõÒµÓÐר¹¥£¬¼Ü¹¹Ê¦µÄÑ¡Ôñ¾ö¶¨×ÅÍŶӵÄ×é³É·½Ê½¡£

ͬʱ£¬Ç¶ÈëʽÈí¼þ¿ª·¢ËäÈ»¸´ÔÓ£¬µ«ÊÇÒ²´æÔÚ´óÁ¿µÄÖØÓõĿÉÄÜÐÔ¡£ÈçºÎÖØÓã¬ÓÖÈçºÎÓ¦¶Ô½«À´µÄ±ä¸ü£¿

ËùÒÔ£¬ÈçºÎ½«¸´ÔÓÐÔ¶Ô´ó¶àÊýÈËÆÁ±Î£¬ÈçºÎ½«¹Ø×¢µã·ÖÀ룬ÈçºÎ±£Ö¤ÏµÍ³µÄ¹Ø¼ü·Ç¹¦ÄÜÖ¸±ê£¬ÊÇǶÈëʽÈí¼þ¼Ü¹¹Éè¼ÆÊ¦Ó¦¸Ã½â¾öµÄÎÊÌâ¡£Ò»ÖÖ¿ÉÄܵĽâ¾ö·½°¸¾ÍÊÇÈí¼þ¿ò¼Ü¡£

3.2. ʲôÊÇ¿ò¼Ü

¿ò¼ÜÊÇÔÚÒ»¸ö¸ø¶¨µÄÎÊÌâÁìÓòÄÚ£¬ÎªÁËÖØÓúÍÓ¦¶ÔδÀ´ÐèÇó±ä»¯¶øÉè¼ÆµÄÈí¼þ°ë³ÉÆ·¡£¿ò¼ÜÇ¿µ÷¶ÔÌØ¶¨ÁìÓòµÄ³éÏ󣬰üº¬´óÁ¿µÄרҵÁìÓò֪ʶ£¬ÒÔËõ¶ÌÈí¼þµÄ¿ª·¢ÖÜÆÚ£¬Ìá¸ßÈí¼þÖÊÁ¿ÎªÄ¿µÄ¡£Ê¹Óÿò¼ÜµÄ¶þ´Î¿ª·¢Õßͨ¹ýÖØÐ´×ÓÀà»ò×é×°¶ÔÏóµÄ·½Ê½À´ÊµÏÖÌØÊâµÄ¹¦ÄÜ¡£

3.2.1. Èí¼þ¸´ÓõIJã´Î

¸´ÓÃÊÇÔÚÎÒÃǾ­³£Ì¸µ½µÄ»°Ì⣬¡°²»ÒªÖظ´·¢Ã÷ÂÖ×Ó¡±Ò²ÊǶúÊìÄÜÏêµÄ½äÌõ¡£²»¹ý¶ÔÓÚ¸´ÓõÄÀí½âʵ¼ÊÉÏÊÇÓкܶà¸ö²ã´ÎµÄ¡£

×î»ù´¡µÄ¸´ÓÃÊǸ´ÖÆÕ³Ìù¡£Ä³¸ö¹¦ÄÜÒÔÇ°Ôø¾­ÊµÏÖ¹ý£¬ÔÙ´ÎÐèÒªµÄʱºò¾Í¸´ÖƹýÀ´£¬ÐÞ¸ÄһϾͿÉÒÔʹÓ᣾­Ñé·á¸»µÄ³ÌÐòÔ±Ò»°ã¶¼»áÓÐ×Ô¼ºµÄ³ÌÐò¿â£¬ÕâÑùËûÃÇʵÏÖµÄʱºò¾Í»á±ÈеijÌÐòÔ±¿ì¡£¸´ÖÆÕ³ÌùµÄȱµãÊÇ´úÂëûÓо­¹ý³éÏó£¬ÍùÍù²¢²»ÍêÈ«µÄÊÊÓã¬ËùÒÔÐèÒª½øÐÐÐ޸쬾­¹ý¶à´Î¸´Óú󣬴úÂ뽫»á±äµÃ»ìÂÒ£¬ÄÑÒÔÀí½â¡£ºÜ¶à¹«Ë¾µÄ²úÆ·¶¼ÓÐÕâ¸öÎÊÌ⣬һ¸ö²úÆ·µÄ´úÂë´ÓÁíÒ»¸ö²úÆ·¸´ÖƶøÀ´£¬ÐÞ¸ÄһϾÍÓã¬ÓÐʱºòÉõÖÁÀàÃû±äÁ¿Ãû¶¼²»¸Ä¡£°´ÕÕ¡°Ö»ÓÐΪ¸´ÓÃÉè¼ÆµÄ´úÂë²ÅÄÜÕæÕý¸´Óᱵıê×¼£¬Õâ³Æ²»ÉÏÊǸ´Ó㬻òÕß˵ÊǵÍˮƽµÄ¸´Óá£

¸ü¸ß¼¶µÄ¸´ÓÃÊÇÔòÊǿ⡣ÕâÖÖ¹¦ÄÜÐèÒª¶Ô¾­³£Ê¹ÓõŦÄܽøÐгéÏó£¬ÌáÈ¡³öÆäÖк㶨²»±äµÄ²¿·Ö£¬ÒÔ¿âµÄÐÎʽÌṩ¸ø¶þ´Î¿ª·¢³ÌÐòԱʹÓá£ÒòΪÉè¼Æ¿âµÄʱºò²»ÖªµÀ¶þ´Î¿ª·¢Õß»áÈçºÎʹÓã¬ËùÒÔ¶ÔÉè¼ÆÕßÓÐןܸߵÄÒªÇó¡£ÕâÊÇʹÓÃ×î¹ã·ºµÄÒ»ÖÖ¸´Ó㬱ÈÈç±ê×¼C¿â£¬STL¿â¡£ÏÖÔڷdz£Á÷ÐеÄPythonÓïÑÔµÄÖØÒªÓÅÊÆÖ®Ò»¾ÍÊÇÆä¿âÖ§³Ö·Ç³£¹ã·º£¬Ïà·´C++һֱȱÉÙÒ»¸öÇ¿´óͳһµÄ¿âÖ§³Ö£¬³ÉΪ¶Ì°å¡£ÔÚ¹«Ë¾ÄÚ²¿µÄ¿ª·¢ÖÐ×᳣ܽÓù¦Äܲ¢¿ª·¢³É¿âÊǺÜÓмÛÖµµÄ£¬È±µãÊǶԿâµÄÉý¼¶»áÓ°Ïìµ½ºÜ¶àµÄ²úÆ·£¬±ØÐëÉ÷Ö®ÓÖÉ÷¡£

¿ò¼ÜÊÇÁíÒ»ÖÖ¸´Ó᣺ͿâÒ»Ñù£¬¿ò¼ÜÒ²ÊǶÔϵͳÖв»±äµÄ²¿·Ö½øÐгéÏó²¢¼ÓÒÔʵÏÖ£¬Óɶþ´Î¿ª·¢ÕßʵÏÖÆäËû±ä»¯µÄ²¿·Ö¡£µäÐ͵Ŀò¼ÜºÍ¿âµÄ×î´óµÄÇø±ðÊÇ£¬¿âÊǾ²Ì¬µÄ£¬Óɶþ´Î¿ª·¢Õßµ÷Óõģ»¿ò¼ÜÊÇ»î×ŵģ¬ËüÊÇÖ÷¿ØÕߣ¬¶þ´Î¿ª·¢ÕߵĴúÂë±ØÐë·ûºÏ¿ò¼ÜµÄÉè¼Æ£¬ÓÉ¿ò¼Ü¾ö¶¨ÔÚºÎʱµ÷Óá£

¾Ù¸öÀý×Ó£¬Ò»¸öÍøÂçÓ¦ÓÃ×ÜÊÇ񻃾¼°µ½Á¬½ÓµÄ½¨Á¢£¬Êý¾ÝÊÕ·¢ºÍÁ¬½ÓµÄ¹Ø±Õ¡£ÒÔ¿âµÄÐÎʽÌṩÊÇÕâÑùµÄ£º

conn = connect(host,port);
if(conn.isvalid())
{
data = conn.recv();
printf(data);
conn.close();
}

¿ò¼ÜÔòÊÇÕâÑùµÄ£º

class mycomm:class connect
{
public:
host();
port();
onconnected();
ondataarrived(unsigned char* data, int len);
onclose();
};

¿ò¼Ü»áÔÚ¡°Êʵ±¡±µÄʱ»ú´´½¨mycomm¶ÔÏ󣬲¢²éѯhostºÍport£¬È»ºó½¨Á¢Á¬½Ó¡£ÔÚÁ¬½Ó½¨Á¢ºó£¬µ÷ÓÃonconnected()½Ó¿Ú£¬¸ø¶þ´Î¿ª·¢ÕßÌṩ½øÐд¦ÀíµÄ»ú»á¡£µ±Êý¾Ýµ½´ïµÄʱºòµ÷ÓÃondataarrived½Ó¿ÚÈöþ´Î¿ª·¢Õß´¦Àí¡£ÕâÊǺÃÀ³ÎëÔ­Ôò£¬¡°²»ÒªÀ´ÕÒÎÒÃÇ£¬ÎÒÃÇ»áÈ¥ÕÒÄ㡱¡£

µ±È»£¬Ò»¸öÍêÕûµÄ¿ò¼Üͨ³£Ò²ÒªÌṩ¸÷Öֿ⹩¶þ´Î¿ª·¢ÕßʹÓᣱÈÈçMFCÌṩÁ˺ܶàµÄ¿â£¬ÈçCString, µ«±¾ÖÊÉÏËüÊÇÒ»¸ö¿ò¼Ü¡£±ÈÈçʵÏÖÒ»¸ö¶Ô»°¿òµÄOnInitDialog½Ó¿Ú£¬¾ÍÊÇÓÉ¿ò¼Ü¹æ¶¨µÄ¡£

3.2.2. Õë¶Ô¸ß¶ÈÌØ¶¨ÁìÓòµÄ³éÏó

ºÍ¿â±È½ÏÆðÀ´£¬¿ò¼ÜÊǸüÕë¶ÔÌØ¶¨ÁìÓòµÄ³éÏ󡣿⣬±ÈÈçC¿â£¬ÊÇÃæÏòËùÓеÄÓ¦Óõġ£¶ø¿ò¼ÜÏà¶ÔÀ´ËµÔòÒªÏÁÕ­µÄ¶à¡£±ÈÈçMFCÌṩµÄ¿ò¼ÜÖ»ÊʺÏÓÚWindowsƽ̨µÄ×ÀÃæÓ¦ÓóÌÐò¿ª·¢£¬ACEÔòÊÇÕë¶ÔÍøÂçÓ¦Óÿª·¢µÄ¿ò¼Ü£¬Ruby On RailsÊÇΪ¿ìËÙ¿ª·¢webÕ¾µãÉè¼ÆµÄ¡£

Ô½ÊÇÕë¶ÔÌØ¶¨µÄÁìÓò£¬³éÏó¾Í¿ÉÒÔ×öµÄԽǿ£¬¶þ´Î¿ª·¢¾Í¿ÉÒÔÔ½¼òµ¥£¬ÒòΪ¹²ÐԵĶ«Î÷Ô½¶à¡£±ÈÈçÎÒÃÇÉÏÃæÌ¸µ½Ç¶ÈëʽϵͳÈí¼þ¿ª·¢µÄÖî¶àÌØµã£¬Õâ¾ÍÊÇÌØ¶¨ÁìÓòµÄ¹²ÐÔ£¬¾ÍÊôÓÚ¿ÉÒÔ³éÏóµÄ²¿·Ö¡£¾ßÌ嵽ʵ¼ÊµÄǶÈëʽӦÓã¬ÓÖ»áÓиü¶àµÄ¹²ÐÔ¿ÉÒÔ³éÏó¡£

¿ò¼ÜµÄÉè¼ÆÄ¿µÄÊÇ×ܽáÌØ¶¨ÁìÓòµÄ¹²ÐÔ£¬ÒÔ¿ò¼ÜµÄ·½Ê½ÊµÏÖ£¬²¢¹æ¶¨¶þ´Î¿ª·¢ÕßµÄʵÏÖ·½Ê½£¬´Ó¶ø¼ò»¯¿ª·¢¡£ÏàÓ¦µÄ£¬Õë¶ÔÒ»¸öÁìÓò¿ª·¢µÄ¿ò¼Ü¾Í²»ÄÜ·þÎñÓÚÁíÒ»¸öÁìÓò¡£¶ÔÆóÒµ¶øÑÔ£¬¿ò¼ÜÊÇÒ»ÖÖ¼«ºÃµÄ»ýÀÛ֪ʶ£¬½µµÍ³É±¾µÄ¼¼ÊõÊֶΡ£

3.2.3. ½â³ýñîºÏºÍÓ¦¶Ô±ä»¯

¿ò¼ÜÉè¼ÆµÄÒ»¸öÖØÒªÄ¿µÄ¾ÍÊÇÓ¦¶Ô±ä»¯¡£Ó¦¶Ô±ä»¯µÄ±¾ÖʾÍÊǽâñî¡£´Ó¼Ü¹¹Ê¦µÄ½Ç¶È¿´£¬½âñî¿ÉÒÔ·ÖΪÈýÖÖ£º

1. Âß¼­½âñî¡£Âß¼­½âñîÊǽ«Âß¼­Éϲ»Í¬µÄÄ£¿é³éÏó²¢·ÖÀë´¦Àí¡£ÈçÊý¾ÝºÍ½çÃæµÄ½âñî¡£ÕâÒ²ÊÇÎÒÃÇ×î³£×öµÄ½âñî¡£

22. ֪ʶ½âñ֪ʶ½âñîÊÇͨ¹ýÉè¼ÆÈÃÕÆÎÕ²»Í¬ÖªÊ¶µÄÈ˽ö½öͨ¹ý½Ó¿Ú¹¤×÷¡£µäÐ͵ÄÈç²âÊÔ¹¤³ÌʦËùÕÆÎÕµÄרҵ֪ʶºÍ¿ª·¢¹¤³ÌʦËùÕÆÎյijÌÐòÉè¼ÆºÍʵÏÖµÄ֪ʶ¡£´«Í³µÄ²âÊԽű¾Í¨³£Êǽ«Õâ¶þÕߺ϶þΪһµÄ¡£ËùÒÔÒªÇó²âÊÔ¹¤³Ìʦͬʱ¾ß±¸±à³ÌµÄÄÜÁ¦¡£Í¨¹ýÊʵ±µÄ·½Ê½£¬¿ÉÒÔÈòâÊÔ¹¤³ÌʦÒÔ×î¼òµ¥µÄ·½Ê½ÊµÏÖËûµÄ²âÊÔÓÃÀý£¬¶ø¿ª·¢ÈËÔ±±àд´«Í³µÄ³ÌÐò´úÂëÀ´Ö´ÐÐÕâЩÓÃÀý¡£

23. ±äÓë²»±äµÄ½âñî¡£ÕâÊÇ¿ò¼ÜµÄÖØÒªÌØÕ÷¡£¿ò¼Üͨ¹ý¶ÔÁìÓò֪ʶµÄ·ÖÎö£¬½«¹²ÐÔ£¬Ò²¾ÍÊDz»±äµÄÄÚÈݹ̶¨ÏÂÀ´£¬¶ø½«¿ÉÄÜ·¢Éú±ä»¯µÄ²¿·Ö½»¸ø¶þ´Î¿ª·¢ÕßʵÏÖ¡£

3.2.4. ¿ò¼Ü¿ÉÒÔʵÏֺ͹涨·Ç¹¦ÄÜÐÔÐèÇó

·Ç¹¦ÄÜÐÔÐèÇóÊÇÖ¸ÈçÐÔÄÜ£¬¿É¿¿ÐÔ£¬¿É²âÊÔÐÔ£¬¿ÉÒÆÖ²ÐԵȡ£ÕâÐ©ÌØÐÔ¿ÉÒÔͨ¹ý¿ò¼ÜÀ´ÊµÏÖ¡£ÒÔÏÂÎÒÃÇÒ»Ò»¾ÙÀý¡£

ÐÔÄÜ¡£¶ÔÐÔÄܵÄÓÅ»¯×î¼É»äµÄ¾ÍÊÇÆÕ±éÓÅ»¯¡£ÏµÍ³µÄÐÔÄÜÍùÍùÈ¡¾öÓÚÒ»Ð©ÌØ¶¨µÄµã¡£±ÈÈçÔÚǶÈëʽϵͳÖУ¬¶Ô´æ´¢É豸µÄ·ÃÎÊÊDZȽÏÂýµÄ¡£Èç¹û¿ª·¢Õß²»×¢ÒâÕâ·½ÃæµÄÎÊÌ⣬Ƶ·±µÄ¶Áд´æ´¢É豸£¬¾Í»áÔì³ÉÐÔÄÜϽµ¡£Èç¹û¶Ô´æ´¢É豸µÄ¶ÁдÓÉ¿ò¼ÜÉè¼Æ£¬¶þ´Î¿ª·¢ÕßÖ»×÷ΪÊý¾ÝµÄÌṩºÍ´¦ÀíÕߣ¬ÄÇô¾Í¿ÉÒÔÔÚ¿ò¼ÜÖжԶÁдµÄƵÂʽøÐе÷½Ú£¬´Ó¶ø´ïµ½ÓÅ»¯ÐÔÄܵÄÄ¿µÄ¡£ÓÉÓÚ¿ò¼Ü¶¼Êǵ¥¶À¿ª·¢µÄ£¬Íê³Éºó¹©¹ã·ºÊ¹Óã¬ËùÒÔ¾ÍÓÐÌõ¼þ¶Ô¹Ø¼üµÄÐÔÄÜµã½øÐгä·ÖµÄÓÅ»¯¡£

¿É¿¿ÐÔ¡£ÒÔÉÏÃæµÄÍøÂçͨѶ³ÌÐòΪÀý£¬ÓÉÓÚ¿ò¼Ü¸ºÔðÁËÁ¬½ÓµÄ´´½¨ºÍ¹ÜÀí£¬Ò²´¦ÀíÁ˸÷ÖÖ¿ÉÄܵÄÍøÂç´íÎ󣬾ßÌåµÄʵÏÖÕßÎÞÐëÁ˽âÕâ·½ÃæµÄ֪ʶ£¬Ò²ÎÞÐëʵÏÖÕâ·½Ãæ´íÎó´¦ÀíµÄ´úÂ룬¾Í¿ÉÒÔ±£Ö¤Õû¸öϵͳÔÚÍøÂçͨѶ·½ÃæµÄ¿É¿¿ÐÔ¡£ÒÔ¿ò¼ÜµÄ·½Ê½Éè¼ÆÔÚ¿É¿¿ÐÔ·½ÃæµÄ×î´óÓÅÊÆ¾ÍÊÇ£º¶þ´Î¿ª·¢µÄ´úÂëÊÇÔÚ¿ò¼ÜµÄÕÆ¿ØÖ®ÄÚÔËÐеġ£Ò»·½Ãæ¿ò¼Ü¿ÉÒÔ½«ÈÝÒ׳ö´íµÄ²¿·ÖʵÏÖ£¬ÁíÒ»·½Ãæ¶Ô¶þ´Î¿ª·¢µÄ´úÂë²úÉúµÄ´íÎóÒ²¿ÉÒÔ²¶»ñºÍ´¦Àí¡£¶ø¿âÔò²»ÄÜ´úÌæÊ¹ÓÃÕß´¦Àí´íÎó¡£

¿É²âÊÔÐÔ¡£¿É²âÊÔÐÔÊÇÈí¼þ¼Ü¹¹ÐèÒª¿¼ÂǵÄÒ»¸öÖØÒª·½Ãæ¡£ÏÂÃæµÄÕ½ڻὲµ½£¬Èí¼þµÄ¿É²âÊÔÐÔÊÇÓÉÓÅÁ¼µÄÉè¼ÆÀ´±£Ö¤µÄ¡£Ò»·½Ã棬ÓÉÓÚ¿ò¼Ü¹æ¶¨Á˶þ´Î¿ª·¢µÄ½Ó¿Ú£¬ËùÒÔ¿ÉÒÔÆÈʹ¶þ´Î¿ª·¢Õß¿ª·¢³ö±ãÓÚ½øÐе¥Ôª²âÊԵĴúÂë¡£ÁíÒ»·½Ã棬¿ò¼ÜÒ²¿ÉÒÔÔÚϵͳ²âÊԵIJãÃæÉÏÌṩÒ×ÓÚʵÏÖ×Ô¶¯»¯²âÊԺͻعé²âÊÔµÄÉè¼Æ£¬ÀýÈçͳһÌṩµÄTL1½Ó¿Ú¡£

¿ÉÒÆÖ²ÐÔ¡£Èç¹ûÈí¼þµÄ¿ÉÒÆÖ²ÐÔÊÇÈí¼þÉè¼ÆµÄÄ¿±ê£¬¿ò¼ÜÉè¼ÆÕß¿ÉÒÔÔÚÉè¼Æ½×¶ÎÀ´±£Ö¤ÕâÒ»µã¡£Ò»ÖÖ·½Ê½ÊÇͨ¹ý¿çƽ̨µÄ¿âÀ´ÆÁ±Îϵͳ²îÒ죬ÁíÒ»ÖÖ¿ÉÄܵķ½Ê½¸ü¼Ó¼«¶Ë£¬»ùÓÚ¿ò¼ÜµÄ¶þ´Î¿ª·¢¿ÉÒÔÊǽű¾»¯µÄ¡£×é̬Èí¼þÊÇÕâ·½ÃæµÄÒ»¸öÀý×Ó£¬ÔÚPCÉÏ×é̬µÄ¹¤³Ì£¬Ò²¿ÉÒÔÔÚǶÈëʽÉ豸ÉÏÔËÐС£

3.3. Ò»¸ö¿ò¼ÜÉè¼ÆµÄʵÀý

3.3.1. »ù±¾¼Ü¹¹

3.3.2. ¹¦ÄÜÌØµã

ÉÏÃæÊÇÒ»¸ö²úƷϵÁеļܹ¹Í¼£¬ÆäÌØµãÊÇÓ²¼þ²¿·ÖÊÇÄ£¿é»¯µÄ£¬¿ÉÒÔËæÊ±²å°Î¡£²»Í¬µÄÓ²¼þÓ¦ÓÃÓÚ²»Í¬µÄͨѶ²âÊÔ³¡ºÏ¡£±ÈÈç¹âͨѶ²âÊÔ£¬xDSL²âÊÔ£¬Cable Modem²âÊԵȵȡ£Õë¶Ô²»Í¬µÄÓ²¼þ£¬ÐèÒª¿ª·¢²»Í¬µÄ¹Ì¼þºÍÈí¼þ¡£¹Ì¼þ²ãµÄ¹¦ÄÜÖ÷ÒªÊÇͨ¹ýUSB½Ó¿Ú½ÓÊÕÀ´×ÔÈí¼þµÄÖ¸Á²¢¶ÁдÏàÓ¦µÄÓ²¼þ½Ó¿Ú£¬ÔÙ½øÐÐһЩ¼ÆËãºó£¬½«½á¹û·µ»Ø¸øÈí¼þ¡£Èí¼þÔËÐÐÔÚWinCEƽ̨£¬³ýÁËÌṩһ¸ö´¥ÃþʽµÄͼÐλ¯½çÃæÍ⣬»¹¶ÔÍâÌṩ»ùÓÚXML(SOAP)½Ó¿ÚºÍTL1½Ó¿Ú¡£ÎªÁËʵÏÖ×Ô¶¯»¯²âÊÔ£¬»¹ÌṩÁË»ùÓÚLuaµÄ½Å±¾ÓïÑÔ½Ó¿Ú¡£Õû¸ö²úƷϵÁÐÓм¸Ê®¸ö²»Í¬µÄÓ²¼þÄ£¿é£¬ÏàÓ¦µÄÐèÒª¿ª·¢¼¸Ê®Ì×Èí¼þ¡£ÕâЩÈí¼þËäÈ»·þÎñÓÚ²»Í¬µÄÓ²¼þ£¬µ«ÊDZ˴ËÖ®¼äÓÐן߶ȵÄÏàËÆÐÔ¡£ËùÒÔ£¬Ñ¡ÔñÏÈ¿ª·¢Ò»¸ö¿ò¼Ü£¬ÔÙ»ùÓÚ¿ò¼Ü¿ª·¢¾ßÌåµÄÄ£¿éÈí¼þ³ÉÁË×îÓŵÄÑ¡Ôñ¡£

3.3.3. ·ÖÎö

Èí¼þ²¿·ÖµÄ½á¹¹·ÖÎöÈçÏ£º

ϵͳ·ÖΪÈí¼þ£¬¹Ì¼þºÍÓ²¼þÈý´ó¿é¡£Èí¼þºÍ¹Ì¼þÔËÐÐÔÚÁ½¿é¶ÀÁ¢µÄ°å×ÓÉÏ£¬Óи÷×ԵĴ¦ÀíÆ÷ºÍ²Ù×÷ϵͳ¡£Ó²¼þÔò²åÔڹ̼þËùÔڵİå×ÓÉÏ£¬ÊÇ¿ÉÒÔÌæ»»µÄ¡£

Èí¼þºÍ¹Ì¼þÆäʵ¶¼ÊÇÈí¼þ£¬ÏÂÃæÎÒÃÇ·Ö±ð·ÖÎö¡£

Èí¼þ

Èí¼þµÄÖ÷Òª¹¤×÷ÊÇÌṩ¸÷ÖÖÓû§½çÃæ¡£°üÀ¨±¾µØÍ¼Ðλ¯½çÃæ£¬SOAP·ÃÎʽçÃæ£¬TL1·ÃÎʽçÃæ¡£

Õû¸öÈí¼þ²¿·Ö·ÖΪÎå´ó²¿·Ö£º

ͨѶ²ã

ЭÒé²ã

ͼÐνçÃæ

SOAP·þÎñÆ÷

TL1·þÎñÆ÷

ͨѶ²ãÒªÆÁ±ÎÓû§¶Ô¾ßÌåͨÐŽéÖʺÍЭÒéµÄÁ˽⣬ÎÞÂÛÊÇUSB»¹ÊÇsocket£¬¶ÔÉϲ㶼²»²úÉúÓ°Ï졣ͨѶ²ã¸ºÔðÌṩ¿É¿¿µÄͨѶ·þÎñºÍÊʵ±µÄ´íÎó´¦Àí¡£Í¨¹ýÅäÖÃÎļþ,Óû§¿ÉÒԸıäËùʹÓõÄͨѶ²ã¡£

ЭÒé²ãµÄÄ¿µÄÊǽ«Êý¾Ý½øÐбàÂëºÍ½âÂë¡£±àÂëµÄ²úÉúÎïÊÇ¿ÉÒÔÔÚͨѶ²ã·¢Ë͵ÄÁ÷£¬°´ÕÕǶÈëʽÈí¼þµÄÌØµã£¬ÎÒÃÇÑ¡Ôñ¶þ½øÖÆ×÷ΪÁ÷µÄ¸ñʽ¡£½âÂëµÄ²úÉúÎïÊǶàÖֵ쬼ÈÓй©½çÃæÊ¹ÓõÄC Struct£¬Ò²¿ÉÒÔÊÇXMLÊý¾Ý£¬»¹¿ÉÒÔÊÇLuaµÄÊý¾Ý½á¹¹(tablegt)¡£Èç¹ûÐèÒª£¬»¹¿ÉÒÔ²úÉúJSON,TL1,PythonÊý¾Ý,TCLÊý¾ÝµÈµÈ¡£ÕâÒ»²ãÔÚ¿ò¼ÜÖÐÊÇͨ¹ý»úÆ÷×Ô¶¯Éú³ÉµÄ£¬ÎÒÃǺóÃæ»á½²µ½¡£

ÄÚ´æÊý¾Ý¿â£¬SOAP ServerºÍTL1 Server¶¼ÊÇЭÒé²ãµÄÓû§¡£Í¼ÐνçÃæÍ¨¹ý¶ÁдÄÚ´æÊý¾Ý¿âºÍµ×²ãͨѶ¡£

ͼÐνçÃæÊÇ¿ò¼ÜÉè¼ÆµÄÖØµãÖ®Ò»£¬Ô­ÒòÊÇÕâÀ﹤×÷Á¿×î´ó£¬Öظ´¶øÎÞÁĵŤ×÷×î¶à¡£

ÈÃÎÒÃÇ·ÖÎöÒ»ÏÂÔÚͼÐνçÃæ¿ª·¢¹¤×÷ÖÐ×îÖ÷ÒªµÄÊÂÇéÊÇʲô¡£

1. ÊÕ¼¯Óû§ÊäÈëµÄÊý¾ÝºÍÃüÁî

24. ½«Êý¾ÝºÍÃüÁî·¢¸øµ×²ã

25. ½ÓÊյײ㷴À¡

26. ½«Êý¾ÝÏÔʾÔÚ½çÃæÉÏ

ͬʱÓÐһЩ¿âÓÃÀ´½øÒ»²½¼ò»¯¿ª·¢£º

ÕâÊÇÒ»¸ö¼ò»¯µÄÀý×Ó£¬µ«ÊǺܺõÄ˵Ã÷ÁË¿ò¼ÜµÄÌØµã£º

1. ¿Í»§´úÂë±ØÐë°´Õչ涨µÄ½Ó¿ÚʵÏÖ

27. ¿ò¼ÜÔÚÊʵ±µÄʱºòµ÷Óÿͻ§ÊµÏֵĽӿÚ

28. ÿ¸ö½Ó¿Ú¶¼±»Éè¼ÆÎªÖ»Íê³ÉÌØ¶¨µÄµ¥Ò»¹¦ÄÜ

29. ½«¸÷¸ö²½ÖèÓлúµÄ´®ÆðÀ´ÊÇ¿ò¼ÜµÄÊ£¬¶þ´Î¿ª·¢Õß²»ÖªµÀ£¬Ò²ÎÞÐëÖªµÀ¡£

30. ͨ³£¶¼ÒªÓи½´øµÄ¿â¡£

¹Ì¼þ

¹Ì¼þµÄÖ÷Òª¹¤×÷ÊǽÓÊÜÀ´×ÔÈí¼þµÄÃüÁÇý¶¯Ó²¼þ¹¤×÷£»»ñȡӲ¼þµÄ״̬£¬½øÐÐÒ»¶¨µÄ¼ÆËãºó·µ»Ø¸øÈí¼þ¡£ÔçÆÚµÄ¹Ì¼þÊǺܱ¡µÄÒ»²ã£¬ÒòΪ¾ø´ó²¿·Ö¹¤×÷ÊÇÓÉÓ²¼þÍê³ÉµÄ£¬¹Ì¼þÖ»Æðµ½Ò»¸öÖÐתͨѶµÄ×÷Óá£Ëæ×Åʱ´ú·¢Õ¹£¬ÏÖÔڵĹ̼þ¿ªÊ¼³Ðµ£Ô½À´Ô½¶àÔ­À´ÓÉÓ²¼þÍê³ÉµÄ¹¤×÷¡£

Õû¸ö¹Ì¼þ²¿·Ö·ÖΪÎå´ó²¿·Ö£º

Ó²¼þ³éÏó²ã£¬Ìṩ¶ÔÓ²¼þµÄ·ÃÎʽӿÚ

»¥Ïà¶ÀÁ¢µÄÈÎÎñȺ

ÈÎÎñ/ÏûÏ¢ÅÉ·¢Æ÷

ЭÒé²ã

ͨѶ²ã

Õë¶Ô²»Í¬µÄÉ豸£¬¹¤×÷Á¿¼¯ÖÐÔÚÓ²¼þ³éÏó²ãºÍÈÎÎñȺÉÏ¡£Ó²¼þ³éÏó²ãÊÇÒÔ¿âµÄÐÎʽÌṩµÄ£¬ÓɶÔÓ²¼þ×îÊìϤ£¬¾­Ñé×î·á¸»µÄ¹¤³ÌʦÀ´ÊµÏÖ¡£ÈÎÎñȺÔòÓÉһϵÁеÄÈÎÎñ×é³É£¬ËûÃÇ·Ö±ð´ú±í²»Í¬µÄÒµÎñÓ¦ÓᣱÈÈç²âÁ¿ÎóÂëÂÊ¡£Õⲿ·ÖÓÉÏà¶Ô¾­Ñé½ÏÉٵŤ³ÌʦÀ´ÊµÏÖ£¬ËûÃǵÄÖ÷Òª¹¤×÷ÊÇʵÏֹ涨µÄ½Ó¿Ú£¬°´ÕÕ±ê×¼»¯Îĵµ¶¨ÒåµÄ·½Ê½ÊµÏÖËã·¨¡£

ÈÎÎñ¶¨ÒåÁËÈçϽӿڣ¬ÓɾßÌ忪·¢ÕßÀ´ÊµÏÖ£º

OnInit();
OnRegisterMessage();
OnMessageArrive();
Run();
OnResultReport();

¿ò¼ÜµÄ´úÂëÁ÷³ÌÈçÏ£º£¨Î±´úÂ룩

CTask* task = new CBertTask();
task->OnInit();
task->OnRegisterMessage();
while(TRUE)
{
task->OnMessageArrive();
task->Run();
task->OnResultReport();
}
delete task;
task = NULL;

ÕâÑù£¬¾ßÌåÈÎÎñµÄʵÏÖÕßËù¹Ø×¢µÄ×îÖØÒªµÄÊÂÇé¾ÍÊÇʵÏÖÕ⼸¸ö½Ó¿Ú¡£ÆäËûÈçÓ²¼þµÄ³õʼ»¯£¬ÏûÏ¢µÄÊÕ·¢£¬±àÂë½âÂ룬½á¹ûµÄÉϱ¨µÈµÈÊÂÇé¶¼ÓÉ¿ò¼Ü½øÐÐÁË´¦Àí¡£ ±ÜÃâÁËÿ¸ö¹¤³Ìʦ¶¼±ØÐë´¦Àí´ÓÉϵ½ÏµÄËùÓз½Ãæ¡£²¢ÇÒÕâÑùµÄÈÎÎñ´úÂ뻹ÓкܸߵÄÖØÓÃÐÔ,±ÈÈçÊÇÔÚÒÔÌ«ÍøÉÏ»¹ÊÇÔÚCable ModemÉÏʵÏÖPINGµÄËã·¨¶¼ÊÇÒ»ÑùµÄ¡£

3.3.4. ʵ¼ÊЧ¹û

ÔÚʵ¼ÊÏîÄ¿ÖУ¬¿ò¼Ü´ó´ó½µµÍÁË¿ª·¢ÄѶȡ£¶ÔÈí¼þ²¿·ÖÓÈÆäÃ÷ÏÔ£¬ÓÉʵϰÉú¼´¿ÉÍê³É¸ßÖÊÁ¿µÄ½çÃæ¿ª·¢£¬¿ª·¢ÖÜÆÚËõ¶Ì50%ÒÔÉÏ¡£²úÆ·ÖÊÁ¿´ó´óÌáÉý¡£¶Ô¹Ì¼þ²¿·ÖµÄ¹±Ï×ÔÚÓÚ½µµÍÁ˶Ծ«Í¨µ×²ãÓ²¼þµÄ¹¤³ÌʦµÄÐèÒª£¬Ò»°ãµÄ¹¤³ÌʦÊìÖª²âÁ¿Ëã·¨¼´¿É¡£Í¬Ê±£¬¿ò¼ÜµÄ´æÔÚ±£Ö¤ÁËÐÔÄÜ£¬Îȶ¨ºÍ¿É²âÊÔÐÔµÈÒªËØ¡£

3.4. ¿ò¼ÜÉè¼ÆÖеij£ÓÃģʽ

3.4.1. Ä£°å·½·¨Ä£Ê½

Ä£°å·½·¨Ä£Ê½ÊÇ¿ò¼ÜÖÐ×î³£ÓõÄÉè¼ÆÄ£Ê½¡£Æä¸ù±¾µÄ˼·Êǽ«Ëã·¨ÓÉ¿ò¼Ü¹Ì¶¨£¬¶ø½«Ëã·¨ÖоßÌåµÄ²Ù×÷½»¸ø¶þ´Î¿ª·¢ÕßʵÏÖ¡£ÀýÈçÒ»¸öÉ豸³õʼ»¯µÄÂß¼­£¬¿ò¼Ü´úÂëÈçÏ£º

TBool CBaseDevice::Init()
{
if ( DownloadFPGA() != KErrNone )
{
LOG(LOG_ERROR,_L(¡°Download FPGA fail¡±));
return EFalse;
}
if ( InitKeyPad() != KerrNone )
{
LOG(LOG_ERROR,_L(¡°Initialize keypad fail¡±));
return EFalse;
}
return ETrue;
}

DownloadFPGAºÍInitKeyPad¶¼ÊÇCBaseDevice¶¨ÒåµÄÐ麯Êý£¬¶þ´Î¿ª·¢Õß´´½¨Ò»¸ö¼Ì³ÐÓÚCBaseDeviceµÄ×ÓÀ࣬¾ßÌåÀ´ÊµÏÖÕâÁ½¸ö½Ó¿Ú¡£¿ò¼Ü¶¨ÒåÁ˵÷ÓõĴÎÐòºÍ´íÎóµÄ´¦Àí·½Ê½£¬¶þ´Î¿ª·¢ÕßÎÞÐë¹ØÐÄ£¬Ò²ÎÞȨ¾ö¶¨¡£

3.4.2. ´´½¨ÐÍģʽ

ÓÉÓÚ¿ò¼Üͨ³£¶¼Éæ¼°µ½¸÷ÖÖ²»Í¬×ÓÀà¶ÔÏóµÄ´´½¨£¬´´½¨ÐÍģʽÊǾ­³£Ê¹Óõġ£ÀýÈçÒ»¸ö»æÍ¼Èí¼þµÄ¿ò¼Ü£¬ÓÐÒ»¸ö»ùÀඨÒåÁËͼÐζÔÏóµÄ½Ó¿Ú£¬»ùÓÚËü¿ÉÒÔÅÉÉú³öÍÖÔ²£¬¾ØÐΣ¬Ö±Ï߸÷ÖÖ×ÓÀà¡£µ±Óû§»æÖÆÒ»¸öͼÐÎʱ£¬¿ò¼Ü¾ÍҪʵÀý»¯¸Ã×ÓÀà¡£Õâʱºò¿ÉÒÔÓù¤³§·½·¨£¬Ô­ÐÍ·½·¨µÈµÈ¡£

class CDrawObj
{
public:
virtual int DrawObjTypeID()=0;
virtual Icon GetToolBarIcon()=0;
virtual void Draw(Rect rect)=0;
virtual CDrawObj* Clone()=0;
};

3.4.3. ÏûÏ¢¶©ÔÄģʽ

ÏûÏ¢¶©ÔÄģʽÊÇ×î³£ÓõķÖÀëÊý¾ÝºÍ½çÃæµÄ·½Ê½¡£½çÃæ¿ª·¢ÕßÖ»ÐèҪע²áÐèÒªµÄÊý¾Ý£¬µ±Êý¾Ý±ä»¯Ê±¿ò¼Ü¾Í»á½«Êý¾Ý¡°ÍÆ¡±µ½½çÃæ¡£½çÃæ¿ª·¢Õß¿ÉÒÔÎÞÐë¹Ø×¢Êý¾ÝµÄÀ´Ô´ºÍÄÚ²¿×éÖ¯ÐÎʽ¡£

ÏûÏ¢¶©ÔÄģʽ×î³£¼ûµÄÎÊÌâÊÇͬ²½Ä£Ê½ÏÂÈçºÎ´¦ÀíÖØÈëºÍ³¬Ê±¡£×÷Ϊ¿ò¼ÜÉè¼ÆÕߣ¬Ò»¶¨Òª¿¼ÂǺÃÕâ¸öÎÊÌâ¡£ËùÎ½ÖØÈ룬ÊǶþ´Î¿ª·¢ÕßÔÚÏûÏ¢µÄ»Øµ÷º¯ÊýÖÐÖ´Ðж©ÔÄ/È¡Ïû¶©ÔĵIJÙ×÷£¬Õâ»áÆÆ»µÏûÏ¢¶©ÔĵĻúÖÆ¡£Ëùν³¬Ê±ÊÇÖ¸¶þ´Î¿ª·¢ÕßµÄÏûÏ¢»Øµ÷º¯Êý´¦Àíʱ¼ä¹ý³¤£¬µ¼ÖÂÆäËûÏûÏ¢ÎÞ·¨ÏìÓ¦¡£×î¼òµ¥µÄ°ì·¨ÊÇʹÓÃÒ첽ģʽ£¬Èö©ÔÄÕߺÍÊý¾Ý·¢²¼ÕßÔÚ¶ÀÁ¢½ø³Ì/Ïß³ÌÖÐÔËÐС£Èç¹û²»¾ß±¸´ËÌõ¼þ£¬Ôò±ØÐë×÷Ϊ¿ò¼ÜµÄÖØÒªÔ¼¶¨£¬½ûÖ¹¶þ´Î¿ª·¢Õß²úÉú´ËÀàÎÊÌâ¡£

3.4.4. ×°ÊÎÆ÷ģʽ

×°ÊÎÆ÷ģʽ¸³ÓèÁË¿ò¼ÜÔÚºóÆÚÔö¼Ó¹¦ÄܵÄÄÜÁ¦¡£¿ò¼Ü¶¨Òå×°ÊÎÆ÷µÄ³éÏó»ùÀ࣬¶øÓɾßÌåµÄʵÏÖÕßʵÏÖ£¬¶¯Ì¬µØÌí¼Óµ½¿ò¼ÜÖС£

¾ÙÒ»¸öÓÎÏ·ÖеÄÀý×Ó£¬Í¼ÐλæÖÆÒýÇæÊÇÒ»¸ö¶ÀÁ¢µÄÄ£¿é£¬±ÈÈç¿ÉÒÔ»æÖÆÈËÎïµÄ¾²Ö¹£¬Åܶ¯µÈͼÏñ¡£Èç¹û²ß»®¾ö¶¨ÔÚÓÎÏ·ÖÐÔö¼ÓÒ»ÖֽС°ÒþÉíÒ¡±µÄµÀ¾ß£¬ÒªÇó´©×Ŵ˵À¾ßµÄÍæ¼ÒÔÚÆÁÄ»ÉÏÏÔʾµÄÊÇÈôÓÐÈôÎ޵İë͸Ã÷ͼÏñ¡£Ó¦¸ÃÈçºÎÉè¼ÆÍ¼ÏñÒýÇæÀ´ÊÊÓ¦ºóÆÚµÄÓÎÏ·Éý¼¶ÄØ£¿

µ±ÒþÉíÒ±»×°±¸ºó£¬¾ÍÏòͼÏñÒýÇæÌí¼ÓÒ»¸ö¹ýÂËÆ÷¡£ÕâÊǸö¼«¶È¼ò»¯µÄÀý×Ó£¬Êµ¼ÊµÄÓÎÏ·ÒýÇæÒª±ÈÕâ¸ö¸´ÔÓ¡£×°ÊÎÆ÷ģʽ»¹³£¼ûÓÃÓÚÊý¾ÝµÄǰÖúͺóÖô¦ÀíÉÏ¡£

3.5. ¿ò¼ÜµÄȱµã

Ò»¸öºÃµÄ¿ò¼Ü¿ÉÒÔ´ó´óÌá¸ß²úÆ·µÄ¿ª·¢Ð§ÂʺÍÖÊÁ¿£¬µ«Ò²ÓÐËüµÄȱµã¡£

1. ¿ò¼ÜÒ»°ã¶¼±È½Ï¸´ÔÓ£¬Éè¼ÆºÍʵÏÖÒ»¸öºÃµÄ¿ò¼ÜÐèÒªÏ൱µÄʱ¼ä¡£ËùÒÔ£¬Ò»°ãÖ»ÓÐÔÚ¿ò¼Ü¿ÉÒÔ±»¶à´Î·´¸´Ó¦ÓõÄʱºòÊʺϣ¬Õâʱºò£¬Ç°ÌáͶÈëµÄ³É±¾»áµÃµ½·áºñµÄ»Ø±¨¡£

31. ¿ò¼Ü¹æ¶¨ÁËһϵÁеĽӿں͹æÔò£¬ÕâËäÈ»¼ò»¯Á˶þ´Î¿ª·¢¹¤×÷£¬µ«Í¬Ê±Ò²ÒªÇó¶þ´Î¿ª·¢Õß±ØÐë¼ÇסºÜ¶à¹æ¶¨£¬Èç¹ûÎ¥·´ÁËÕâЩ¹æ¶¨£¬¾Í²»ÄÜÕý³£¹¤×÷¡£µ«ÊÇÓÉÓÚ¿ò¼ÜÆÁ±ÎÁË´óÁ¿µÄÁìÓòϸ½Ú£¬Ïà¶Ô¶øÑÔ£¬Æäѧϰ³É±¾»¹ÊÇ´ó´ó½µµÍÁ˵ġ£

32. ¿ò¼ÜµÄÉý¼¶¶ÔÒÑÓвúÆ·¿ÉÄÜ»áÔì³ÉÑÏÖØµÄÓ°Ï죬µ¼ÖÂÐèÒªÍêÕûµÄ»Ø¹é²âÊÔ¡£¶ÔÕâ¸öÎÊÌâÓÐÁ½¸ö°ì·¨¡£µÚÒ»ÊǶԿò¼Ü±¾Éí½øÐÐÑϸñµÄ²âÊÔ£¬ÓбØÒª½¨Á¢ÍêÉÆµÄµ¥Ôª²âÊԿ⣬ͬʱ¿ª·¢Ê¾ÀýÏîÄ¿£¬ÓÃÀ´²âÊÔ¿ò¼ÜµÄËùÓй¦ÄÜ¡£µÚ¶þÔòÊÇʹÓþ²Ì¬Á´½Ó£¬ÈÃÒÑÓвúÆ·²»ÇáÒ׸úËæÉý¼¶¡£µ±È»£¬Èç¹ûÒÑÓвúÆ·ÓнϺõĻعé²âÊÔÊֶΣ¬¾Í¸üºÃ¡£

33. ÐÔÄÜËðʧ¡£ÓÉÓÚ¿ò¼Ü¶Ôϵͳ½øÐÐÁ˳éÏó£¬Ôö¼ÓÁËϵͳµÄ¸´ÔÓÐÔ¡£ÖîÈç¶à̬ÕâÑùµÄÊÖ¶ÎʹÓÃÒ²»áÆÕ±éµÄ½µµÍϵͳµÄÐÔÄÜ¡£µ«ÊÇ´ÓÕûÌåÉÏÀ´¿´£¬¿ò¼Ü¿ÉÒÔ±£Ö¤ÏµÍ³µÄÐÔÄÜ´¦ÓÚÒ»¸ö½Ï¸ßµÄˮƽ¡£

4. ×Ô¶¯´úÂëÉú³É

4.1. »úÆ÷ÄÜ×öµÄʾͲ»ÒªÈÃÈËÀ´×ö

ÀÁ¶èÊdzÌÐòÔ±µÄÃÀµÂ£¬¸üÊǼܹ¹Ê¦µÄÃÀµÂ¡£Èí¼þ¿ª·¢µÄ¹ý³Ì¾ÍÊÇÈ˸æËß»úÆ÷ÈçºÎ×öʵĹý³Ì¡£Èç¹ûÒ»¼þÊÂÇé»úÆ÷×Ô¼º¾Í¿ÉÒÔ×ö£¬ÄǾͲ»ÒªÈÃÈËÀ´×ö¡£ÒòΪ»úÆ÷²»½ö²»ÖªÆ£¾ë£¬¶øÇÒ¾ø²»»á·¸´í¡£ÎÒÃǵŤ×÷ÊÇÈÿͻ§µÄ¹¤×÷×Ô¶¯»¯£¬¶àÏëÒ»µã£¬¾ÍÄÜÈÃÎÒÃÇ×Ô¼ºµÄ¹¤×÷Ò²²¿·Ö×Ô¶¯»¯¡£¼«ÓÐÄÍÐĵijÌÐòÔ±ÊǺõģ¬Ò²ÊDz»ºÃµÄ¡£

¾­¹ýÁ¼ºÃÉè¼ÆµÄϵͳ£¬ÍùÍù»á³öÏֺܶà¸ß¶ÈÀàËÆ¶øÇÒ¾ßÓкÜÇ¿¹æÂɵĴúÂ롣δ¾­Á¼ºÃÉè¼ÆµÄϵͳÔò¿ÉÄܶÔͬһÀ๦ÄܲúÉúºÜ¶à²»Í¬µÄʵÏÖ¡£Ç°Ãæ¹ØÓÚ¿ò¼ÜÉè¼ÆµÄ²¿·ÖÒѾ­Ö¤Ã÷ÁËÕâÒ»µã¡£ÓÐʱºò£¬ÎÒÃǸü½øÒ»²½£¬·ÖÎö³öÕâЩÏàËÆ´úÂëÖ®ÖеĹæÂÉ£¬Óøñʽ»¯µÄÊý¾ÝÀ´ÃèÊöÕâЩ¹¦ÄÜ£¬¶øÓÉ»úÆ÷À´²úÉú´úÂë¡£

4.2. ¾ÙÀý

4.2.1. ÏûÏ¢µÄ±àÂëºÍ½âÂë

ÉÏÃæ¹ØÓÚ¿ò¼ÜµÄʵÀýÖУ¬¿ÉÒÔ¿´µ½ÏûÏ¢±à½âÂëµÄ²¿·ÖÒѾ­±»¶ÀÁ¢³öÀ´£¬ºÍÆäËû²¿·ÖûÓÐñîºÏ¡£¼ÓÉÏËû±¾ÉíµÄÌØµã£¬·Ç³£ÊʺϽøÒ»²½½«Æä¡°¹æÔò»¯¡±£¬ÓûúÆ÷²úÉú´úÂë¡£

±àÂ룬¾ÍÊǰÑÊý¾Ý½á¹¹Á÷»¯£»½âÂë·´Ö®¡£ÒÔ±àÂëΪÀý£¬´úÂëÎÞ·ÇÊÇÕâÑùµÄ£º(¶þ½øÖÆÐ­Òé)

stream << a.i;
stream << a.j;
stream << a.object;

(ΪÁ˼ò»¯£¬ÕâÀï¼ÙÉèÒѾ­Éè¼ÆÁËÒ»¸öÁ÷¶ÔÏ󣬿ÉÒÔÁ÷»¯¸÷ÖÖÊý¾ÝÀàÐÍ£¬²¢ÇÒÒѾ­´¦ÀíÁËÖîÈç×Ö½ÚÐòת»»µÈÎÊÌâ¡£)

×îºóÎÒÃǵõ½Ò»¸östream¡£´ó¼ÒÊÇ·ñÒѾ­Ï°¹ßÁËдÕâÖÖ´úÂ룿µ«ÊÇÕâÑùµÄ´úÂë²»ÄÜÌåÏÖ¹¤³ÌʦÈκεĴ´ÔìÐÔ£¬ÒòΪÎÒÃÇÔçÒѾ­ÖªµÀÓÐi, ÓÐj, »¹ÓÐÒ»¸öobject£¬ÎªÊ²Ã´»¹Òª×Ô¼ºÇÃÈëÕâЩ´úÂëÄØ£¿Èç¹ûÎÒÃÇ·ÖÎöÒ»ÏÂaµÄ¶¨Ò壬ÊDz»ÊǾͿÉÒÔ×Ô¶¯²úÉúÕâÑùµÄ´úÂëÄØ£¿

struct dataA
{
int i;
int j;
struct dataB object;
};

Ö»ÐèÒªÒ»¸ö¼òµ¥µÄÓïÒå·ÖÎöÆ÷½âÎöÕâ¶Î´úÂ룬µÃµ½Ò»¿Ã¹ØÓÚÊý¾ÝÀàÐ͵ÄÊ÷£¬¾Í¿ÉÒÔÇáÒ׵IJúÉúÁ÷»¯µÄ´úÂë¡£ÕâÑùµÄ·ÖÎöÆ÷ÓÃPythonµÈ×Ö·û´®´¦ÀíÄÜÁ¦Ç¿µÄÓïÑÔ²»¹ýÁ½°ÙÐÐ×óÓÒ¡£¹ØÓÚÊý¾ÝÀàÐ͵ÄÊ÷ÀàËÆÏÂͼ£º

Ö»Òª±éÀúÕâ¿ÃÊ÷£¬¾Í¿ÉÒÔÉú³ÉËùÓÐÊý¾Ý½á¹¹µÄÁ÷»¯´úÂë¡£

ÔÚÉÏÒ»¸ö¿ò¼ÜËù¾ÙÀýµÄÏîÄ¿ÖУ¬ÎªÒ»¸öÓ²¼þÄ£¿é×Ô¶¯²úÉúµÄÏûÏ¢±àÂë½âÂëÆ÷´úÂëÁ¿¸ß´ïÈýÍòÐУ¬¼¸ºõÏ൱ÓÚÒ»¸öСÈí¼þ¡£ÓÉÓÚÊÇ×Ô¶¯²úÉú£¬Ã»ÓÐÈκδíÎó£¬ÎªÉϲãÌṩÁ˸߿ɿ¿ÐÔ¡£

»¹¿ÉÒÔÓÃXML»òÕ߯äËûµÄ¸ñʽ¶¨ÒåÊý¾Ý½á¹¹£¬´Ó¶ø²úÉú×Ô¶¯´úÂë¡£¸ù¾ÝÐèÒª£¬C++/Java/Python£¬ÈκÎÀàÐ͵ͼ¿ÉÒÔ¡£Èç¹ûÏ£ÍûÌṩǿ¼ì²é£¬¿ÉÒÔʹÓÃXSDÀ´¶¨ÒåÊý¾Ý½á¹¹¡£ÓÐÒ»¸öÉÌÒµ»¯µÄ²úÆ·£¬xBinder£¬ºÜ¹ó£¬ºÜÄÑÓ㬻¹²»Èç×Ô¼º¿ª·¢¡£(ΪʲôÄÑÓã¿ÒòΪËü̫ͨÓÃ)¡£³ýÁ˱àÂëΪ¶þ½øÖƸñʽ£¬»¹¿ÉÒÔ±àÂëΪÈκÎÄãÐèÒªµÄ¸ñʽ¡£ÎÒÃÇÖªµÀ¶þ½øÖƸñʽËäȻЧÂʺܸߣ¬µ«ÊÇÌ«Äѵ÷ÊÔ£¨µ±È»ÓÐЩÈË¿´ÄÚ´æÀïµÄÊ®Áù½øÖÆ»¹ÊǺܿìµÄ£©£¬ËùÒÔÎÒÃÇ¿ÉÒÔÔÚ±àÂë³É¶þ½øÖƵÄͬʱ£¬»¹Éú³É±àÂëΪÆäËû¿ÉÔĶÁµÄ¸ñʽµÄ´úÂ룬±ÈÈçXML¡£ÕâÑù£¬Í¨Ñ¶Ê¹Óöþ½øÖÆ£¬¶øµ÷ÊÔʹÓÃXML£¬Á½È«ÆäÃÀ¡£²úÉú¶þ½øÖƵĴúÂë´ó¸ÅÊÇÕâÑùµÄ£º

Xmlbuilder.addelement(¡°i¡±,a.i);
Xmlbuilder.addelement(¡°j¡±,a.j);
Xmlbuilder.addelement(¡°object¡±,a.object);

ͬÑùÒ²ºÜÊʺϻúÆ÷²úÉú¡£Í¬ÑùµÄ˼·¿ÉÒÔÓÃÀ´ÈÃÈí¼þÄÚǶ½Å±¾Ö§³Ö¡£ÕâÀï²»¶à˵ÁË¡£(ÄÚǶ½Å±¾Ö§³Ö×î´óµÄÎÊÌâÊÇÔÚC/C++ºÍ½Å±¾Ö®¼ä½»»»Êý¾Ý£¬Ò²ÊÇÕë¶ÔÊý¾ÝÀàÐ͵ĴóÁ¿ÏàËÆ´úÂë¡£)

×î½üGoogle ·¢²¼ÁËËüµÄprotocol buffer£¬¾ÍÊÇÕâÑùµÄ˼·¡£Ä¿Ç°Ö§³ÖC++/Python£¬¹À¼ÆºÜ¿ì»áÖ§³Ö¸ü¶àµÄÓïÑÔ£¬´ó¼Ò¿ÉÒÔ¹Ø×¢¡£ÒÔºó¾Í²»ÒªÔÙÊÖд±àÂë½âÂëÆ÷ÁË¡£

4.2.2. GUI´úÂë

ÉÏÃæµÄ¿ò¼ÜÉè¼Æ²¿·Ö£¬ÎÒÃÇ˵µ½¿ò¼Ü¶Ô½çÃæÊý¾ÝÊÕ¼¯ºÍ½çÃæ¸üÐÂÎÞÄÜΪÁ¦£¬Ö»ÄܳéÏó³ö½Ó¿Ú£¬ÓɳÌÐòÔ±¾ßÌåʵÏÖ¡£µ«ÊÇÈÃÎÒÃÇ¿´¿´ÕâЩ½çÃæ³ÌÐòÔ±×öµÄÊÂÇé°É¡£(´úÂë¾­¹ý¼ò»¯£¬¿ÉÒÔ¿´×÷α´úÂë)¡£

void onDataArrive(CDataBinder& data)
{
m_biterror.setText(¡°%d¡±,data.biterror);
m_signallevel.setText(¡°%d¡±,data.signallevel¡±);
m_latency.setText(¡°%d¡±,data.latency¡±);
}
Void onCollectData(CDataBinder& data)
{
data.biterror = atoi(m_biterror.getText());
data. signallevel = atoi(m_ signallevel.getText());
data. latency = atoi(m_ latency.getText());
}

ÕâÑùµÄ´úÂëºÜÓÐȤÂð£¿ÏëÏëÎÒÃÇ¿ÉÒÔÔõô×ö£¿£¨XMLÃèÊö½çÃæ£¬ÎÊÌâÊǶÔÓÚ¸´ÔÓÂß¼­ºÜÄÑ£©

4.2.3. С½á

Óɴ˿ɼû£¬ÔÚÈí¼þ¼Ü¹¹µÄ¹ý³ÌÖУ¬Ê×ÏÈÒª×ñÑ­Ò»°ãÐÔµÄÔ­Ôò£¬¾¡Á¿½«ÏµÍ³¸÷¸ö¹¦Äܲ¿·Ö¶ÀÁ¢³öÀ´£¬ÊµÏÖ¸ßÄÚ¾ÛµÍñîºÏ£¬½ø¶ø·¢ÏÖϵͳ´æÔڵĸ߶ÈÖØ¸´£¬¹æÂÉÐÔºÜÇ¿µÄ´úÂ룬½øÒ»²½½«ËûÃǹæÔò»¯£¬ÐÎʽ»¯£¬×îºóÓûúÆ÷À´²úÉúÕâЩ´úÂ롣ĿǰÕâ·½Ãæ×î³É¹¦µÄÓ¦ÓþÍÊÇÏûÏ¢µÄ±à½âÂë¡£¶Ô½çÃæ´úÂëµÄ×Ô¶¯»¯Éú³ÉÓÐÒ»¶¨¾ÖÏÞ£¬µ«Ò²¿ÉÒÔÓ¦Óᣴó¼ÒÔÚ×Ô¼ºµÄ¹¤×÷ÖÐÒªÉÃÓÚ·¢ÏÖÕâÑùµÄ¿ÉÄÜ£¬¼õÉÙ¹¤×÷Á¿£¬Ìá¸ß¹¤×÷ЧÂÊ¡£

4.2.4. Google Protocol Buffer

Google¸Õ¸Õ·¢²¼µÄProtocol BufferÊÇʹÓôúÂë×Ô¶¯Éú³ÉµÄÒ»¸öµä·¶¡£

Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data ¨C think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages. You can even update your data structure without breaking deployed programs that are compiled against the "old" format.

ÄãÒª×öµÄÊ×ÏÈÊǶ¨ÒåÏûÏ¢µÄ¸ñʽ£¬GoogleÖ¸¶¨ÁËËüµÄ¸ñʽ£º

message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}

Once you've defined your messages, you run the protocol buffer compiler for your application's language on your .proto file to generate data access classes. These provide simple accessors for each field (like query() and set_query()) as well as methods to serialize/parse the whole structure to/from raw bytes ¨C so, for instance, if your chosen language is C++, running the compiler on the above example will generate a class called Person. You can then use this class in your application to populate, serialize, and retrieve Person protocol buffer messages. You might then write some code like this:

Person person;
person.set_name("John Doe");
person.set_id(1234);
person.set_email("jdoe@example.com");
fstream output("myfile", ios::out | ios::binary);
person.SerializeToOstream(&output);
Then, later on, you could read your message back in:
fstream input("myfile", ios::in | ios::binary);
Person person;
person.ParseFromIstream(&input);
cout << "Name: " << person.name() << endl;
cout << "E-mail: " << person.email() << endl;

Protocol BufferµÄ±àÂë¸ñʽÊǶþ½øÖƵģ¬Í¬Ê±Ò²Ìṩ¿É¶ÁµÄÎı¾¸ñʽ¡£Ð§Âʸߣ¬Ìå»ýС£¬ÉÏϼæÈÝ¡£Ä¿Ç°Ö§³ÖJava,PythonºÍC++£¬ºÜ¿ì»áÖ§³Ö¸ü¶àµÄÓïÑÔ¡£

5. ÃæÏòÓïÑÔ±à³Ì(LOP)

5.1. ´Ó×Ô¶¯»¯´úÂëÉú³É¸ü½øÒ»²½

ÃæÏòÓïÑÔ±à³ÌµÄͨË×¶¨ÒåÊÇ£º½«Ìض¨ÁìÓòµÄ֪ʶÈںϵ½Ò»ÖÖרÓõļÆËã»úÓïÑÔµ±ÖУ¬´Ó¶øÌá¸ßÈËÓë¼ÆËã»ú½»Á÷µÄЧÂÊ¡£

×Ô¶¯»¯´úÂëÉú³ÉÆäʵ¾ÍÊÇÃæÏòÓïÑÔ±à³Ì¡£ÓïÑÔ²»µÈÓÚÊDZà³ÌÓïÑÔ£¬¿ÉÒÔÊÇͼ£¬Ò²¿ÉÒÔÊÇ±í£¬ÈκοÉÒÔ½¨Á¢È˺ͻúÆ÷Ö®¼ä½»Á÷ÇþµÀµÄ¶¼ÊǼÆËã»úÓïÑÔ¡£Èí¼þ¿ª·¢ÀúÊ·ÉϵÄÒ»´ÎÉú²úÂʵķÉÔ¾ÊǸ߼¶ÓïÑԵķ¢Ã÷¡£ËüÈÃÎÒÃÇÒÔ¸ü¼ò½àµÄ·½Ê½ÊµÏÖ¸ü¸´ÔӵŦÄÜ¡£µ«ÊǸ߼¶ÓïÑÔÒ²ÓÐËüµÄȱµã£¬ÄǾÍÊÇ´ÓÎÊÌâÁìÓòµ½³ÌÐòÖ¸ÁîµÄ¹ý³ÌºÜ¸´ÔÓ¡£ÒòΪ¸ß¼¶ÓïÑÔÊÇΪͨÓÃÄ¿µÄ¶øÉè¼ÆµÄ£¬ËùÒÔÀëÎÊÌâÁìÓòºÜÔ¶¡£¾ÙÀýÀ´Ëµ£¬Òª×öÒ»¸öͼÐνçÃæ£¬ÎÒ¿ÉÒÔ¸úÁíÒ»¸ö¹¤³Ìʦ˵£ºÕâÀï·ÅÒ»¸ö°´Å¥£¬ÄDZ߷ÅÒ»¸öÊäÈë¿ò£¬µ±°´Ï°´Å¥µÄʱºò£¬¾ÍÔÚÊäÈë¿òÀïÏÔʾHello World¡£ÎÒÉõÖÁ¿ÉÒÔËæÊÖ¸øËû»­³öÀ´¡£

¶ÔÓÚÎÒºÍËûÖ±½ÓµÄ½»Á÷¶øÑÔ£¬ÕâÒѾ­×ã¹»ÁË£¬5·ÖÖÓ¡£µ«ÊÇÒªÈÃת±äΪ¼ÆËã»úÄܹ»Àí½âµÄÓïÑÔ£¬ÐèÒª¶à¾Ã£¿

Èç¹ûÊÇ»ã±àÓïÑÔ£¿(¸æËß¼ÆËã»úÈçºÎ²Ù×÷¼Ä´æÆ÷ºÍÄÚ´æ)

Èç¹ûÊÇC++? (¸æËß¼ÆËã»úÈçºÎÔÚÆÁÄ»ÉÏ»æÍ¼£¬Èç¹ûÏìÓ¦Êó±ê¼üÅÌÏûÏ¢)

Èç¹ûÓÐÒ»¸ö²»´íµÄͼÐνçÃæ¿â£¿(¸æËß¼ÆËã»ú´´½¨Button,Label¶ÔÏ󣬹ÜÀíÕâЩ¶ÔÏ󣬷ÅÖÃÕâЩ¶ÔÏ󣬴¦ÀíÏûÏ¢)

Èç¹ûÓÐÒ»¸ö²»´íµÄ¿ª·¢¿ò¼Ü+IDE? (ÓÃWYSIWYG¹¤¾ß»æÖÆ£¬Éè¼ÆÀ࣬ÀàµÄ³ÉÔ±±äÁ¿£¬±àдÏûÏ¢ÏìÓ¦º¯Êý)

Èç¹ûÓÐÒ»ÃÅרÃÅ×öͼÐνçÃæ¿ª·¢µÄÓïÑÔ£¿

¿ÉÒÔÊÇÕâÑùµÄ£º

Label l {Text=¡±¡±}
Button b{Text=¡±ok¡±,action=l.Text=¡±hello world¡±}

ͨÓõļÆËã»úÓïÑÔÊÇ»ùÓÚ±äÁ¿£¬À࣬·ÖÖ§£¬Ñ­»·£¬Á´±í£¬ÏûÏ¢ÕâЩ¸ÅÄîµÄ¡£ÕâЩ¸ÅÄîÀëÎÊÌâ±¾ÉíÓÐ×ÅÒ£Ô¶µÄ¾àÀ룬¶øÇÒ±í´ïÄÜÁ¦·Ç³£ÓÐÏÞ¡£×ÔÈ»ÓïÑÔ±í´ïÄÜÁ¦ºÜÇ¿£¬µ«ÊÇÆçÒåºÍÈßÓàÌ«¶à£¬ÎÞ·¨¸ñʽ»¯±ê×¼»¯¡£´«Í³µÄ˼Ïë¸æËßÎÒÃÇ£º¼ÆËã»úÓïÑÔ¾ÍÊÇÒ»ÌõÌõµÄÖ¸Á±à³Ì¾ÍÊÇдÏÂÕâЩָÁî¡£¶øÃæÏòÓïÑÔ±à³ÌµÄ˼ÏëÊÇ£¬Óþ¡Á¿Ìù½üÎÊÌ⣬Ìù½üÈ˵Ä˼άµÄ°ì·¨À´ÃèÊöÎÊÌ⣬´Ó¶ø½µµÍ´ÓÈ˵Ä˼Ïëµ½¼ÆËã»úÈí¼þת»»µÄÄѶȡ£

¾ÙÒ»¸öÓÎÏ·¿ª·¢µÄÀý×Ó¡£ÏÖÔÚµÄÍøÂçÓÎÏ·ÆÕ±éµÄ²ÉÓÃÁËC++»òÕßC¿ª·¢ÓÎÏ·ÒýÇæ¡£¶ø¾ßÌåµÄÓÎÏ·ÄÚÈÝ£¬ÔòÊÇÓÉһϵÁжþ´Î¿ª·¢¹¤¾ßºÍÓïÑÔÍê³ÉµÄ¡£µØÍ¼±à¼­Æ÷¾ÍÊÇÒ»ÖÖÃæÏòÓÎÏ·µÄÓïÑÔ¡£Lua»òÕßÀàËÆµÄ½Å±¾Ôò±»Ç¶Èëµ½ÓÎÏ·ÄÚ²¿£¬ÓÃÀ´±àдÎäÆ÷£¬¼¼ÄÜ£¬ÈÎÎñµÈµÈ¡£Lua±¾Éí²»¾ß±¸¶ÀÁ¢¿ª·¢Ó¦ÓóÌÐòµÄÄÜÁ¦£¬È»¶øÓÎÏ·ÒýÇæµÄÉè¼ÆÕßͨ¹ý¸øLuaÌṩһϵÁе쬏÷ÖÖ²ã´ÎÉϵĽӿڣ¬½«ÁìÓò֪ʶÃܼ¯µÄ¸³ÓèÁ˽ű¾£¬´Ó¶ø´ó´óÌá¸ßÁËÓÎÏ·¶þ´Î¿ª·¢µÄЧÂÊ¡£ÍøÂçÓÎÏ·µÄ±Ç׿MUDÔòÊÇÉè¼ÆÁËLPCÀ´×÷ΪÓÎÏ·µÄ¿ª·¢ÓïÑÔ¡£MUDµÄÒýÇæMudOSºÍLPCÖ®¼äµÄ¹ØÏµÈçͼ£º

ÓÃLPC´´½¨Ò»¸öNPCµÄ´úÂëÀàËÆÈçÏ£º

inherit NPC;
void create()
{
set_name("²Ë»¨Éß", ({ "caihua she", "she" }) );
set("race", "Ò°ÊÞ");
set("age", 1);
set("long", "Ò»Ö»ÇàÓÄÓĵIJ˻¨Éߣ¬Í·²¿³ÊÍÖÔ²ÐΡ£n");
set("attitude", "peaceful");
set("str", 15);
set("cor", 16);
set("limbs", ({ "Í·²¿", "ÉíÌå", "Æß´ç", "β°Í" }) );
set("verbs", ({ "bite" }) );
set("combat_exp", 100+random(50));
set_temp("apply/attack", 7);
set_temp("apply/damage", 4);
set_temp("apply/defence",6);
set_temp("apply/armor",5);
setup();
}
void die()
{
object ob;
message_vision("$N³é´¤Á½Ï£¬$NËÀÁË¡£n", this_object());
ob = new(__DIR__"obj/sherou");
ob->move(environment(this_object()));
destruct(this_object());
}

LPCÅàÑøÁËÒ»´óÅúÒµÓàÓÎÏ·¿ª·¢Õߣ¬ÉõÖÁ³ÉΪºÜ¶àÈ˽øÈëITÐÐÒµµÄÆðµã¡£Ô­Òò¾ÍÊÇËü¼òµ¥£¬Ò×Àí½â£¬100%ΪÓÎÏ·¿ª·¢Éè¼Æ¡£Õâ¾ÍÊÇLOPµÄ÷ÈÁ¦¡£

5.2. ÓÅÊÆºÍÁÓÊÆ

LOP×îÖØÒªµÄÓŵãÊǽ«ÁìÓò֪ʶ¹Ì»¯µ½ÓïÑÔÖУ¬´Ó¶ø£º

1. Ìá¸ß¿ª·¢Ð§ÂÊ¡£

34. ÓÅ»¯ÍŶӽṹ£¬½µµÍ½»Á÷³É±¾£¬ÁìÓòר¼ÒºÍ³ÌÐòÔ±¿ÉÒÔ¸üºÃµÄºÏ×÷¡£

35. ½µµÍñîºÏ£¬Ò×ÓÚά»¤¡£

Æä´Î£¬ÓÉÓÚLOP²»ÊÇͨÓÃÓïÑÔ£¬ËùÉæ¼°µÄ·¶Î§¾ÍÏÁÕ­ºÜ¶à£¬ËùÒÔ£º

36. ¸üÈÝÒ׵õ½Îȶ¨µÄϵͳ

37. ¸üÈÝÒ×ÒÆÖ²

ÏàÓ¦µÄ£¬LOPÒ²ÓÐËüµÄÁÓÊÆ£º

1. LOP¶ÔÁìÓò֪ʶ³éÏóµÄÒªÇó±È¿ò¼Ü¸ü¸ß¡£

38. ¿ª·¢Ò»ÃÅеÄÓïÑÔ±¾ÉíµÄ³É±¾¡£ÐÒºÃÏÖÔÚÉè¼ÆÒ»ÃÅеÄÓïÑÔ²»ËãÌ«ÄÑ£¬»¹ÓÐLuaÕâÑùµÄ¡°×¨Óöþ´Î¿ª·¢¡±ÓïÑÔµÄÖ§³Ö¡£

39. ÐÔÄÜËðʧ¡£²»¹ýÏà±È¿ª·¢³É±¾µÄ½ÚÔ¼£¬ÔÚ·ÇÐÔÄܺËÐIJ¿·ÖʹÓÃLOP»¹ÊǺÜÖµµÃµÄ¡£

5.3. ÔÚǶÈëʽϵͳÖеÄÓ¦ÓÃ

¾ÙÀý£¬Ç¶ÈëʽÉ豸µÄWeb·þÎñÆ÷¡£ºÜ¶àÉ豸¶¼ÌṩWeb·þÎñÓÃÓÚÅäÖ㬱ÈÈç·ÓÉÆ÷£¬ADSLèµÈµÈ¡£ÕâÖÖÉ豸ËùÌṩµÄweb·þÎñµÄµäÐÍÓÃÀýÊÇÓû§ÌîдһЩ²ÎÊý£¬Ìá½»¸øWeb·þÎñÆ÷£¬Web ·þÎñÆ÷½«ÕâЩ²ÎÊýдÈëÓ²¼þ£¬²¢½«²Ù×÷½á¹û»òÕ߯äËûÐÅÏ¢Éú³ÉÒ³Ãæ·µ»Ø¸øä¯ÀÀÆ÷¡£ÓÉÓÚµäÐ͵ÄApache,Mysql,PHP×éºÏÌå»ýÌ«´óÇÒ²»ÈÝÒ×ÒÆÖ²£¬Í¨³£Ç¶ÈëʽϵͳµÄWeb·þÎñ¶¼ÊÇÓÃC/C++Ö±½Óд¾ÍµÄ¡£´Ósocket¹ÜÀí£¬httpЭÒéµ½¾ßÌå²Ù×÷Ó²¼þ£¬Éú³ÉÒ³Ãæ£¬¶¼Ò»Ì帺Ôð¡£È»¶ø¶ÔÓÚ¹¦Äܸ´ÔÓ£¬Web½çÃæÒªÇó½Ï¸ßµÄÇé¿ö£¬ÓÃCÀ´Ð´Ò³ÃæÐ§ÂʾÍÌ«µÍÁË¡£

shttpdÊÇÒ»¸öСÇɵÄweb·þÎñÆ÷£¬Ð¡Çɵ½Ö»ÓÐÒ»¸ö.cÎļþ£¬4000ÓàÐдúÂë¡£ËäÈ»Ìå»ýºÜС£¬È´¾ß±¸ÁË×î»ù±¾µÄ¹¦ÄÜ£¬±ÈÈçCGI¡£Ëü¼È¿ÉÒÔ¶ÀÁ¢ÔËÐУ¬Ò²¿ÉÒÔǶÈëµ½ÆäËûµÄÓ¦ÓóÌÐòµ±ÖС£shttpdÔÚ´ó¶àÊýƽ̨É϶¼¿ÉÒÔ˳Àû±àÒë¡¢ÔËÐС£luaÊÇÒ»¸öСÇɵĽű¾ÓïÑÔ£¬×¨ÓÃÓÚǶÈëºÍÀ©Õ¹¡£ËüºÍC/C++´úÂëÓÐ×ÅÁ¼ºÃµÄ½»»¥ÄÜÁ¦¡£

½«LuaÒýÇæÇ¶Èëµ½shttpdÖУ¬ÔÙʹÓÃC±àдһ¸ö£¨Ò»Ð©£©Çý¶¯Ó²¼þµÄÀ©Õ¹£¬×¢²á³ÉΪLuaµÄº¯Êý£¬ÐγɵÄϵͳ½á¹¹ÈçÏÂͼ£º

ÕâÑùµÄÓ¦ÓÃÔÚǶÈëʽϵͳÖÐÊÇÓÐÒ»¶¨´ú±íÐԵ쬼´£¬ÒÔCʵÏֵײãºËÐŦÄÜ£¬¶ø°ÑϵͳµÄÒױ䲿·ÖÒԽű¾ÊµÏÖ¡£´ó¼Ò¿ÉÒÔ˼¿¼ÔÚ×Ô¼ºµÄ¿ª·¢¹ý³ÌÖÐÊÇ·ñ¿ÉÒÔʹÓÃÕâÖÖ¼¼Êõ¡£ÕâÊÇLOPµÄÒ»ÖÖ¾ßÌåÓ¦ÓÃģʽ¡££¨Ã»Óд´ÔìÒ»ÖÖȫеÄÓïÑÔ£¬¶øÊÇʹÓÃLua£©

6. ²âÊÔ

6.1. ¿É²âÊÔÐÔÊÇÈí¼þÖÊÁ¿µÄÒ»¸ö¶ÈÁ¿Ö¸±ê

ºÃµÄÈí¼þÊÇÉè¼Æ³öÀ´µÄ£¬ºÃµÄÈí¼þÒ²Ò»¶¨ÊDZãÓÚ²âÊԵġ£Ò»¸öÄÑÓÚ²âÊÔµÄÈí¼þµÄÖÊÁ¿ÊÇÄÑÒԵõ½±£Õϵġ£ÔÚ½ñÌìÈí¼þ¹æÄ£Ô½À´Ô½´óµÄÇ÷ÊÆÏ£¬ÒÔÏÂÎÊÌâÊÇÆÕ±é´æÔڵģº

1. ²âÊÔÖ»ÄÜÊÖ¹¤½øÐУ¬»Ø¹é²âÊÔ´ú¼Û¼«´ó£¬Êµ¼ÊÖ»ÄÜÖ´Ðеã²â£¬ÖÊÁ¿ÎÞ·¨±£Ö¤

40. ¸÷¸öÄ£¿éÖ»Óм¯³Éµ½Ò»Æðºó²ÅÄܲâÊÔ

41. ´úÂë²»¾­¹ýÈκε¥Ôª²âÊԾͼ¯³É

ÕâЩÎÊÌâµÄ¸ùÔ´¶¼ÔÚÓÚȱ·¦Ò»¸öÁ¼ºÃµÄÈí¼þÉè¼Æ¡£Ò»¸öºÃµÄÈí¼þÉè¼ÆÓ¦¸ÃʹµÃµ¥Ôª²âÊÔ£¬Ä£¿é²âÊԺͻعé²âÊÔ¶¼±äµÃÈÝÒ×£¬´Ó¶ø±£Ö¤²âÊԵĹã¶ÈºÍÉî¶È£¬×îÖÕ²úÉú¸ßÖÊÁ¿µÄÈí¼þ¡£³ýÁ˹¦ÄÜ£¬·Ç¹¦ÄÜÐÔÐèÇóÒ²±ØÐëÊǿɲâÊԵġ£ËùÒÔ£¬¿É²âÊÔÐÔÊÇÈí¼þÉè¼ÆÖÐÒ»¸öÖØÒªµÄÖ¸±ê£¬ÊÇϵͳ¼Ü¹¹Ê¦ÐèÒªÈÏÕæ¿¼ÂǵÄÎÊÌâ¡£

6.2. ²âÊÔÇý¶¯µÄÈí¼þ¼Ü¹¹

ÕâÀï̸µÄÊDzâÊÔÇý¶¯µÄÈí¼þ¼Ü¹¹£¬¶ø²»ÊDzâÊÔÇý¶¯µÄ¿ª·¢¡£TDD(Test Driven Development) ÊÇÒ»ÖÖ¿ª·¢·½Ê½£¬ÊÇÒ»ÖÖ±àÂëʵ¼ù¡£¶ø²âÊÔÇý¶¯µÄ¼Ü¹¹Ç¿µ÷µÄÊÇ£¬´ÓÌá¸ß¿É²âÊÔÐԵĽǶȽøÐмܹ¹Éè¼Æ¡£Èí¼þµÄ²âÊÔ·ÖΪ¶à¸ö²ã´Î£º

6.3. ϵͳ²âÊÔ

ϵͳ²âÊÔÊÇÖ¸ÓɲâÊÔÈËÔ±Ö´Ðеģ¬ÑéÖ¤Èí¼þÊÇ·ñÍêÕûÕýÈ·µÄʵÏÖÁËÐèÇóµÄ²âÊÔ¡£ÕâÖÖ²âÊÔÖУ¬²âÊÔÈËÔ±×÷ΪÓû§µÄ½ÇÉ«£¬Í¨¹ý³ÌÐò½çÃæ½øÐвâÊÔ¡£Ôڴ󲿷ÖÇé¿öÏÂÕâЩ¹¤×÷ÊÇÊÖ¹¤Íê³ÉµÄ¡£Ôڹ淶µÄÁ÷³ÌÖУ¬Õâ¸ö¹ý³Ìͨ³£ÒªÕ¼µ½Õû¸öÈí¼þ¿ª·¢Ê±¼äµÄ1/3ÒÔÉÏ¡£¶øµ±ÓÐа汾·¢²¼µÄʱºò£¬¾¡¹Üֻɿ¼°ÁËÈí¼þµÄÒ»²¿·Ö£¬²âÊÔ²¿ÃÅÒÀÈ»ÐèÒªÍêÕûµÄ²âÊÔÕû¸öÈí¼þ¡£ÕâÊÇÓÉ´úÂë¡°¸±×÷Óá±Ìصã¾ö¶¨µÄ¡£ÓÐʱºòÐÞ¸ÄÒ»¸öbug¿ÉÒÔÒý·¢¸ü¶àµÄbug£¬ÆÆ»µÔ­À´¹¤×÷Õý³£µÄ´úÂë¡£ÕâÔÚ²âÊÔÖнлعé²âÊÔ(Regression test)¡£¶ÔÓÚ¹æÄ£½Ï´óµÄÈí¼þ£¬»Ø¹é²âÊÔÐèÒªºÜ³¤µÄʱ¼ä£¬ÔÚ°æ±¾ÐÂÔö¹¦ÄܺʹíÎóÐÞÕý²»¶àµÄÇé¿öÏ£¬»Ø¹é²âÊÔ¿ÉÒÔÕ¼µ½Õû¸öÈí¼þ¿ª·¢¹ý³ÌÁËÒ»°ëÒÔÉÏ£¬ÑÏÖØÓ°ÏìÁËÈí¼þµÄ½»¸¶£¬Ò²Ê¹Èí¼þ²âÊÔ²¿ÃųÉΪÈí¼þ¿ª·¢Á÷³ÌÖÐµÄÆ¿¾±¡£²âÊÔ¹ý³Ì×Ô¶¯»¯£¬ÊDz¿·Ö½â¾öÕâ¸öÎÊÌâµÄ°ì·¨¡£

×÷Ϊ¼Ü¹¹Ê¦£¬ÓбØÒª¿¼ÂÇÈçºÎʵÏÖÈí¼þµÄ¿É×Ô¶¯»¯²âÊÔÐÔ¡£

6.3.1. ½çÃæ×Ô¶¯»¯²âÊÔ

ÔÚûÓÐͼÐλ¯½çÃæÒÔǰ£¬×Ö·û·½Ê½µÄ½çÃæÊDZȽÏÈÝÒ×½øÐÐ×Ô¶¯»¯²âÊԵġ£Ò»¸ö±àдÁ¼ºÃµÄ½Å±¾¾Í¿ÉÒÔʵÏÖÊäÈëºÍ¶ÔÊä³öµÄ¼ì²é¡£µ«ÊǶÔÓÚͼÐλ¯µÄ½çÃæ£¬È˵IJÎÓëËÆºõ±äµÃ²»¿ÉȱÉÙ¡£ÓÐһЩ½çÃæ×Ô¶¯»¯µÄ²âÊÔ¹¤¾ß£¬ÈçWinRunner£¬ ÕâЩ¹¤¾ß¿ÉÒԼǼϲâÊÔÈËÔ±µÄ²Ù×÷³ÉΪ½Å±¾£¬È»ºóͨ¹ý»Ø·ÅÕâЩ½Å±¾£¬¾Í¿ÉÒÔʵÏÖ²Ù×÷µÄ×Ô¶¯»¯¡£Õë¶ÔǶÈëʽÉ豸£¬ÓÐTest Quest¿ÉÒÔʹÓã¬Í¨¹ýÔÚÉ豸ÖÐÔËÐÐÒ»¸öÀàËÆÔ¶³Ì×ÀÃæµÄAgent£¬PC¶ËµÄ²âÊÔ¹¤¾ß¿ÉÒÔÓÃͼÏñʶ±ðµÄ·½·¨Ê¶±ð³ö²»Í¬µÄ×é¼þ£¬²¢·¢ËÍÏàÓ¦Óû§µÄÊäÈë¡£´ËÀ๤¾ßµÄ»ù±¾¹¤×÷Ô­ÀíÈçͼ£º

µ«ÊÇÕâ¸ö¹ý³ÌÔÚʵ¼ÊÖдæÔÚÈý¸öÎÊÌ⣺

1. ¿É¿¿ÐԲ¾­³£ÖжÏÔËÐС£ÒªÐ´Ò»¸ö¿É¿¿µÄ½Å±¾ÉõÖÁ±È¿ª·¢Èí¼þ»¹ÒªÀ§ÄÑ¡£±ÈÈ磬°´ÏÂÒ»¸ö°´Å¥£¬ÓÐʱºòÒ»¸ö¶Ô»°¿òÁ¢¿Ì¾Í³öÏÖ£¬ÓÐʱºò¿ÉÄÜÒªºÃ¼¸Ã룬ÓÐʱºòÉõÖÁ²»³öÏÖ£¬²Ù×÷Â¼ÖÆ¹¤¾ß²»ÄÜ×Ô¶¯ÊµÏÖÕâЩÅжϣ¬¶øÐèÒªÊÖ¶¯Ð޸ġ£

42. ¶Ô²Ù×÷½á¹ûµÄÅжϺÜÀ§ÄÑ£¬ÓÈÆäÊǷDZê×¼µÄ¿Ø¼þ¡£

43. µ±½çÃæÐ޸ĺó£¬Ô­ÓдúÂëºÜÈÝÒ×ʧЧ

ÒªÓ¦ÓûùÓÚͼÐνçÃæµÄ×Ô¶¯»¯²âÊÔ¹¤¾ß£¬¼Ü¹¹Ê¦Ôڼܹ¹µÄʱºòÓ¦¸Ã¿¼ÂÇ£º

1. ½çÃæ·ç¸ñÈçºÎ±£³ÖÒ»Ö¡£Ó¦µ±Óɼܹ¹£¬¶ø·Ç³ÌÐòÔ±¾ö¶¨¼Ü¹¹µÄ·ç¸ñ¡£°üÀ¨²¼¾Ö£¬¿Ø¼þ´óС£¬Ïà¶ÔλÖã¬ÎÄ×Ö£¬¶Ô²Ù×÷µÄÏìÓ¦·½Ê½£¬³¬Ê±Ê±³¤£¬µÈµÈ¡£

44. ÈçºÎÔÚ×îºÏÊʲâÊÔ¹¤¾ßµÄ½çÃæºÍÓû§Ï²»¶µÄ½çÃæÖ®ÖÐÕÛÖС£±ÈÈ磬Test QuestÊÇ»ùÓÚͼÏñʶ±ðµÄ£¬ÄÇôºÚ°×Á½É«µÄ½çÃæÊÇ×îÓÐÀûµÄ£¬¶øÓû§Ï²»¶µÄ½¥½øÉ«¾Í·Ç³£²»Àû¡£Ò²ÐíÈýçÃæ¾ß±¸×Ô¶¯µÄÇл»ÄÜÁ¦×îºÃ¡£

¶ÔÓÚÒѾ­Íê³ÉµÄ²úÆ·£¬Èç¹û¼Ü¹¹Ã»ÓÐΪ×Ô¶¯»¯²âÊÔ×ö¹ý¿¼ÂÇ£¬ËùÄÜÓ¦Óõķ¶Î§¾Í·Ç³£ÓÐÏÞ£¬²»¹ý»¹ÊÇÓÐһЩ˼·¿ÉÒÔ¹©²Î¿¼£º

1. ʵÏÖС¹æÄ£µÄ×Ô¶¯»¯½Å±¾¡£Õë¶ÔÒ»¸ö¾ßÌåµÄ²Ù×÷Á÷³Ì½øÐвâÊÔ£¬¶ø²»ÊÇÊÔͼÓÃÒ»¸ö½Å±¾²âÊÔÕû¸öÈí¼þ¡£Ò»ÏµÁеÄС²âÊԽű¾×é³ÉÁËÒ»¸ö¼¯ºÏ£¬¸²¸ÇϵͳµÄÒ»²¿·Ö¹¦ÄÜ¡£ÕâЩ²âÊԽű¾¿ÉÒÔ¶¼ÒÔÈí¼þÆô¶¯Ê±µÄ״̬×÷Ϊ»ù×¼£¬ËùÒÔÔÚ״̬´¦ÀíÉÏ»á±È½Ï¼òµ¥

45. ¡±ºï×Ó²âÊÔ¡±ÓÐÒ»¶¨µÄ¼ÛÖµ¡£Ëùνºï×Ó²âÊÔ£¬¾ÍÊÇËæ»ú²Ù×÷Êó±êºÍ¼üÅÌ¡£ÕâÖÖ²âÊÔÍêÈ«²»Àí½âÈí¼þµÄ¹¦ÄÜ£¬¿ÉÒÔ·¢ÏÖһЩÕý³£²âÊÔÎÞ·¨·¢ÏֵĴíÎó¡£¾Ý΢ÈíÄÚ²¿µÄ×ÊÁÏ£¬Î¢ÈíµÄһЩ²úÆ·15%µÄ´íÎóÊÇÓÉ¡°ºï×Ó²âÊÔ¡±·¢Ïֵġ£

×ܵÄÀ´½²£¬»ùÓÚ½çÃæµÄ×Ô¶¯»¯²âÊÔÊDz»³ÉÊìµÄ¡£¶Ô¼Ü¹¹Ê¦¶øÑÔÒ»¶¨Òª±ÜÃ⹦ÄÜÖ»ÄÜͨ¹ý½çÃæ²ÅÄÜ·ÃÎÊ¡£ÒªÈýçÃæ½ö½öÊǽçÃæ£¬¶øÈí¼þ´ó²¿·ÖµÄ¹¦ÄÜÊǶÀÁ¢ÓÚ½çÃæ²¢¿ÉÒÔͨ¹ýÆäËû·½Ê½·ÃÎʵġ£ÉÏÃæ¿ò¼ÜµÄÀý×ÓÖеÄÉè¼Æ¾ÍÌåÏÖÁËÕâÒ»µã¡£

˼¿¼£ºÈçºÎÈýçÃæ¾ßÓÐ×ÔÎÒ²âÊÔ¹¦ÄÜ£¿

6.3.2. »ùÓÚÏûÏ¢µÄ×Ô¶¯»¯²âÊÔ

Èç¹ûÈí¼þ¶ÔÍâÌṩ»ùÓÚÏûÏ¢µÄ½Ó¿Ú£¬×Ô¶¯»¯²âÊԾͻá±äµÃ¼òµ¥µÄ¶à¡£ÉÏÃæÒѾ­Ìáµ½Á˹̼þµÄTL1½Ó¿Ú¡£¶ÔÓÚ½çÃæ²¿·Ö£¬ÔòÓ¦¸ÃÔÚÉè¼ÆµÄʱºò£¬½«´¿´âµÄ¡°½çÃæ¡±¶ÀÁ¢³öÀ´£¬ÈÃËü¾¡¿ÉÄܵı¡£¬¶øÆäËû²¿·ÖÒÀÈ»¿ÉÒÔ»ùÓÚÏûÏ¢Ìṩ·þÎñ¡£

ÔÚÏûÏ¢µÄ»ù´¡ÉÏ£¬Óýű¾ÓïÑÔ°ü×°³Éº¯ÊýµÄÐÎʽ£¬¿ÉÒÔºÜÈÝÒ׵ĵ÷Ó㬲¢¸²¸ÇÏûÏ¢µÄ¸÷ÖÖ²ÎÊý×éºÏ£¬´Ó¶øÌá¸ß²âÊԵĸ²¸ÇÂÊ¡£¹ØÓÚÈçºÎ½«ÏûÏ¢°üװΪ½Å±¾£¬¿ÉÒԲο¼SOAPµÄʵÏÖ¡£Èç¹ûʹÓõIJ»ÊÇXML£¬Ò²¿ÉÒÔ×Ô¼ºÊµÏÖÀàËÆµÄ×Ô¶¯´úÂëÉú³É¡£

ÕâЩ²âÊԽű¾Ó¦¸ÃÓÉ¿ª·¢ÈËԱ׫д£¬Ã¿µ±ÊµÏÖÁËÒ»¸öеĽӿڣ¨Ò²¾ÍÊÇÒ»ÌõеÄÏûÏ¢£©£¬¾ÍÓ¦¸Ã׫дÏàÓ¦µÄ²âÊԽű¾£¬²¢×÷ΪÏîÄ¿µÄÒ»²¿·Ö±£´æÔÚ´úÂë¿âÖС£µ±ÐèÒªÖ´Ðлعé²âÊÔµÄʱºò£¬Ö»ÒªÔËÐÐÒ»±é²âÊԽű¾¼´¿É£¬´ó´óÌá¸ßÁ˻عé²âÊÔµÄЧÂÊ¡£

ËùÒÔ£¬ÎªÁËʵÏÖÈí¼þµÄ×Ô¶¯»¯²âÊÔ£¬Ìṩ»ùÓÚÏûÏ¢µÄ½Ó¿ÚÊÇÒ»¸öºÜºÃµÄ°ì·¨£¬ÕâÈÃÎÒÃÇ¿ÉÒÔÔÚÈí¼þÖ®Íâ¶ÀÁ¢µÄ±àд²âÊԽű¾¡£ÔÚÉè¼ÆµÄʱºò¿ÉÒÔ¿¼ÂÇÕâ¸öÒòËØ£¬Êʵ±µÄÔö¼ÓÈí¼þÏûÏ¢µÄÖ§³Ö¡£µ±È»£¬TL1Ö»ÊÇÒ»¸öÀý×Ó£¬¸ù¾ÝÏîÄ¿µÄÐèÒª£¬¿ÉÒÔÑ¡ÔñÈκÎÊʺϵÄЭÒ飬ÈçSOAP¡£

6.3.3. ×Ô¶¯»¯²âÊÔ¿ò¼Ü

ÔÚ±àд×Ô¶¯»¯²âÊԽű¾µÄʱºò£¬ÓкܶàµÄ¹¤×÷ÊÇÖØ¸´µÄ£¬±ÈÈ罨Á¢socketÁ¬½Ó£¬ÈÕÖ¾£¬´íÎó´¦Àí£¬±¨±íÉú³ÉµÈ¡£Í¬Ê±£¬¶ÔÓÚ²âÊÔÈËÔ±À´Ëµ£¬ÕâЩ¹¤×÷¿ÉÄÜÊDZȽÏÀ§Äѵġ£Òò´Ë£¬Éè¼ÆÒ»¸ö¿ò¼Ü£¬ÊµÏÖ²¢Òþ²ØÕâÐ©ÖØ¸´ºÍ¸´Ôӵļ¼Êõ£¬ÈòâÊԽű¾µÄ±àдÕß½«×¢ÒâÁ¦¼¯ÖÐÔÚ¾ßÌåµÄ²âÊÔÂß¼­ÉÏ¡£

ÕâÑùÒ»¸ö¿ò¼ÜÓ¦¸ÃʵÏÖÒÔϹ¦ÄÜ£º

1. Íê³ÉÁ¬½ÓµÄ³õʼ»¯µÈ»ù´¡¹¤×÷¡£

46. ²¶»ñËùÓеĴíÎ󣬱£Ö¤Test CaseÖеĴíÎó²»»á´ò¶ÏºóÐøµÄTest CaseÖ´ÐС£

47. ×Ô¶¯¼ì²âºÍÖ´ÐÐTest Case¡£ÐÂÔöµÄTest CaseÊǶÀÁ¢µÄ½Å±¾Îļþ£¬ÎÞÐëÐ޸Ŀò¼ÜµÄ´úÂë»òÕßÅäÖá£

48. ÏûÏ¢±à½âÂ룬²¢ÒÔº¯ÊýµÄ·½Ê½Ìṩ¸øTest Case±àдÕßµ÷Óá£

49. ·½±ãµÄ¹¤¾ß£¬È籨±í£¬ÈÕÖ¾µÈ¡£

50. ×Ô¶¯Í³¼ÆTest CaseµÄÔËÐнá¹û²¢Éú³É±¨¸æ¡£

×Ô¶¯»¯²âÊÔ¿ò¼ÜµÄ˼·ºÍÒ»°ãµÄÈí¼þ¿ò¼ÜÊÇÒ»Öµģ¬¾ÍÊDZÜÃâÖØ¸´ÀͶ¯£¬½µµÍ¿ª·¢ÄѶȡ£

ÏÂͼÊÇÒ»¸ö×Ô¶¯»¯²âÊÔ¿ò¼ÜµÄ½á¹¹Í¼£º

ÿ¸öTest Case¶¼±ØÐ붨ÒåÒ»¸ö¹æ¶¨µÄRunº¯Êý£¬¿ò¼Ü½«ÒÀ´Îµ÷Ó㬲¢ÌṩÏàÓ¦µÄ¿âº¯Êý¹©Test CaseÓÃÀ´·¢ËÍÃüÁîºÍ»ñµÃ½á¹û¡£ÕâÑù£¬²âÊÔÓÃÀýµÄ±àдÕß¾ÍÖ»ÐèÒª½«×¢ÒâÁ¦¼¯ÖÐÔÚ²âÊÔ±¾Éí¡£¾ÙÀý£º

def run():
open_laser()
assert(get_laser_state() == ON)
insert_error(BIT_ERROR)
assert(get_error_bit() == BIT_ERROR)

²âÊÔÓÃÀýµÄ±àдÕßÓµÓеÄ֪ʶÊÇ¡°±ØÐëÏÈ´ò¿ª¼¤¹âÆ÷È»ºó²ÅÄÜÏòÏß·ÉϲåÈë´íÎ󡱡£¶ø¼Ü¹¹Ê¦ÄÜÌṩµÄÊÇÏûÏ¢ÊÕ·¢£¬±à½âÂ룬´íÎó´¦Àí£¬±¨±íÉú³ÉµÈ£¬²¢½«ÕâЩΪ²âÊÔÓÃÀý±àдÕ߸ôÀë¡£

ÎÊÌâ: open_laser, get_laser_stateÕâЩº¯ÊýÊÇ˭дµÄ£¿

ÎÊÌ⣺ÈçºÎ½øÒ»²½ÊµÏÖ֪ʶµÄ½âñÄÜ·ñÓиü·½±ãµÄÓïÑÔÀ´±àдTestCase?

6.3.4. »Ø¹é²âÊÔ

ÓÐÁË×Ô¶¯»¯µÄ²âÊԽű¾ºÍ¿ò¼Ü£¬»Ø¹é²âÊԾͱäµÃºÜ¼òµ¥ÁË¡£Ã¿µ±ÓÐа汾·¢²¼Ê±£¬Ö»ÐèÔËÐÐÒ»±éÏÖÓеÄTest Case£¬·ÖÎö²âÊÔ±¨¸æ£¬Èç¹ûÓвâÊÔʧ°ÜµÄCaseÔò»Ø¹é²âÊÔʧ°Ü£¬ÐèÒªÖØÐÂÐ޸ģ¬Ö±µ½ËùÓеÄCaseÍêȫͨ¹ý¡£ÍêÕûµÄ»Ø¹é²âÊÔÊÇÈí¼þÖÊÁ¿µÄÖØÒª±£Ö¤¡£

6.4. ¼¯³É²âÊÔ

¼¯³É²âÊÔÒªÑéÖ¤µÄÊÇϵͳ¸÷¸ö×é³ÉÄ£¿éµÄ½Ó¿ÚÊÇ·ñ¹¤×÷Õý³£¡£ÕâÊDZÈϵͳ²âÊÔ¸üµÍ²ãµÄ²âÊÔ£¬Í¨³£ÓÉ¿ª·¢ÈËÔ±ºÍ²âÊÔÈËÔ±¹²Í¬Íê³É¡£

ÀýÈçÔÚÒ»¸öµäÐ͵ÄǶÈëʽϵͳÖУ¬FPGA£¬¹Ì¼þºÍ½çÃæÊdz£¼ûµÄÈý¸öÄ£¿é¡£Ä£¿é±¾Éí»¹¿ÉÒÔ»®·ÖΪ¸üСµÄÄ£¿é£¬´Ó¶ø½µµÍ¸´ÔÓ¶È¡£Ç¶ÈëʽÈí¼þÄ£¿é²âÊԵij£¼ûÎÊÌâÊÇÓ²¼þûÓй̼þÔòÎÞ·¨¹¤×÷£¬¹Ì¼þûÓнçÃæ¾ÍÎÞ·¨Çý¶¯;·´¹ýÀ´£¬½çÃæÃ»Óй̼þ²»ÄÜÍêÕûÔËÐУ¬¹Ì¼þûÓÐÓ²¼þÉõÖÁÎÞ·¨ÔËÐС£ÓÚÊÇûÓо­¹ý²âÊÔµÄÄ£¿éÖ±µ½¼¯³ÉµÄʱºò²ÅÄÜÍêÕûÔËÐУ¬·¢ÏÖÎÊÌâºóÐèÒª¿¼ÂÇËùÓÐÄ£¿éµÄÎÊÌ⣬¶¨Î»ºÍ½â¾öµÄ´ú¼Û¶¼ºÜ´ó¡£¼ÙÉèÓÐÄ£¿éAºÍB£¬¸÷ÓÐÊ®¸öbug¡£Èç¹û¶¼Ã»Óо­¹ýÄ£¿é²âÊÔÖ±½Ó¼¯³É£¬¿ÉÒÔÈÏΪÅÅ´íµÄ¹¤×÷Á¿Ï൱ÓÚ10*10µÈÓÚ100¡£

ËùÒÔ£¬ÔÚÉè¼ÆÒ»¸öÄ£¿éµÄʱºò£¬Ê×ÏÈÒª¿¼ÂÇ£¬Õâ¸öÄ£¿éÈçºÎµ¥¶À²âÊÔ£¿±ÈÈ磬Èç¹û½çÃæºÍ¹Ì¼þÖ®¼äÊÇͨ¹ýSOCKETͨÐŵģ¬ÄÇô¾Í¿ÉÒÔ¿ª·¢Ò»¸öÄ£Äâ¹Ì¼þ£¬ÔÚͬÑùµÄ¶Ë¿ÚÉÏÌṩ·þÎñ¡£Õâ¸öÄ£Äâ¹Ì¼þ²»Ö´ÐÐʵ¼ÊµÄ²Ù×÷£¬µ«ÊÇ»áÏìÓ¦½çÃæµÄÇëÇó²¢·µ»ØÄ£ÄâµÄ½á¹û¡£²¢ÇÒ·µ»ØµÄ½á¹û¿ÉÒÔ¸²¸Çµ½¸÷ÖÖµäÐ͵ÄÇé¿ö£¬°üÀ¨´íÎóµÄÇé¿ö¡£Ê¹ÓÃÕâÑùµÄ¼¼Êõ£¬½çÃæ²¿·Ö¼¸ºõ¿ÉÒԵõ½100%µÄÑéÖ¤£¬ÔÚ¼¯³É½×¶ÎÓöµ½´íÎóµÄ´ó´ó¼õÉÙ¡£

¶Ô¹Ì¼þ¶øÑÔ£¬ÒòΪ´¦ÓÚϵͳµÄÖм䣬ËùÒÔÎÊÌ⸴ÔÓһЩ¡£Ò»·½Ã棬ҪÈù̼þ¿ÉÒÔͨ¹ýGUIÒÔÍâµÄ;¾¶±»µ÷Óã»ÁíÒ»·½ÃæÔòҪģÄâÓ²¼þµÄ¹¦ÄÜ¡£¶ÔÓÚµÚÒ»µã£¬ÔÚÉè¼ÆµÄʱºò£¬ÒªÈýӿںÍʵÏÖ·ÖÀë¡£½Ó¿Ú¿ÉÒÔËæÒâµÄ¸ü»»£¬±ÈÈçºÍGUIµÄ½Ó¿ÚÒ²ÐíÊÇJSON£¬Í¬Ê±»¹¿ÉÒÔÌṩtelnetµÄTL1½Ó¿Ú£¬µ«ÊÇʵÏÖÊÇÍêȫһÑùµÄ¡£ÕâÑù£¬ÔÚºÍGUI¼¯³É֮ǰ£¬¾Í¿ÉÒÔͨ¹ýTL1½øÐÐÍêÈ«µÄ²âÊԹ̼þ¡£¶ÔÓÚµÚ¶þµã£¬ÔòÓ¦¸ÃÔÚÉè¼ÆµÄʱºòÌáÈ¡³öÓ²¼þ³éÏó²ã£¬Èù̼þµÄÖ÷ҪʵÏֺͼĴæÆ÷£¬ÄÚ´æµØÖ·µÈÒòËØ¸ôÀ뿪À´¡£ÔÚûÓÐÓ²¼þ»òÕßÓ²¼þÉè¼ÆÎ´¶¨µÄʱºòʵÏÖÒ»¸öÓ²¼þÄ£Äâ²ã£¬À´±£Ö¤¹Ì¼þ¿ÉÒÔÍêÕûÔËÐв¢²âÊÔ¡£

6.5. µ¥Ôª²âÊÔ

µ¥Ôª²âÊÔÊÇÈí¼þ²âÊÔµÄ×î»ù±¾µ¥Î»£¬ÊÇÓÉ¿ª·¢ÈËÔ±Ö´ÐÐÒÔ±£Ö¤ÆäËù¿ª·¢´úÂëÕýÈ·µÄ¹ý³Ì¡£¿ª·¢ÈËÔ±Ó¦¸ÃÌá½»¾­¹ý²âÊԵĴúÂ롣δ¾­µ¥Ôª²âÊԵĴúÂëÔÚ½øÈëÈí¼þºó£¬²»½ö·¢ÏÖÎÊÌâºóºÜÄѶ¨Î»£¬¶øÇÒͨ¹ýϵͳ²âÊÔÊǺÜÄÑ×öµ½¶Ô´úÂë·ÖÖ§µÄÍêÈ«¸²¸ÇµÄ¡£TDD¾ÍÊÇ»ùÓÚÕâ¸ö²ã´ÎµÄ¿ª·¢Ä£Ê½¡£

µ¥Ôª²âÊÔµÄÁ£¶ÈÒ»°ãÊǺ¯Êý»òÕßÀ࣬ÀýÈçÏÂÃæÕâ¸ö³£Óú¯Êý£º

int atoi(const char *nptr);

ÕâÊÇÒ»¸ö¹¦Äܷdz£µ¥Ò»µÄº¯Êý£¬ËùÒÔµ¥Ôª²âÊÔ¶ÔËü·Ç³£ÓÐЧ¡£¿ÉÒÔͨ¹ýµ¥Ôª²âÊÔÑéÖ¤ÏÂÁÐÇé¿ö£º

1. Ò»°ãÕý³£µ÷ÓÃ,È硱9¡±,¡±1000¡±,¡±-1¡±µÈ

51. ¿ÕµÄnptrÖ¸Õë

52. ·ÇÊý×Ö×Ö·û´®,¡±abc¡±,¡±@#!123¡±,¡±123abc¡±

53. ´øÐ¡ÊýµãµÄ×Ö·û´®, ¡°1.1¡±,¡±0.111¡±,¡±.123¡±

54. ³¬³¤×Ö·û´®

55. ³¬´óÊý×Ö£¬¡±999999999999999999999999999¡±

56. ³¬¹ýÒ»¸öµÄ-ºÅºÍλÖôíÎóµÄ-ºÅ,¡±¡ª1¡±,¡±-1-¡°,¡±-1-2¡±

Èç¹ûatoiͨ¹ýÁËÒÔÉϲâÊÔ£¬ÎÒÃǾͿÉÒÔ·ÅÐĵĽ«Ëü¼¯³Éµ½Èí¼þÖÐÈ¥ÁË¡£ÓÉËüÔÙÒý·¢ÎÊÌâµÄ¸ÅÂʾͺÜСÁË(²»ÊÇÍêȫûÓУ¬ÒòΪÎÒÃDz»ÄܱéÀúËùÓпÉÄÜ£¬Ö»ÊÇÌôÑ¡Óдú±íÐÔµÄÒì³£Çé¿ö½øÐвâÊÔ)¡£

ÒÔÉϵÄÀý×Ó¿ÉÒÔ˵Êǵ¥Ôª²âÊԵĵ䷶£¬µ«Êµ¼ÊÖÐÈ´³£³£²»ÊÇÕâô»ØÊ¡£ÎÒÃdz£³£·¢ÏÖдºÃµÄº¯ÊýºÜÄÑ×öµ¥Ôª²âÊÔ£¬²»½ö¹¤×÷Á¿ºÜ´ó£¬Ð§¹ûÒ²²»¼ûµÃºÃ¡£Æä¸ù±¾µÄÔ­ÒòÊÇ£¬º¯ÊýûÓÐ×ñÑ­ºÃһЩԭÔò£º

1. µ¥Ò»¹¦ÄÜ

57. µÍñîºÏ

·´¹ÛatoiµÄÀý×Ó£¬¹¦Äܵ¥Ò»Ã÷È·£¬ºÍÆäËûº¯Êý¼¸ºõûÓÐÈκÎñîºÏ£¨ÎÒÉÏÃæ²¢Ã»ÓÐдatoiµÄ´úÂëʵÏÖ£¬´ó¼Ò¿ÉÒÔ×Ô¼ºÊµÏÖ£¬Ï£ÍûÊÇ0ñîºÏ£©¡£

ÏÂÃæÎÒ¾ÙÒ»¸öʵ¼ÊÖеÄÀý×Ó¡£

ÕâÊÇÒ»¸ö¼òµ¥µÄTL1ÃüÁî·¢ËͺͽâÎöÈí¼þ£¬¹¦ÄÜÐèÇóÃèÊöÈçÏ£º

¨¹ ͨ¹ýtelnetÓëTL1·þÎñÆ÷ͨѶ

¨¹ ·¢ËÍTL1ÃüÁî¸øTL1·þÎñÆ÷

¨¹ ½âÎöTL1·þÎñÆ÷µÄÏìÓ¦

TL1ÊÇͨѶÐÐÒµ¹ã·ºÊ¹ÓõÄÒ»ÖÖЭÒ飬ΪÁ˸ø²»ÊìϤTL1µÄÅóÓѼò»¯ÎÊÌ⣬ÎÒ¶¨ÒåÁËÒ»¸ö¼ò»¯µÄ¸ñʽ£º

CMD:CTAG:PAYLOAD;

CMD - ÃüÁîµÄÃû×Ö£¬¿ÉÒÔÊÇÈÎÒâ×Öĸ¿ªÍ·£¬ÓÉ×ÖĸºÍÏ»®Ïß×é³ÉµÄ×Ö·û´®

CTAG - Ò»¸öÊý×Ö£¬ÓÃÓÚ±êÖ¾ÃüÁîµÄÐòºÅ

PAYLOAD - ¿ÉÒÔÊÇÈÎÒâ¸ñʽµÄÄÚÈÝ

; - ½áÊø·û

ÏàÓ¦µÄ£¬TL1·þÎñÆ÷µÄ»ØÓ¦Ò²Óиñʽ£º

DATE

CTAG COMPLD

PAYLOAD

;

DATE ¨C ÈÕÆÚºÍʱ¼ä

CTAG ¨C Ò»¸öÊý×Ö£¬ºÍTL1 ÃüÁîËùЯ´øµÄCTAGÒ»Ñù

COMPLD ¨C ±íÃ÷ÃüÁîÖ´Ðгɹ¦

PAYLOAD - ·µ»ØµÄ½á¹û£¬¿ÉÒÔÊÇÈκθñʽµÄÄÚÈÝ

; - ½áÊø·û

¾ÙÀý£º

ÃüÁGET-IP-CONFIG:1:;

½á¹û£º

2008-7-19 11:00:00
1 COMPLD
ip address: 192.168.1.200
gate way: 192.168.1.1
dns: 192.168.1.3
;

 

ÃüÁSET-IP-CONFIG:2:172.31.2.100,172.31.2.1,172.31.2.3;

½á¹û£º

2008-7-19 11:00:05
2 COMPLD
;

Èí¼þµÄ×îÉϲã¿ÉÄÜÊÇÕâÑùµÄ£º

Dict* ipconf = GET_IP_CONFIG();
ipconf->set(¡°ipaddr¡±,¡±172.31.2.100)
ipconf->set(¡°gateway¡±,¡±172.3.2.1¡±)
ipconf->set(¡°dns¡±,¡±172.31.2.1¡±)
SET_IP_CONFIG(ipconf);

ÒÔGET_IP_CONFIGΪÀý£¬Õâ¸öº¯ÊýÓ¦¸ÃÍê³ÉµÄ¹¦ÄܰüÀ¨£º

¨¹ ½¨Á¢telnetÁ¬½Ó£¬Èç¹ûÁ¬½ÓÉÐ佨Á¢

¨¹ ¹¹ÔìTL1ÃüÁî×Ö·û´®

¨¹ ·¢ËÍ

¨¹ ½ÓÊÕ·´À¡

¨¹ ½âÎö·´À¡£¬²¢¸øIP_CONF½á¹¹¸´ÖÆ

¨¹ ·µ»Ø

ÎÒÃǵ±È»²»Ï£Íûÿ¸öÕâÑùµÄº¯Êý¶¼Öظ´ÊµÏÖÕâЩ¹¦ÄÜ£¬ËùÒÔÎÒÃǶ¨ÒåÁ˼¸¸öÄ£¿é£º

1. Telnet Á¬½Ó¹ÜÀí

58. TL1ÃüÁî¹¹Ôì

59. TL1 ½á¹û½âÎö

ÕâÀïÎÒÃÇÀ´·ÖÎöTL1½á¹û½âÎö£¬¼ÙÉèÉè¼ÆÎªÒ»¸öº¯Êý£¬º¯ÊýµÄÔ­ÐÍÈçÏ£º

Dict* TL1Parse(const char* tl1response)

Õâ¸öº¯ÊýµÄ¹¦ÄÜÊǽÓÊÜÒ»¸ö×Ö·û´®£¬Èç¹ûËüÊÇÒ»¸öºÏ·¨ÇÒÒÑÖªµÄTL1»ØÓ¦£¬Ôò½«ÆäÖеĽá¹ûÌáÈ¡³öÀ´£¬·ÅÈëÒ»¸ö×Öµä¶ÔÏóÖС£

Õâ±¾À´»áÊÇÒ»¸öºÜ±ãÓÚ½øÐе¥Ôª²âÊÔµÄÀý×Ó£ºÊäÈë¸÷ÖÖ×Ö·û´®£¬¼ì²é·µ»Ø½á¹ûÊÇ·ñÕýÈ·¼´¿É¡£µ«ÊÇÔÚÕâ¸öÈí¼þÖУ¬ÓÐÒ»¸öºÜÌØÊâµÄÎÊÌ⣺

TL1ParseÔÚ½âÎöÒ»¸ö×Ö·û´®Ê±£¬Ëü±ØÐëÒªÖªµÀµ±Ç°Òª´¦ÀíµÄÊÇÄÄÌõÃüÁîµÄ»ØÓ¦¡£µ«ÊÇÇë×¢Ò⣬ÔÚTL1µÄ»ØÓ¦ÖУ¬ÊDz»°üÀ¨ÃüÁîµÄÃû×ֵġ£Î¨Ò»µÄ°ì·¨ÊÇʹÓÃCTAG£¬Õâ¸öÃüÁîºÍ»ØÓ¦Ò»Ò»¶ÔÓ¦µÄÊý×Ö¡£Tl1ParseÊ×ÏÈÌáÈ¡³öCTAGÀ´£¬È»ºó²éÕÒʹÓÃÕâ¸öCTAGµÄÊÇʲôÃüÁî¡£ÕâÀï²úÉúÁËÒ»¸ö¶ÔÍâµ÷Óã¬Ò²¾ÍÊÇñîºÏ¡£

ÓÐÒ»¸ö¶ÔÏóά»¤ÁËÒ»¸öCTAGºÍÃüÁîÃû×Ö¶ÔÓ¦¹ØÏµµÄ±í£¬Í¨¹ýCTAG£¬¿ÉÒÔ²éѯµ½¶ÔÓ¦µÄÃüÁîÃû£¬´Ó¶øÖªµÀÈçºÎ½âÎöÕâ¸öTL1 response.

Èç´ËÒ»À´£¬TL1Parse¾ÍÎÞ·¨½øÐе¥Ôª²âÊÔÁË£¬ÖÁÉÙ²»ÄÜÇáÒ׵ĽøÐС£Í¨³£µÄ×®º¯ÊýµÄ°ì·¨¶¼²»ºÃÓÃÁË¡£

Ôõô°ì£¿

ÖØÐÂÉè¼Æ£¬Ïû³ýñîºÏ¡£

½«TL1Parse²ð·ÖΪÁ½¸öº¯Êý£º

Tl1_header TL1_get_header(const char* tl1response)
Dict* TL1_parse_payload(const char* tl1name ,const char* tl1payload)

ÕâÁ½¸öº¯Êý¶¼¿ÉÒÔµ¥¶À½øÐÐÍêÕûµÄµ¥Ôª²âÊÔ¡£¶øÕâÁ½¸öº¯ÊýµÄ´úÂë»ù±¾¾ÍÊÇTL1ParseÇзÖÁËһϣ¬µ«ÊÇÆä¿É²âÊÔÐԵõ½Á˺ܴóµÄÌá¸ß£¬µÃµ½Ò»¸ö¿É¿¿µÄ½âÎöÆ÷µÄ¿ÉÄÜÐÔ×ÔȻҲ´ó´óÌáÉýÁË¡£

Õâ¸öÀý×ÓÑÝʾÁËÈçºÎͨ¹ýÉè¼ÆÀ´Ìá¸ß´úÂëµÄ¿É²âÊÔÐÔ¡ªÕâÀïÊǵ¥Ôª²âÊÔ¡£Ò»¸öËæÒâÉè¼Æ£¬ËæÒâʵÏÖµÄÈí¼þÒª½øÐе¥Ôª²âÊÔ½«»áÊÇÒ»³¡Ø¬ÃΣ¬Ö»ÓÐÔÚÉè¼ÆµÄʱºò¾Í¿¼Âǵ½µ¥Ôª²âÊÔµÄÐèÒª£¬²ÅÄÜÕæÕýµÄ½øÐе¥Ôª²âÊÔ¡£

6.5.1. Ȧ¸´ÔӶȲâÁ¿

Ä£¿éµÄ¸´ÔÓ¶ÈÖ±½ÓÓ°ÏìÁ˵¥Ôª²âÊԵĸ²¸ÇÂÊ¡£×îÖøÃûµÄ¶ÈÁ¿´úÂ븴ÔӶȵķ½·¨ÊÇȦ¸´ÔӶȲâÁ¿¡£

¼ÆË㹫ʽ£ºV(F)=e-n+2¡£ÆäÖÐeÊÇÁ÷³ÌͼÖеıߵÄÊýÁ¿£¬nÊǽڵãÊýÁ¿¡£¼òµ¥µÄËã·¨ÊÇͳ¼ÆÈç if¡¢while¡¢doºÍswitch ÖÐµÄ case Óï¾äÊý¼Ó1¡£ÊʺÏÓÚµ¥Ôª²âÊԵĴúÂëµÄ¸´ÔÓ¶ÈÒ»°ãÈÏΪ²»Ó¦¸Ã³¬¹ý10¡£

6.5.2. ÉÈÈëÉȳö²âÁ¿

ÉÈÈëÊÇÖ¸Ò»¸öÄ£¿é±»ÆäËûÄ£¿éËùÒýÓá£ÉȳöÊÇÖ¸Ò»¸öÄ£¿éÒýÓÃÆäËûÄ£¿é¡£ÎÒÃǶ¼ÖªµÀºÃµÄÉè¼ÆÓ¦¸ÃÊǸßÄÚ¾ÛµÍñîºÏµÄ£¬Ò²¾ÍÊǸßÉÈÈëµÍÉȳö¡£Ò»¸öÉȳö³¬¹ý7µÄÄ£¿éÒ»°ãÈÏΪÊÇÉè¼ÆÇ·¼ÑµÄ¡£Éȳö¹ý´óµÄÄ£¿é½øÐе¥Ôª²âÊÔ²»ÂÛ´Ó×®ÉèÖû¹ÊǸ²¸ÇÂÊÉ϶¼ÊÇÀ§Äѵġ£½«ÏµÍ³µÄ´«³öñîºÏºÍ´«ÈëñîºÏµÄÊýÁ¿½áºÏÆðÀ´£¬ÐγÉÁíÒ»¸ö¶ÈÁ¿£º²»Îȶ¨ÐÔ¡£

²»Îȶ¨ÐÔ = Éȳö / (ÉÈÈë + Éȳö)

Õâ¸öÖµµÄ·¶Î§´Ó0µ½1¡£ÖµÔ½½Ó½ü1£¬Ëü¾ÍÔ½²»Îȶ¨¡£ÔÚÉè¼ÆºÍʵÏּܹ¹Ê±£¬Ó¦µ±¾¡Á¿ÒÀÀµÎȶ¨µÄ°ü£¬ÒòΪÕâЩ°ü²»Ì«¿ÉÄܸü¸Ä¡£Ïà·´µÄ£¬ÒÀÀµÒ»¸ö²»Îȶ¨µÄ°ü£¬·¢Éú¸ü¸Äʱ¼ä½ÓÊܵ½É˺¦µÄ¿ÉÄÜÐԾ͸ü´ó¡£

6.5.3. ¿ò¼Ü¶Ôµ¥Ôª²âÊÔµÄÒâÒå

¿ò¼ÜµÄÓ¦ÓÃÔںܴó³Ì¶ÈÉÏ¿ÉÒÔ°ïÖú½øÐе¥Ôª²âÊÔ¡£ÒòΪ¶þ´Î¿ª·¢Õß±»ÏÞ¶¨ÊµÏÖÌØ¶¨µÄ½Ó¿Ú£¬¶øÕâЩ½Ó¿ÚÊÆ±Ø¶¼Êǹ¦ÄÜÃ÷È·£¬¼òµ¥£¬µÍñîºÏµÄ¡£Ö®Ç°µÄ¿ò¼ÜʾÀý´úÂëÒ²ÑÝʾÁËÕâÒ»µã¡£ÕâÔÙ´Î˵Ã÷ÁË£¬ÓɸßˮƽµÄ¹¤³ÌʦÉè¼Æ³öµÄ¿ò¼Ü£¬¿ÉÒÔÇ¿ÖÆ³õ¼¶¹¤³Ìʦ²úÉú¸ßÖÊÁ¿µÄ´úÂë¡£

7. ά»¤¼Ü¹¹µÄÒ»ÖÂÐÔ

ÔÚʵ¼ÊµÄ¿ª·¢ÖУ¬´úÂëÆ«À뾫ÐÄÉè¼ÆµÄ¼Ü¹¹ÊǺܳ£¼ûµÄÊÂÇ飬±ÈÈçÏÂͼʾÀýÁËÒ»¸öǶÈëʽÉ豸ÖÐÉè¼ÆµÄMVCģʽ£º

ViewÒÀÀµÓÚControllerºÍModel, ControllerÒÀÀµÓÚModel£¬Model×÷Ϊµ×²ã·þÎñÌṩÕߣ¬²»ÒÀÀµView»òÕßController. ÕâÊÇÒ»¸öÊÊÓõļܹ¹£¬¿ÉÒÔÔÚÏ൱³Ì¶ÈÉÏ·ÖÀëÒµÎñ£¬Êý¾ÝºÍ½çÃæ¡£µ«ÊÇ£¬Ä³¸ö³ÌÐòÔ±ÔÚʵÏÖʱ£¬Ê¹ÓÃÁËÒ»¸ö´ÓModelµ½ViewµÄµ÷Óã¬ÆÆ»µÁ˼ܹ¹¡£

ÕâÖÖÏÖÏóͨ³£·¢ÉúÔÚ²úÆ·µÄά»¤½×¶Î£¬ÓÐʱҲ·¢ÉúÔڼܹ¹µÄʵÏֽ׶Ρ£ÎªÁËÔö¼ÓÒ»¸ö¹¦ÄÜ»òÕßÐÞÕýÒ»¸ö´íÎ󣬳ÌÐòÔ±ÓÉÓÚ²»Àí½âÔ­Óмܹ¹µÄ˼·£¬»òÕßÖ»Êǵ¥´¿µÄ͵ÀÁ£¬×ßÁË¡°½Ý¾¶¡±¡£Èç¹ûÕâÑùµÄʵÏÖ²»Äܼ°Ê±·¢ÏÖ²¢¾ÀÕý£¬Éè¼ÆÁ¼ºÃµÄ¼Ü¹¹¾Í»á±»½¥½¥ÆÆ»µ£¬Ò²¾ÍÊÇÎÒÃdz£ËµµÄ¡°¼Ü¹¹¡±¸¯ÀÃÁË¡£Í¨³£Ò»¸öÓÐÒ»¶¨ÄêÁäµÄÈí¼þ²úÆ·µÄ¼Ü¹¹¶¼ÓÐÕâ¸öÎÊÌâ¡£ÈçºÎ¼àÊÓ²¢·ÀÖ¹ÕâÖÖÎÊÌ⣬Óм¼ÊõÉϵĺ͹ÜÀíÉϵÄÊֶΡ£

¼¼ÊõÉÏ£¬½èÖú¹¤¾ß£¬¿ÉÒÔ¶Ôϵͳ×é¼þµÄÒÀÀµ½øÐзÖÎö£¬¼Ü¹¹µÄÍâÔÚ±íÏÖ×îÖØÒªµÄ¾ÍÊǸ÷¸ö²¿·ÖµÄñîºÏ¹ØÏµ¡£ÓÐһЩ¹¤¾ß¿ÉÒÔͳ¼ÆÈí¼þ×é¼þµÄÉÈÈëºÍÉȳö¡£¿ÉÒÔÓÃÕâÖÖ¹¤¾ß±àд²âÊÔ´úÂ룬¶Ô×é¼þµÄÉȳö½øÐмì²â£¬Ò»µ©·¢ÏÖ²âÊÔʧ°Ü£¬¾Í˵Ã÷¼Ü¹¹Ôâµ½ÁËÆÆ»µ¡£ÕâÖÖ¼ì²é¿ÉÒÔ¼¯³ÉÔÚһЩIDEÖУ¬ ÔÚ±àÒëʱͬ²½½øÐУ¬»òÕßÔÚcheck inµÄʱºò½øÐС£¸ü¸ß¼¶µÄ¹¤¾ß¿ÉÒÔ¶Ô´úÂë½øÐз´Ïò¹¤³ÌÉú³ÉUML£¬¿ÉÒÔÌṩ¸ü½øÒ»²½µÄÐÅÏ¢¡£µ«Í¨³£¶ÔÉÈÈëÉȳö×ö¼ì²é¾Í¿ÉÒÔÁË¡£

ͨ¹ýÉèÖôúÂë¼ìÊӵĿª·¢Á÷³Ì£¬¶Ô³ÌÐòÔ±check inµÄ´úÂë½øÐÐÆÀÉó£¬Ò²¿ÉÒÔ·ÀÖ¹´ËÀàÎÊÌâ¡£´úÂë¼ìÊÓÊÇ¿ª·¢Öзdz£ÖØÒªµÄÒ»»·£¬ËüÊôÓÚ¿ª·¢ºóÆÚ½×¶ÎÓÃÀ´·ÀÖ¹»µµÄ´úÂë½øÈëϵͳµÄÖØÒªÊֶΡ£´úÂë¼ìÊÓͨ³£Òª¹Ø×¢ÒÔÏÂÎÊÌ⣺

1. ÊÇ·ñÕýÈ·ÍêÕûµÄÍê³ÉÁËÐèÇó

60. ÊÇ·ñ×ñÑ­ÁËϵͳµÄ¼Ü¹¹

61. ´úÂëµÄ¿É²âÊÔÐÔ

62. ´íÎó´¦ÀíÊÇ·ñÍ걸

63. ´úÂë¹æ·¶

´úÂë¼ìÊÓͨ³£ÒÔ»áÒéµÄÐÎʽ½øÐУ¬Ê±¼äµãÉèÖÃÔÚÏîÄ¿½×¶ÎÐÔÍê³É£¬ÐèÒªcheck in´úÂëʱ¡£¶ÔÓÚµü´úʽ¿ª·¢£¬Ôò¿ÉÒÔÔÚÒ»¸öµü´úÖÜÆÚ½áÊøÇ°×éÖ¯¡£²ÎÓëÈËÔ±°üÀ¨¼Ü¹¹Ê¦£¬ÏîÄ¿¾­Àí£¬ÏîÄ¿³ÉÔ±£¬ÆäËûÏîÄ¿µÄ×ÊÉ³ÌʦµÈ¡£Ò»°ãʱ¼ä²»ÒªÌ«³¤£¬ÒÔ²»³¬¹ý2¸öСʱΪÒË¡£»áÒéǰ2Ìì×óÓÒ·¢³ö»áÒé֪ͨºÍÏà¹ØÎĵµ´úÂ룬Óë»áÕß±ØÐëÏÈÁ˽â»áÒéÄÚÈÝ£¬½øÐÐ×¼±¸¡£»áÒéÖУ¬ÓÉ´úÂëµÄ×÷ÕßÊ×ÏȽ²½â´úÂëÐèҪʵÏֵŦÄÜ£¬×Ô¼ºµÄʵÏÖ˼·¡£È»ºóչʾ´úÂë¡£Óë»áÕ߸ù¾Ý×Ô¼ºµÄ¾­ÑéÌá³ö¸÷ÖÖÎÊÌâºÍ¸Ä½øÒâ¼û¡£ÕâÖÖ»áÒé×î¼É»äµÄÊÇÈÃ×÷Õ߸е½±»Ö¸Ôð»òÕßÇáÊÓ£¬ËùÒÔ£¬»áÒé×éÖ¯ÕßÒªÊ×Ïȶ¨Òå»áÒéµÄ»ùµ÷£º»áÒé³É¹¦Óë·ñµÄ±ê×¼²»ÊÇ×÷ÕߵĴúÂëÖÊÁ¿ÈçºÎ£¬¶øÊÇÓë»áÕßÊÇ·ñÌṩÁËÓÐÒæµÄ½¨Òé¡£»áºóÓÉ×÷Õ߸øÓë»áÕß´ò·Ö£¬¶ø²»ÊÇ·´Ö®¡£

8. Ò»¸öʵ¼ÊǶÈëʽϵͳ¼Ü¹¹µÄÑÝ»¯

ÉÏÊÀ¼Í¾ÅÊ®Äê´ú£¬»¥ÁªÍøµÄ¼«ËÙ·¢Õ¹ÈÃͨѶ²âÊÔÉ豸ҲµÃµ½Á˼«´óµÄ·¢Õ¹¡£ÄǸöÄê´ú£¬Äܹ»ÊµÏÖijÖÖ²âÁ¿µÄÓ²¼þÊǾºÕùµÄºËÐÄ£¬Èí¼þµÄÄ¿µÄ½ö½öÊÇÇý¶¯Ó²¼þÔËÐÐÆðÀ´£¬ÔÙÌṩһ¸ö¼òµ¥µÄ½çÃæ¡£ËùÒÔ£¬×î³õµÄ²úÆ·µÄÈí¼þ½á¹¹·Ç³£¼òµ¥£¬ÀàËÆÇ°ÃæµÄ³ÇÌúÃŽûϵͳ¡£

Óŵ㣺³ÌÐò¼òµ¥Ã÷Á˵ÄʵÏÖÁËÓû§µÄÐèÇó£¬Ò»¸ö³ÌÐòÔ±¾Í¿ÉÒÔÈ«²¿¸ã¶¨¡£

ȱµã£ºÍêȫûÓл®·ÖÄ£¿é£¬µ×²ãÉϲãñîºÏÑÏÖØ¡£

8.1. Êý¾Ý´¦Àí

Óû§ÒªÇóÄܽ«²âÁ¿½á¹û±£´æÏÂÀ´£¬²¢¿ÉÒÔÖØÐ´ò¿ª¡£Êý¾Ý´æ´¢Ä£¿éºÍ½çÃæ±»¶ÀÁ¢³öÀ´¡£

ÒÀÈ»±£³ÖÉÏÃæµÄÖ÷Âß¼­£¬µ«ÊǽçÃæ²¿·Ö²»½ö¿ÉÒÔÏÔʾʵʱµÄÊý¾Ý£¬Ò²¿ÉÒÔ´ÓResultManagerÖжÁÈ¡Êý¾ÝÀ´ÏÔʾ¡£

Óŵ㣺Êý¾ÝºÍ½çÃæ·ÖÀëµÄ³ûÐγõ²½ÏÔÏÖ

ȱµã£ºResultManagerÖ»ÊÇ×÷Ϊһ¸ö¹¤¾ß´æÔÚ£¬¸ºÔð±£´æºÍ×°ÔØÀúÊ·Êý¾Ý¡£½çÃæºÍÊý¾ÝµÄÀ´Ô´ÒÀÈ»ñîºÏµÄºÜ½ô¡£²»Í¬µÄ½çÃæÐèÒªµÄ²»Í¬Êý¾Ý¶¼ÊÇͨ¹ýÓ²±àÂëÅжϵġ£

8.2. ´°¿Ú¹ÜÀí

Ëæ×Ź¦Äܲ»¶Ï¸´ÔÓ£¬½çÃæ´°¿ÚÔ½À´Ô½¶à£¬Ô­À´¿¿Ò»¸öÀàÀ´»æÖƸ÷ÖÖ½çÃæµÄ·½Ê½ÒѾ­²»ÄܳÐÊÜ¡£ÓÚÊÇ´°¿ÚµÄ¸ÅÄî±»ÒýÈ롣ÿ¸ö½çÃæ¶¼±»ÊÓΪһ¸ö´°¿Ú£¬´°¿ÚÖеÄÔªËØÎª¿Ø¼þ¡£´°¿ÚµÄ´ò¿ª£¬¹Ø±Õ£¬Òþ²ØÔòÓÉ´°¿Ú¹ÜÀíÆ÷¸ºÔð¡£

Óŵ㣺½çÃæ¹¦ÄÜÒÔ´°¿ÚµÄµ¥Î»·ÖÀ룬²»ÔÙÊÇÒ»¸ö³¬´óµÄ¼¯ºÏ¡£

ȱµã£ºËäÈ»ÓÐÁË´°¿Ú¹ÜÀíÆ÷£¬µ«ÊǽçÃæÒÀÈ»ÊÇÖ±½ÓºÍµ×²ãñîºÏµÄ£¬ÒÀÈ»ÊÇ´óÑ­»·½á¹¹¡£

8.3. MVCģʽ

Ëæ×ŹæÄ£½øÒ»²½À©´ó£¬×î³õµÄ´óÑ­»·½á¹¹ÖÕÓÚÎÞ·¨Âú×ãÈÕÒæ¸´ÔÓµÄÐèÇóÁË¡£±ê×¼µÄMVCģʽ±»ÒýÈ룬¾­ÀúÁËÒ»´Î´óµÄÖØ¹¹¡£

Êý¾ÝÖÐÐÄ×÷ΪModel±»¶ÀÁ¢³öÀ´£¬±£´æ×ŵ±Ç°×îеÄÊý¾Ý¡£View±»·ÅÔÚÁ˶ÀÁ¢µÄÈÎÎñÖÐÖ´ÐУ¬¶¨ÆÚ´ÓDataCenterÂÖѯÊý¾Ý¡£Óû§µÄ²Ù×÷ͨ¹ýView·¢Ë͸øController£¬½øÒ»²½µ÷ÓÃÓ²¼þÇý¶¯Ö´ÐС£Ó²¼þÖ´ÐеĽá¹û´ÓÇý¶¯µ½Controller¸üе½DataCenterÖС£½çÃæ£¬Êý¾Ý£¬ÃüÁîÈýÕß»ù±¾½âñî¡£ResultManager³ÉΪDataCenterµÄÒ»¸ö×é¼þ£¬View²»ÔÙÖ±½ÓÓëÆäͨѶ¡£

MVCģʽµÄÒýÈ룬µÚÒ»´ÎÈÃÕâ¸ö²úÆ·ÁËÓÐÕæÕýÒâÒåÉÏÖ°ÔðÃ÷Îú£¬¹¦ÄܶÀÁ¢µÄ¼Ü¹¹¡£

8.4. ´óÁ¿ÀàËÆÄ£¿é£¬µÍЧµÄ¸´ÓÃ

µ½ÉÏÒ»²½£¬×÷Ϊһ¸öµ¥¶ÀµÄǶÈëʽÉ豸£¬Æä¼Ü¹¹»ù±¾¿ÉÒÔÂú×ãÐèÇó¡£µ«ÊÇËæ×ÅÊг¡µÄÀ©Õ¹£¬Ô½À´Ô½¶àµÄÉ豸±»Éè¼Æ³öÀ´¡£ÕâЩÉ豸ËäȻִÐеľßÌå²âÁ¿ÈÎÎñ²»Í¬£¬µ«ÊÇËûÃǶ¼ÓÐ×ÅͬÑùµÄ²Ù×÷·½Ê½£¬ÀàËÆµÄ½çÃæ£¬¸üÖ÷ÒªµÄÊÇ£¬ËüÃÇÃæÁÙµÄÎÊÌâÁìÓòÊÇÏàͬµÄ¡£³¤ÆÚÒÔÀ´£¬¸´ÖƺÍÕ³ÌùÊÇΨһµÄ¸´Ó÷½Ê½£¬ÉõÖÁÀàÃû±äÁ¿Ãû¶¼À´²»¼°¸Ä¡£Ò»¸ö´íÎóÔÚÒ»¸öÉ豸Éϱ»ÐÞÕý£¬Í¬ÑùÒ»¶Î´úÂëµÄ´íÎóÔÚÆäËûÉ豸ÉÏÈ´À´²»¼°Ð޸ġ£¶øËæ×ÅÍŶӹæÄ£µÄÀ©´ó£¬ÉõÖÁMVCµÄ»ù±¾¼Ü¹¹ÔÚһЩÐÂÉ豸É϶¼Ã»ÄÜ×ñÊØ¡£

×îÖÕ¿ò¼Ü±»ÒýÈëÁËÕâ¸öϵÁеIJúÆ·¡£¿ò¼ÜÈ·¶¨ÁËÈçÏÂÄÚÈÝ£º

1. MVCģʽµÄ»ù±¾¼Ü¹¹

64. ´°¿Ú¹ÜÀíÆ÷ºÍ×é¼þ²¼¾ÖËã·¨

65. ¶à¹úÓïÑÔ·½°¸£¨×Ö·û´®¹ÜÀíÆ÷£©

66. ÈÕ־ϵͳ

67. ÄÚ´æ·ÖÅäÆ÷ºÍÄÚ´æÐ¹Â¶¼ì²â

8.5. Ô¶³Ì¿ØÖÆ

¿Í»§Ï£Íû½«É豸¹Ì¶¨°²·ÅÔÚÍøÂçµÄij¸öλÖã¬×÷Ϊ¡°Ì½Õ롱ʹÓã¬Ôڰ칫ÊÒͨ¹ýÔ¶³Ì¿ØÖÆÀ´·ÃÎÊÕâ¸öÉ豸¡£Õâ¶ÔÓÚÔ­±¾ÊÇ×÷Ϊ´¿ÊÖ³ÖÉ豸Éè¼ÆµÄϵͳÓÖÊÇÒ»¸öÌôÕ½¡£ÐÒÔ˵ÄÊÇ£¬MVC¼Ü¹¹¾ßÓÐÏ൱µÄµ¯ÐÔ£¬ÔçÆÚµÄͶÈë»ñµÃÁ˻ر¨¡£

TL1 Server ¶ÔÍâÌṩ»ùÓÚTelnetµÄÔ¶³Ì¿ØÖƽӿڡ£ÔÚϵͳÄÚ²¿£¬ËüµÄλÖÃÏ൱ÓÚView£¬Ö»ºÍÔ­ÓеÄControllerºÍDataCenterͨѶ¡£

8.6. ×Ô¶¯»¯µÄTL1½âÊÍÆ÷

ÓÉÓÚTL1ÃüÁîÏ൱¶à£¬¶øTL1ÓÖÍùÍù²»Êǿͻ§µÄµÚÒ»ÐèÇ󣬺ܶàÉ豸µÄTL1ÃüÁʼ²»ÍêÕû¡£¾¿ÆäÔ­Òò£¬»¹ÊÇÊÖдTL1ÃüÁîµÄ½âÊÍÆ÷Ì«ÀÛ¡£ºóÀ´Í¨¹ýÒýÈëBisonºÍFlex£¬Õâ¸öÎÊÌâÓÐËù¸ÄÉÆ£¬µ«»¹ÊDz»×ã¡£×Ô¶¯»¯´úÂëÉú³ÉÔÚÕâ¸ö½×¶Î±»ÒýÈ롣ͨ¹ýÒÔÈçϵĸñʽ¶¨ÒåTL1£¬¹¤¾ß¿ÉÒÔ×Ô¶¯Éú³ÉTL1µÄ±àÂëºÍ½âÂëÆ÷´úÂë¡£

CMD_NAME
{
cmd = ¡°SET-TIME-CONFIG::<ctag>::<year>,<month>,<day>,<hour>,<minute>,[<second>]¡±
year = 1970..2100
month = 1..12
day = 1..31
hour = 0..23
minute = 0..59
second = 0..59
}

8.7. ²âÊÔµÄÄÑÌâ

¾­¹ýÊýÊ®ÄêµÄ»ýÀÛ£¬²úÆ·ÒѾ­³ÉΪһ¸öϵÁУ¬¼¸Ê®ÖÖÉ豸¡£´ó²¿·ÖÉ豸½øÈëÁËά»¤ÆÚ£¬¾­³£Óпͻ§ÌáһЩСµÄ¸Ä½ø£¬»òÕßÒªÇóÐÞÕýÒ»ÏÂȱÏÝ¡£·±ÖصÄÊÖ¹¤»Ø¹é²âÊÔ³ÉΪÁËØ¬ÃΡ£

»ùÓÚTL1µÄ×Ô¶¯»¯²âÊÔ¼«´óµÄ½â·ÅÁ˲âÊÔÈËÔ±¡£Í¨¹ýÔÚPCÉÏÔËÐеIJâÊԽű¾£¬»Ø¹é²âÊÔ±äµÃ¼òµ¥¶ø¿É¿¿¡£Î¨Ò»²»×ãµÄÊǽçÃæ²¿·ÖÎÞ·¨ÑéÖ¤¡£

»ùÓÚTest QuestµÄ×Ô¶¯»¯¹¤¾ßÐèÒªÔÚÉ豸ÔËÐеÄpSOSϵͳÉÏ¿ª·¢Ò»¸öÀàËÆÔ¶³Ì×ÀÃæµÄÈí¼þ£¬¶øÕâÔÚpSOSÉϲ¢·ÇÒ×Ê¡£²»¹ýºÃÏûÏ¢ÊÇ£¬ÓÉÓÚ¿ò¼Ü¹Ì¶¨Á˽çÃæµÄ·ç¸ñºÍ²¼¾ÖËã·¨£¬»ùÓÚTest QuestµÄ×Ô¶¯»¯¹¤¾ß»áÓкܸߵÄʶ±ðЧÂÊ¡£

8.8. С½á

´ÓÕâ¸öʵ¼ÊµÄǶÈëʽ²úÆ·ÖØ¹¹µÄÀú³Ì¿ÉÒÔ¿´³ö£¬µÚÈý²½ÒýÈëMVCģʽºÍµÚËIJ½µÄ¿ò¼Ü»¯ÊǷdz£¹Ø¼üµÄ¡£³ÉÊìµÄMVCģʽ±£Ö¤Á˺óÐøÒ»ÏµÁеĿÉÀ©³äÐÔ£¬¶ø¿ò¼ÜÔò±£Ö¤ÁËÕâ¸ö¼Ü¹¹µÄÔÚËùÓвúÆ·ÖеÄ×¼È·ÖØÓá£

9. ×ܽá

±¾ÎÄÊÇÕë¶ÔǶÈëʽÈí¼þ¿ª·¢µÄÌØµã£¬ÌÖÂۼܹ¹Éè¼ÆµÄ˼·ºÍ·½·¨¡£ÊÔͼ¸ø´ó¼ÒÌṩһÖÖ˼Ï룬Æô·¢´ó¼ÒµÄ˼ά¡£¿ò¼Ü£¬×Ô¶¯»¯´úÂëÉú³ÉºÍ²âÊÔÇý¶¯µÄ¼Ü¹¹ÊǺËÐÄÄÚÈÝ£¬ÆäÖпò¼ÜÓÖÊǹᴩʼÖÕµÄÒªËØ¡£ÓÐÈËÎÊÎÒ£¬Ê²Ã´ÊǼܹ¹Ê¦£¬ÔõôÑù²ÅÄܳÉΪ¼Ü¹¹Ê¦£¿Îһشð˵£º±àÂ룬±àÂ룬ÔÙ±àÂ룻¸Ä´í£¬¸Ä´í£¬ÔÙ¸Ä´í¡£µ±Äã¾õµÃÑá·³µÄʱºò£¬Í£ÏÂÀ´ÏëÏ룬Ôõô²ÅÄܸü¿ì¸üºÃµÄÍê³ÉÕâЩ¹¤×÷£¿¼Ü¹¹Ê¦¾ÍÊÇÔÚʵ¼ùÖвúÉúµÄ£¬¼Ü¹¹Ê¦À´×ÔÓÚÄÇЩÇÚÓÚ˼¿¼£¬ÀÁÓÚÖØ¸´µÄÈË¡£

 
   
17759 ´Îä¯ÀÀ       32
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤