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

Éè¼ÆÄ£Ê½
Éè¼ÆÄ£Ê½µÄ±êÇ©£º¸ß¼¶ÓïÑÔ £¬¸ß¶Ë£¬¼Ü¹¹µÈ¡£ÔÚAIOTʱ´ú£¬Éè¼ÆÄ£Ê½ÓëǶÈëʽÄܲÁ³öÔõÑùµÄ»ð»¨£¿Éè¼ÆÄ£Ê½¿ÉÃèÊöΪ£º¶ÔÓÚijÀàÏàËÆµÄÎÊÌ⣬¾¹ýǰÈ˵IJ»¶Ï³¢ÊÔ£¬×ܽá³öÁË´¦Àí´ËÀàÎÊÌâµÄ ¹«ÈÏ µÄ ÓÐЧ ½â¾ö°ì·¨¡£
ǶÈëʽÖ÷ÒªÒÔCÓïÑÔ¿ª·¢£¬ÇÒÃæÏò¹ý³Ì£¬¶øÉè¼ÆÄ£Ê½³£¼ûÓڸ߼¶ÓïÑÔ£¨ÃæÏò¶ÔÏ󣩣¬Ä¿Ç°ÊÐÃæÉÏÃèÊöÉè¼ÆÄ£Ê½µÄÊé¼®¶àÊýʹÓÃJAVA ÓïÑÔ£¬CÓïÑÔÄÜʵÏÖÉè¼ÆÄ£Ê½Âð£¿Éè¼ÆÄ£Ê½ÓëÓïÑÔÎ޹أ¬ËüÊǽâ¾öÎÊÌâµÄ·½·¨£¬JAVA¿ÉÒÔʵÏÖ£¬CÓïÑÔͬÑù¿ÉÒÔʵÏÖ¡£Í¬ÑùµÄ£¬JAVA³ÌÐòÔ±»áÓöµ½ÐèÒªÓÃģʽÀ´´¦ÀíµÄÎÊÌ⣬C³ÌÐòÔ±Ò²¿ÉÄÜÓö¼û£¬Òò´ËÉè¼ÆÄ£Ê½ÊǺÜÓбØÒªÑ§Ï°µÄ¡£
ģʽÏÝÚ壺Éè¼ÆÄ£Ê½ÊÇÕë¶Ô¾ßÌåµÄijЩÀàÎÊÌâµÄÓÐЧ½â¾ö°ì·¨£¬²»ÊÇËùÓеÄÎÊÌâ¶¼ÄÜÆ¥Åäµ½¶ÔÓ¦µÄÉè¼ÆÄ£Ê½¡£Òò´Ë£¬²»ÄÜһζµÄ×·ÇóÉè¼ÆÄ£Ê½£¬ÓÐʱºò¼òµ¥Ö±½ÓµÄ´¦Àí·´¶ø¸üÓÐЧ¡£ÓеÄÎÊÌâûÓкÏÊʵÄģʽ£¬¿ÉÒÔ¾¡Á¿Âú×ãһЩÉè¼ÆÔÔò£¬È翪±ÕÔÔò£¨¶ÔÀ©Õ¹¿ª·Å£¬¶ÔÐ޸Ĺرգ©
¹Û²ìÕßģʽ
Çé¾°
ÔÚ¶ÔÏóÖ®¼ä¶¨ÒåÒ»¸öÒ»¶Ô¶àµÄÒÀÀµ£¬µ±Ò»¸ö¶ÔÏó״̬¸Ä±äµÄʱºò£¬ËùÓÐÒÀÀµµÄ¶ÔÏó¶¼»á×Ô¶¯ÊÕµ½Í¨Öª¡£

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

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

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

ÆäÖÐÏß·ËðºÄ£¬µçÔ´µç·µÈÈí¼þÎÞ·¨¿ØÖÆ£¬¹Ê²»ÌÖÂÛ¡£°åÔØÍâÉ裬Èç´«¸ÐÆ÷¿ÉÄÜͨ¹ýijÌõÃüÁîÅäÖýøÈëµÍ¹¦ºÄģʽ£¬ÓÖ»òÕßÓ²¼þÉÏÖ§³Ö¿ØÖÆÍâÉèµçÔ´À´¿ØÖƹ¦ºÄ¡£Æ¬ÄÚÍâÉ裬¼°Ð¾Æ¬ÄÚ²¿µÄÍâÉ裬ͨ¹ýÐ¶ÔØÏà¹ØÇý¶¯£¬¹Ø±ÕʱÖÓÅäÖù¤×÷ģʽÀ´¿ØÖƹ¦ºÄ¡£
- É豸»½ÐÑ·½Ê½
- Ö÷¶¯»½ÐÑϵͳij¸ö¶¨Ê±Ê¼þµ½À´Ê±£¬ÏµÍ³±»Ö÷¶¯»½ÐÑ´¦Àíʼþ
- ±»¶¯»½ÐÑϵͳ´¦ÓÚ˯Ãߣ¬±»Íⲿʼþ»½ÐÑ£¬Èç´®¿Ú½ÓÊÕµ½Ò»°üÊý¾Ý£¬´«¸ÐÆ÷¼ì²âµ½±ä»¯£¬Í¨¹ýÒý½Å֪ͨоƬ
- ϵͳÔÊÐí˯ÃßµÄÌõ¼þ
- ÍâÉèÎÞÕýÔÚÊÕ·¢µÄÊý¾Ý
- »º´æÎÞÐèÒª´¦ÀíµÄÊý¾Ý
- Ó¦Óòã״̬´¦ÓÚ¿ÕÏУ¨ÎÞÐèÒª´¦ÀíµÄʼþ£©
- »ùÓÚ¹Û²ìÕßģʽµÄPM¿ò¼ÜʵÏÖ
PM×é¼þÌṩµÄ½Ó¿Ú
-
struct pm
-
{
-
struct pm * next;
-
const char * name;
-
void (*init)( void );
-
void (* deinit ( void );
-
void * condition;
-
};
-
static struct pm pm_list;
-
static uint8_t pm_num;
-
static uint8_t pm_status;
-
-
int pm_register ( const struct pm* pm , const char * name)
-
{
-
struct pm* cur_pm = &pm_list;
-
while (cur_pm->next)
-
{
-
cur_pm = cur_pm->next;
-
}
-
cur_pm->next = pm;
-
pm->next = NULL ;
-
pm->name = name;
-
pm_num++;
-
}
-
-
void pm_loop ( void )
-
{
-
uint32_t pm_condition = 0 ;
-
struct pm* cur_pm = pm_list.next;
-
static uint8_t cnt;
-
-
/*check all condition*/
-
while (cur_pm)
-
{
-
if (cur_pm->condition){
-
pm_condition |= *(( uint32_t *)(cur_pm->condition));
-
}
-
cur_pm = cur_pm->next;
-
}
-
if (pm_condition == 0 )
-
{
-
cnt++;
-
if (cnt>= 5 )
-
{
-
pm_status = READY_SLEEP;
-
}
-
}
-
else
-
{
-
cnt = 0 ;
-
}
-
if ( pm_status == READY_SLEEP)
-
{
-
cur_pm = pm_list.next;
-
while (cur_pm)
-
{
-
if (cur_pm->deinit){
-
cur_pm-> deinit ();
-
}
-
cur_pm = cur_pm->next;
-
}
-
pm_status = SLEEP;
-
ENTER_SLEEP_MODE ();
-
}
-
/*sleep--->wakeup*/
-
if (pm_status == SLEEP)
-
{
-
pm_status = NORMAL;
-
cur_pm = pm_list.next;
-
while (cur_pm)
-
{
-
if (cur_pm->init){
-
cur_pm-> init ();
-
}
-
cur_pm = cur_pm->next;
-
}
-
}
-
}
|
ÍâÉèʹÓÃ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£©
Ö°ÔðÁ´Êý¾Ý½á¹¹¶¨Òå

Ö°ÔðÁ´³õʼ»¯

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

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

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

Ö°ÔðÁ´µÄÔËÐÐ
-
int resp_chain_run ( resp_chain_t * chain)
-
{
-
RESP_ASSERT (chain);
-
if (chain->enable)
-
{
-
shadow_resp_chain_node_t * cur_node = chain->node.next;
-
/*maybe ans occur in handle,so cannot change state direct when ans comming*/
-
if (chain->is_ans)
-
{
-
chain->is_ans = false ;
-
chain->state = RESP_STATUS_ANS;
-
}
-
switch (chain->state)
-
{
-
case RESP_STATUS_IDLE:
-
{
-
if (cur_node)
-
{
-
uint16_t retry = cur_node->init_retry;
-
if (cur_node->handle)
-
{
-
cur_node->param_type = RESP_PARAM_INPUT;
-
chain->state = cur_node-> handle (( resp_chain_node_t *)cur_node ,cur_node->param);
-
}
-
else
-
{
-
RESP_LOG ( "node handle is null ,goto next node" );
-
chain->state = RESP_STATUS_OK;
-
}
-
if (retry != cur_node->init_retry)
-
{
-
cur_node->retry = cur_node->init_retry> 0 ?(cur_node- >init_retry -1 ): 0 ;
-
}
-
}
-
else
-
{
-
if (chain->resp_done)
-
{
-
chain-> resp_done (( void *)RESP_RESULT_OK);
-
}
-
chain->enable = 0 ;
-
chain->state = RESP_STATUS_IDLE;
-
TimerStop (&chain->timer);
-
chain->timer_is_running = false ;
-
}
-
break ;
-
}
-
case RESP_STATUS_DELAY:
-
{
-
if (chain->timer_is_running == false )
-
{
-
chain->timer_is_running = true ;
-
TimerSetValueStart (&chain->timer , cur_node->duration);
-
}
-
if ( TimerGetFlag (&chain->timer) == true )
-
{
-
chain->state = RESP_STATUS_OK;
-
chain->timer_is_running = false ;
-
}
-
break ;
-
}
-
case RESP_STATUS_BUSY:
-
{
-
/*waiting for ans or timeout*/
-
if (chain->timer_is_running == false )
-
{
-
chain->timer_is_running = true ;
-
TimerSetValueStart (&chain->timer , cur_node->timeout);
-
}
-
if ( TimerGetFlag (&chain->timer) == true )
-
{
-
chain->state = RESP_STATUS_TIMEOUT;
-
chain->timer_is_running = false ;
-
}
-
break ;
-
}
-
case RESP_STATUS_ANS:
-
{
-
/*already got the ans,put the param back to the request handle*/
-
TimerStop (&chain->timer);
-
chain->timer_is_running = false ;
-
if (cur_node->handle)
-
{
-
cur_node->param_type = RESP_PARAM_ANS;
-
chain->state = cur_node-> handle (( resp_chain_node_t *)cur_node , chain->param);
-
}
-
else
-
{
-
RESP_LOG ( "node handle is null ,goto next node" );
-
chain->state = RESP_STATUS_OK;
-
}
-
break ;
-
}
-
case RESP_STATUS_TIMEOUT:
-
{
-
if (cur_node->retry)
-
{
-
cur_node->retry--;
-
/*retry to request until cnt is 0*/
-
chain->state = RESP_STATUS_IDLE;
-
}
-
else
-
{
-
chain->state = RESP_STATUS_ERROR;
-
}
-
break ;
-
}
-
case RESP_STATUS_ERROR:
-
{
-
if (chain->resp_done)
-
{
-
chain-> resp_done (( void *)RESP_RESULT_ERROR);
-
}
-
chain->enable = 0 ;
-
chain->state = RESP_STATUS_IDLE;
-
TimerStop (&chain->timer);
-
chain->timer_is_running = false ;
-
cur_node->retry = cur_node->init_retry> 0 ?(cur_node->init_retry -1 ): 0 ;
-
chain_node_free_all (chain);
-
break ;
-
}
-
case RESP_STATUS_OK:
-
{
-
/*get the next node*/
-
cur_node->retry = cur_node->init_retry> 0 ?(cur_node->init_retry -1 ): 0 ;
-
chain_node_free (cur_node);
-
chain->node.next = chain->node.next->next;
-
chain->state = RESP_STATUS_IDLE;
-
break ;
-
}
-
default :
-
break ;
-
}
-
}
-
return chain->enable;
-
}
|
²âÊÔÓÃÀý
- ¶¨Òå²¢³õʼ»¯ÔðÈÎÁ´

- ¶¨ÒåÔËÐк¯Êý£¬ÔÚÖ÷Ñ»·Öе÷ÓÃ

- ²âÊÔ½ÚµãÌí¼Ó²¢Æô¶¯´¥·¢º¯Êý

- ·Ö±ðʵÏÖ½ÚµãÇëÇóº¯Êý

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