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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ǶÈëʽÖÐÉè¼ÆÄ£Ê½µÄÒÕÊõ
 
×÷Õߣº ³õ¹â
  2267  次浏览      27
 2021-11-17
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜǶÈëʽÉ豸µÄ³£¼ûµÄÈí¼þ¿ò¼Ü£¬¹Û²ìÕßģʽÒÔ¼°Ö°ÔðÁ´Ä£Ê½µÄÇ龰ʵÏÖÒÔ¼°Ê¾Àý£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ ÌǹûAutosar £¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

ǶÈëʽµÄ±êÇ©¶àΪ£º µÍÅ䣬ƫӲ¼þ£¬µ×²ã£¬×ÊÔ´½ôÕÅ£¬´úÂë¶àÒÔCÓïÑÔ£¬»ã±àΪÖ÷£¬´úÂëÓ¦ÓÃÂß¼­¼òµ¥¡£ µ«Ëæ×ÅAIOTʱ´úµÄµ½À´£¬¾ÖÃæ×é¼þ¸Ä±ä¡£ оƬµÄÐÔÄÜ×ÊÔ´Öð½¥ÌáÉý£¬ÒµÎñÂß¼­Ò²Öð½¥±äµÃ¸´ÔÓ£¬Ïà¶ÔÓÚ´úÂëµÄЧÂʶøÑÔ£¬´úÂëµÄ¸´ÓÿÉÒÆÖ²ÐÔÒªÇóÔ½À´Ô½¸ß£¬ÒÔ»ñµÃ¸ü¶ÌµÄÏîÄ¿ÖÜÆÚ ºÍ¸ü¸ßµÄ¿Éά»¤ÐÔ¡£ ÏÂÃæÊÇAIOTʱ´úǶÈëʽÉ豸µÄ³£¼ûµÄÈí¼þ¿ò¼Ü¡£

Éè¼ÆÄ£Ê½

Éè¼ÆÄ£Ê½µÄ±êÇ©£º¸ß¼¶ÓïÑÔ £¬¸ß¶Ë£¬¼Ü¹¹µÈ¡£ÔÚAIOTʱ´ú£¬Éè¼ÆÄ£Ê½ÓëǶÈëʽÄܲÁ³öÔõÑùµÄ»ð»¨£¿Éè¼ÆÄ£Ê½¿ÉÃèÊöΪ£º¶ÔÓÚijÀàÏàËÆµÄÎÊÌ⣬¾­¹ýǰÈ˵IJ»¶Ï³¢ÊÔ£¬×ܽá³öÁË´¦Àí´ËÀàÎÊÌâµÄ ¹«ÈÏ µÄ ÓÐЧ ½â¾ö°ì·¨¡£

ǶÈëʽÖ÷ÒªÒÔCÓïÑÔ¿ª·¢£¬ÇÒÃæÏò¹ý³Ì£¬¶øÉè¼ÆÄ£Ê½³£¼ûÓڸ߼¶ÓïÑÔ£¨ÃæÏò¶ÔÏ󣩣¬Ä¿Ç°ÊÐÃæÉÏÃèÊöÉè¼ÆÄ£Ê½µÄÊé¼®¶àÊýʹÓÃJAVA ÓïÑÔ£¬CÓïÑÔÄÜʵÏÖÉè¼ÆÄ£Ê½Âð£¿Éè¼ÆÄ£Ê½ÓëÓïÑÔÎ޹أ¬ËüÊǽâ¾öÎÊÌâµÄ·½·¨£¬JAVA¿ÉÒÔʵÏÖ£¬CÓïÑÔͬÑù¿ÉÒÔʵÏÖ¡£Í¬ÑùµÄ£¬JAVA³ÌÐòÔ±»áÓöµ½ÐèÒªÓÃģʽÀ´´¦ÀíµÄÎÊÌ⣬C³ÌÐòÔ±Ò²¿ÉÄÜÓö¼û£¬Òò´ËÉè¼ÆÄ£Ê½ÊǺÜÓбØÒªÑ§Ï°µÄ¡£

ģʽÏÝÚ壺Éè¼ÆÄ£Ê½ÊÇÕë¶Ô¾ßÌåµÄijЩÀàÎÊÌâµÄÓÐЧ½â¾ö°ì·¨£¬²»ÊÇËùÓеÄÎÊÌâ¶¼ÄÜÆ¥Åäµ½¶ÔÓ¦µÄÉè¼ÆÄ£Ê½¡£Òò´Ë£¬²»ÄÜһζµÄ×·ÇóÉè¼ÆÄ£Ê½£¬ÓÐʱºò¼òµ¥Ö±½ÓµÄ´¦Àí·´¶ø¸üÓÐЧ¡£ÓеÄÎÊÌâûÓкÏÊʵÄģʽ£¬¿ÉÒÔ¾¡Á¿Âú×ãһЩÉè¼ÆÔ­Ôò£¬È翪±ÕÔ­Ôò£¨¶ÔÀ©Õ¹¿ª·Å£¬¶ÔÐ޸Ĺرգ©

¹Û²ìÕßģʽ

Çé¾°

ÔÚ¶ÔÏóÖ®¼ä¶¨ÒåÒ»¸öÒ»¶Ô¶àµÄÒÀÀµ£¬µ±Ò»¸ö¶ÔÏó״̬¸Ä±äµÄʱºò£¬ËùÓÐÒÀÀµµÄ¶ÔÏó¶¼»á×Ô¶¯ÊÕµ½Í¨Öª¡£

ʵÏÖ

Ö÷Ìâ¶ÔÏóÌṩͳһµÄ×¢²á½Ó¿Ú£¬ÒÔ¼°×¢²áº¯Êý ¡£Óɹ۲ìÕß±¾ÉíʵÀý»¯observer_intf ½Ó¿Ú£¬È»ºóʹÓÃ×¢²áº¯Êý£¬Ìí¼Óµ½¶ÔÓ¦µÄÖ÷ÌâÁбíÖУ¬Ö÷Ìâ״̬·¢Éú¸Ä±ä£¬ÒÀ´Î֪ͨÁбíÖеÄËùÓжÔÏó¡£

µ±Ö÷Ìâ״̬·¢Éú¸Ä±ä£¬½«Í¨Öªµ½ËùÓй۲ìÕߣ¬¹Û²ìÕß±¾ÉíÒ²¿ÉÒÔÉèÖÃÌõ¼þ£¬ÊÇ·ñÑ¡Ôñ½ÓÊÕ֪ͨ

ʵÀý£ºÇ¶ÈëʽÂã»úµÍ¹¦ºÄ¿ò¼Ü

  • É豸¹¦ºÄ·Ö²¼

ÆäÖÐÏß·ËðºÄ£¬µçÔ´µç·µÈÈí¼þÎÞ·¨¿ØÖÆ£¬¹Ê²»ÌÖÂÛ¡£°åÔØÍâÉ裬Èç´«¸ÐÆ÷¿ÉÄÜͨ¹ýijÌõÃüÁîÅäÖýøÈëµÍ¹¦ºÄģʽ£¬ÓÖ»òÕßÓ²¼þÉÏÖ§³Ö¿ØÖÆÍâÉèµçÔ´À´¿ØÖƹ¦ºÄ¡£Æ¬ÄÚÍâÉ裬¼°Ð¾Æ¬ÄÚ²¿µÄÍâÉ裬ͨ¹ýÐ¶ÔØÏà¹ØÇý¶¯£¬¹Ø±ÕʱÖÓÅäÖù¤×÷ģʽÀ´¿ØÖƹ¦ºÄ¡£

  • É豸»½ÐÑ·½Ê½
    • Ö÷¶¯»½ÐÑϵͳij¸ö¶¨Ê±Ê¼þµ½À´Ê±£¬ÏµÍ³±»Ö÷¶¯»½ÐÑ´¦Àíʼþ
    • ±»¶¯»½ÐÑϵͳ´¦ÓÚ˯Ãߣ¬±»Íⲿʼþ»½ÐÑ£¬Èç´®¿Ú½ÓÊÕµ½Ò»°üÊý¾Ý£¬´«¸ÐÆ÷¼ì²âµ½±ä»¯£¬Í¨¹ýÒý½Å֪ͨоƬ
  • ϵͳÔÊÐí˯ÃßµÄÌõ¼þ
    • ÍâÉèÎÞÕýÔÚÊÕ·¢µÄÊý¾Ý
    • »º´æÎÞÐèÒª´¦ÀíµÄÊý¾Ý
    • Ó¦Óòã״̬´¦ÓÚ¿ÕÏУ¨ÎÞÐèÒª´¦ÀíµÄʼþ£©
  • »ùÓÚ¹Û²ìÕßģʽµÄPM¿ò¼ÜʵÏÖ

PM×é¼þÌṩµÄ½Ó¿Ú

  1. struct pm

  2. {

  3. struct pm * next;

  4. const char * name;

  5. void (*init)( void );

  6. void (* deinit ( void );

  7. void * condition;

  8. };

  9. static struct pm pm_list;

  10. static uint8_t pm_num;

  11. static uint8_t pm_status;


  12. int pm_register ( const struct pm* pm , const char * name)

  13. {

  14. struct pm* cur_pm = &pm_list;

  15. while (cur_pm->next)

  16. {

  17. cur_pm = cur_pm->next;

  18. }

  19. cur_pm->next = pm;

  20. pm->next = NULL ;

  21. pm->name = name;

  22. pm_num++;

  23. }


  24. void pm_loop ( void )

  25. {

  26. uint32_t pm_condition = 0 ;

  27. struct pm* cur_pm = pm_list.next;

  28. static uint8_t cnt;


  29. /*check all condition*/

  30. while (cur_pm)

  31. {

  32. if (cur_pm->condition){

  33. pm_condition |= *(( uint32_t *)(cur_pm->condition));

  34. }

  35. cur_pm = cur_pm->next;

  36. }

  37. if (pm_condition == 0 )

  38. {

  39. cnt++;

  40. if (cnt>= 5 )

  41. {

  42. pm_status = READY_SLEEP;

  43. }

  44. }

  45. else

  46. {

  47. cnt = 0 ;

  48. }

  49. if ( pm_status == READY_SLEEP)

  50. {

  51. cur_pm = pm_list.next;

  52. while (cur_pm)

  53. {

  54. if (cur_pm->deinit){

  55. cur_pm-> deinit ();

  56. }

  57. cur_pm = cur_pm->next;

  58. }

  59. pm_status = SLEEP;

  60. ENTER_SLEEP_MODE ();

  61. }

  62. /*sleep--->wakeup*/

  63. if (pm_status == SLEEP)

  64. {

  65. pm_status = NORMAL;

  66. cur_pm = pm_list.next;

  67. while (cur_pm)

  68. {

  69. if (cur_pm->init){

  70. cur_pm-> init ();

  71. }

  72. cur_pm = cur_pm->next;

  73. }

  74. }

  75. }

ÍâÉèʹÓÃPM½Ó¿Ú

½áÂÛ

  • PM µçÔ´¹ÜÀí¿ÉÒÔµ¥¶ÀÐγÉÄ£¿é£¬µ±¹¦ºÄÍâÉèÔö¼Óʱ£¬Ö»ÐèʵÏÖ½Ó¿Ú£¬×¢²á¼´¿É
  • ͨ¹ý¶¨Òå¶Îµ¼³ö²Ù×÷£¬¿ÉÒÔ¸ü¼Ó¼ò»¯Ó¦Óòã»òÍâÉèµÄ×¢²áÂß¼­
  • ·½±ãµ÷ÊÔ£¬¿ÉÒԺܷ½±ã´òÓ¡³öϵͳµ±Ç°ÎªÂú×ã˯ÃßÌõ¼þµÄÄ£¿é
  • ͨ¹ýÌõ¼þ×ֶλ®·Ö£¬Ó¦¸Ã¿ÉÒÔʵÏÖϵͳ²¿·Ö˯Ãß

Ö°ÔðÁ´Ä£Ê½

Çé¾°

ÔÚÏÖʵÉú»îÖУ¬Ò»¸öʼþ(ÈÎÎñ)ÐèÒª¾­¹ý¶à¸ö¶ÔÏó´¦ÀíÊǺܳ£¼ûµÄ³¡¾°¡£È籨ÏúÁ÷³Ì£¬¹«Ë¾Ô±¹¤±¨Ïú£¬ Ê×ÏÈÔ±¹¤ÕûÀí±¨Ïúµ¥£¬ºË¶Ô±¨Ïú½ð¶î£¬ÓÐÎóÔò¼ÌÐøºË¶ÔÕûÀí£¬Ö±µ½ÎÞÎ󣬽«±¨Ïúµ¥µÝ½»µ½²ÆÎñ£¬²ÆÎñ²¿ÃŽøÐк˶ԣ¬ºË¶ÔÎÞÎóºó£¬ÅжϽð¶îÊýÁ¿£¬ÈôСÓÚÒ»¶¨½ð¶î£¬Ôò²ÆÎñ²¿ÃÅ¿ÉÖ±½ÓÉóÅú£¬Èô½ð¶î³¬¹ý·¶Î§£¬Ôò±¨Ïúµ¥Á÷´«µ½×ܾ­Àí£¬µÃµ½Åú×¼ºó£¬Õû¸öÈÎÎñ²ÅËã½áÊø¡£ÀàËÆµÄÇé¾°»¹Óкܶ࣬ÈçÅäÖÃÒ»¸öWIFIÄ£¿é£¬Í¨¹ýATÖ¸ÁҪÏëÄ£¿éÕýÈ·Á¬ÈëWIFI £¬ ÐèÒª°´Ò»¶¨µÄ˳ÐòÒÀ´Î·¢ËÍÅäÖÃÖ¸Áî £¬ ÈçÉèÖÃÉèÖÃģʽ £¬ÉèÖà ÐèÒªÁ¬½ÓµÄWIFIÃû£¬ÃÜÂ룬ÿ·¢ËÍÒ»ÌõÅäÖÃÖ¸Áģ¿é¶¼½«·µ»ØÅäÖýá¹û£¬¶ø·¢ËÍÕßÐèÒªÅжϽá¹ûµÄÕýÈ·ÐÔ£¬ÔÙÑ¡ÔñÊÇ·ñ·¢ËÍÏÂÒ»ÌõÖ¸Áî»òÕß½øÐÐÖØ´«¡£

×ܽáÆðÀ´ÊÇ£¬Ò»ÏµÁÐÈÎÎñÐèÒªÑϸñ°´ÕÕʱ¼äÏßÒÀ´Î´¦ÀíµÄ˳ÐòÂß¼­£¬ÈçÏÂͼËùʾ ¡£

ÔÚ´æÔÚϵͳµÄÇé¿öÏ£¬´ËÀàÂß¼­¿ÉÒÔºÜÈÝÒ×µÄÓÃ×èÈûÑÓʱÀ´ÊµÏÖ£¬ÊµÏÖÈçÏ£º

ÔÚÂã»úµÄÇé¿öÏ£¬ÎªÁ˱£Ö¤ÏµÍ³µÄʵʱÐÔ£¬ÎÞ·¨Ê¹ÓÃ×èÈûÑÓʱ£¬Ò»°ãʹÓö¨Ê±Ê¼þÅäºÏ״̬»úÀ´ÊµÏÖ£º

ºÍϵͳʵÏÖÏà±È£¬Âã»úµÄʵÏÖ¸ü¼Ó¸´ÔÓ£¬ÎªÁ˱ÜÃâ×èÈû£¬Ö»ÄÜͨ¹ý״̬ºÍ¶¨Ê±Æ÷À´ÊµÏÖ˳ÐòÑÓʱµÄÂß¼­£¬¿ÉÒÔ¿´µ½£¬ÊµÏÖ¹ý³ÌÏ൱·ÖÉ¢£¬¶ÔÓÚµ¥¸öÈÎÎñµÄ´¦Àí·ÖÉ¢µ½ÁË3¸öº¯ÊýÖд¦Àí£¬ÕâÑùµ¼Öµĺó¹ûÊÇ£ºÐ޸ģ¬ÒÆÖ²µÄ²»±ã¡£¶øÊµ¼ÊµÄÓ¦ÓÃÖУ¬ÀàËÆµÄÂß¼­Ï൱¶à£¬Èç¹û°´ÕÕÉÏÃæµÄ·½·¨È¥ÊµÏÖ£¬½«»áµ¼ÖÂÓ¦ÓóÌÐòµÄÇ¿ñîºÏ¡£

ʵÏÖ

¿ÉÒÔ·¢ÏÖ£¬ÉÏÃæµÄÇé¾°ÓÐÒÔÏÂÌØµã£º

  • ÈÎÎñ°´Ë³ÐòÖ´ÐУ¬Ö»Óе±Ç°ÈÎÎñÖ´ÐÐÍêÁË(ÓнáÂÛ£¬³É¹¦»òÕßʧ°Ü)²ÅÔÊÐíÖ´ÐÐÏÂÒ»¸öÈÎÎñ
  • ǰһ¸öÈÎÎñµÄÖ´Ðнá¹û»áÓ°Ïìµ½ÏÂÒ»¸öÈÎÎñµÄÖ´ÐÐÇé¿ö
  • ÈÎÎñÓÐÒ»Ð©ÌØÐÔ£¬È糬ʱʱ¼ä£¬ÑÓʱʱ¼ä£¬ÖØÊÔ´ÎÊý

ͨ¹ýÒÔÉÏÐÅÏ¢£¬ÎÒÃÇ¿ÉÒÔ³éÏó³öÕâÑùÒ»¸öÄ£ÐÍ£ºÈÎÎñ×÷Ϊ½Úµã£¬ ÿһ¸öÈÎÎñ½ÚµãÓÐÆäÊôÐÔ£ºÈ糬ʱ£¬ÑÓʱ£¬ÖØÊÔ£¬²ÎÊý£¬´¦Àí·½·¨£¬Ö´Ðнá¹û¡£µ±ÐèÒª°´ÕÕ˳ÐòÖ´ÐÐһϵÁÐÈÎÎñʱ£¬ÒÀ´Î½«ÈÎÎñ½Úµã´®³ÉÒ»ÌõÁ´£¬Æô¶¯Á´ÔËÐУ¬Ôò´ÓÈÎÎñÁ´µÄµÚÒ»¸ö½Úµã¿ªÊ¼ÔËÐУ¬ÔËÐеĽá¹û¿ÉÒÔÊÇ OK , BUSY ,ERROR ¡£ÈôÊÇOK, ±íʾ½ÚµãÒÑ´¦Àí£¬´ÓÈÎÎñÁ´ÖÐɾ³ý£¬ERROR ±íʾÔËÐгö´í£¬ÈÎÎñÁ´½«Í£Ö¹ÔËÐУ¬½øÐдíÎ󻨵÷£¬¿ÉÒÔÓÐÓû§¾ö¶¨ÊÇ·ñ¼ÌÐøÔËÐÐÏÂÈ¥¡£BUSY±íʾÈÎÎñÁ´´¦ÓڵȴýÓ¦´ð£¬»òÕߵȴýÑÓʱµÄÇé¿ö¡£µ±ÕûÌõÈÎÎñÁ´ÉϵĽڵ㶼ִÐÐÍ꣬½øÐгɹ¦»Øµ÷¡£

nodeÊý¾Ý½á¹¹¶¨Òå

nodeÄÚ´æ³Ø

ʹÓÃÄÚ´æ³ØµÄ±ØÒªÐÔ£ºÊµ¼ÊÇé¿öÏ£¬Í¬Ò»Ê±¼ä£¬ÔðÈÎÁ´µÄÌõÊý£¬ÒÔ¼°µ¥ÌõÁ´µÄ½ÚµãÊý±È½ÏÓÐÏÞ£¬µ«ÖÖÀàÊÇÏ൱¶àµÄ¡£±ÈÈçÒ»¸öÖ§³ÖATÖ¸ÁîµÄÄ£¿é£¬¿ÉÄÜÖ§³Ö¼¸Ê®ÌõATÖ¸Áµ«Ö´ÐÐÒ»¸öÅäÖòÙ×÷£¬¿ÉÄܾÍÖ»»áʹÓÃ3-5ÌõÖ¸ÁÈôÈ«²¿¾²Ì¬¶¨Òå½Úµã£¬½«»áÏûºÄ´óÁ¿ÄÚ´æ×ÊÔ´¡£Òò´Ë¶¯Ì¬·ÖÅäÊDZØÒªµÄ¡£

³õʼ»¯nodeÄÚ´æ³Ø£¬ÄÚ´æ³ØÄÚËùÓнڵ㶼½«Ìí¼Óµ½free_list¡£µ±ÉêÇë½Úµãʱ£¬»áÈ¡³öµÚÒ»¸ö¿ÕÏнڵ㣬¼ÓÈëµ½used_list , ²¢ÇÒ½ÓÈëµ½ÔðÈÎÁ´¡£µ±ÔðÈÎÁ´Ä³Ò»¸ö½ÚµãÖ´ÐÐÍ꣬½«»á±»×Ô¶¯»ØÊÕ£¨´ÓÔðÈÎÁ´ÖÐɾ³ý£¬²¢´Óused_listÖÐɾ³ý£¬È»ºóÌí¼Óµ½free_list£©

Ö°ÔðÁ´Êý¾Ý½á¹¹¶¨Òå

Ö°ÔðÁ´³õʼ»¯

Ö°ÔðÁ´Ìí¼Ó½Úµã

Ö°ÔðÁ´µÄÆô¶¯

Ö°ÔðÁ´µÄÓ¦´ð

Ö°ÔðÁ´µÄÔËÐÐ

  1. int resp_chain_run ( resp_chain_t * chain)

  2. {

  3. RESP_ASSERT (chain);

  4. if (chain->enable)

  5. {

  6. shadow_resp_chain_node_t * cur_node = chain->node.next;

  7. /*maybe ans occur in handle,so cannot change state direct when ans comming*/

  8. if (chain->is_ans)

  9. {

  10. chain->is_ans = false ;

  11. chain->state = RESP_STATUS_ANS;

  12. }

  13. switch (chain->state)

  14. {

  15. case RESP_STATUS_IDLE:

  16. {

  17. if (cur_node)

  18. {

  19. uint16_t retry = cur_node->init_retry;

  20. if (cur_node->handle)

  21. {

  22. cur_node->param_type = RESP_PARAM_INPUT;

  23. chain->state = cur_node-> handle (( resp_chain_node_t *)cur_node ,cur_node->param);

  24. }

  25. else

  26. {

  27. RESP_LOG ( "node handle is null ,goto next node" );

  28. chain->state = RESP_STATUS_OK;

  29. }

  30. if (retry != cur_node->init_retry)

  31. {

  32. cur_node->retry = cur_node->init_retry> 0 ?(cur_node- >init_retry -1 ): 0 ;

  33. }

  34. }

  35. else

  36. {

  37. if (chain->resp_done)

  38. {

  39. chain-> resp_done (( void *)RESP_RESULT_OK);

  40. }

  41. chain->enable = 0 ;

  42. chain->state = RESP_STATUS_IDLE;

  43. TimerStop (&chain->timer);

  44. chain->timer_is_running = false ;

  45. }

  46. break ;

  47. }

  48. case RESP_STATUS_DELAY:

  49. {

  50. if (chain->timer_is_running == false )

  51. {

  52. chain->timer_is_running = true ;

  53. TimerSetValueStart (&chain->timer , cur_node->duration);

  54. }

  55. if ( TimerGetFlag (&chain->timer) == true )

  56. {

  57. chain->state = RESP_STATUS_OK;

  58. chain->timer_is_running = false ;

  59. }

  60. break ;

  61. }

  62. case RESP_STATUS_BUSY:

  63. {

  64. /*waiting for ans or timeout*/

  65. if (chain->timer_is_running == false )

  66. {

  67. chain->timer_is_running = true ;

  68. TimerSetValueStart (&chain->timer , cur_node->timeout);

  69. }

  70. if ( TimerGetFlag (&chain->timer) == true )

  71. {

  72. chain->state = RESP_STATUS_TIMEOUT;

  73. chain->timer_is_running = false ;

  74. }

  75. break ;

  76. }

  77. case RESP_STATUS_ANS:

  78. {

  79. /*already got the ans,put the param back to the request handle*/

  80. TimerStop (&chain->timer);

  81. chain->timer_is_running = false ;

  82. if (cur_node->handle)

  83. {

  84. cur_node->param_type = RESP_PARAM_ANS;

  85. chain->state = cur_node-> handle (( resp_chain_node_t *)cur_node , chain->param);

  86. }

  87. else

  88. {

  89. RESP_LOG ( "node handle is null ,goto next node" );

  90. chain->state = RESP_STATUS_OK;

  91. }

  92. break ;

  93. }

  94. case RESP_STATUS_TIMEOUT:

  95. {

  96. if (cur_node->retry)

  97. {

  98. cur_node->retry--;

  99. /*retry to request until cnt is 0*/

  100. chain->state = RESP_STATUS_IDLE;

  101. }

  102. else

  103. {

  104. chain->state = RESP_STATUS_ERROR;

  105. }

  106. break ;

  107. }

  108. case RESP_STATUS_ERROR:

  109. {

  110. if (chain->resp_done)

  111. {

  112. chain-> resp_done (( void *)RESP_RESULT_ERROR);

  113. }

  114. chain->enable = 0 ;

  115. chain->state = RESP_STATUS_IDLE;

  116. TimerStop (&chain->timer);

  117. chain->timer_is_running = false ;

  118. cur_node->retry = cur_node->init_retry> 0 ?(cur_node->init_retry -1 ): 0 ;

  119. chain_node_free_all (chain);

  120. break ;

  121. }

  122. case RESP_STATUS_OK:

  123. {

  124. /*get the next node*/

  125. cur_node->retry = cur_node->init_retry> 0 ?(cur_node->init_retry -1 ): 0 ;

  126. chain_node_free (cur_node);

  127. chain->node.next = chain->node.next->next;

  128. chain->state = RESP_STATUS_IDLE;

  129. break ;

  130. }

  131. default :

  132. break ;

  133. }

  134. }

  135. return chain->enable;

  136. }

²âÊÔÓÃÀý

  • ¶¨Òå²¢³õʼ»¯ÔðÈÎÁ´
  • ¶¨ÒåÔËÐк¯Êý£¬ÔÚÖ÷Ñ­»·Öе÷ÓÃ
  • ²âÊÔ½ÚµãÌí¼Ó²¢Æô¶¯´¥·¢º¯Êý
  • ·Ö±ðʵÏÖ½ÚµãÇëÇóº¯Êý

½áÂÛ

  • ʵÏÖÁËÂã»ú´¦Àí ˳ÐòÑÓʱÈÎÎñ
  • ½Ï´ó³Ì¶ÈµÄ¼ò»¯ÁËÓ¦Óó̵ÄʵÏÖ£¬Óû§Ö»ÐèҪʵÏÖÏìÓ¦µÄ´¦Àíº¯Êý £¬ µ÷ÓýӿÚÌí¼Ó£¬¼´¿É°´Ê±¼äÒªÇóÖ´ÐÐ
  • ²ÎÊýΪ¿Õ£¬±íÃ÷ΪÇëÇó £¬·ñÔòΪӦ´ð¡££¨ÔÚijЩ³¡ºÏ£¬ÇëÇó¿ÉÄÜÒ²´ø²ÎÊý£¬Èç½ÓÏÂÀ´Ëù˵µÄLAPЭÒ飬´ËʱÐèҪͨ¹ýÅжϲÎÊýµÄÀàÐÍ£©

 

 

 

 
   
2267 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

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

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

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
»ùÓÚFPGAµÄÒì¹¹¼ÆËãÔÚ¶àýÌåÖеÄÓ¦ÓÃ
ÉîÈëLinuxÄں˼ܹ¹¡ª¡ª¼ò½éÓë¸ÅÊö
LinuxÄÚºËϵͳ¼Ü¹¹½éÉÜ
dzÎöǶÈëʽCÓÅ»¯¼¼ÇÉ
½ø³Ì¼äͨÐÅ£¨IPC£©½éÉÜ
×îпγÌ
ǶÈëʽLinuxÇý¶¯¿ª·¢
´úÂëÕû½àÖ®µÀ-̬¶È¡¢¼¼ÒÕÓëϰ¹ß
ǶÈëʽÈí¼þ²âÊÔ
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
ǶÈëʽÈí¼þ¿É¿¿ÐÔÉè¼Æ
³É¹¦°¸Àý
ij¾ü¹¤Ëù ǶÈëʽÈí¼þ¼Ü¹¹
Öк½¹¤ÒµÄ³Ñо¿Ëù ǶÈëʽÈí¼þ¿ª·¢Ö¸ÄÏ
ij¹ìµÀ½»Í¨ ǶÈëʽÈí¼þ¸ß¼¶Éè¼ÆÊµ¼ù
ÉîÛÚ Ç¶ÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
ijÆóÒµ »ùÓÚIPDµÄǶÈëʽÈí¼þ¿ª·¢