示例#1
0
文件: reg.c 项目: silview/C100A
void BackupAllNode( void *p )
{
	uint32 i = 0;
	
   	while(1)
    {
	    g_delay(BACKUP_ALL_NODE_DELAY_TIME);
	    
	    i++;
//    	__msg("\n\n\n\nThread BackupAllNode has been executed %d times.\n", i);
    	
		__backup_all_reg_file( );
		
    	if(esKRNL_TDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ)
    	{
	    	__inf("Thread BackupAllNode has been deleted.\n");
    		esKRNL_TDel(OS_PRIO_SELF);
    	}
	}
}
示例#2
0
void _sys_exit(int return_code)
{
	esKRNL_TDel(OS_PRIO_SELF);			// 自杀
}
示例#3
0
void GUI_LongString_Task(void *arg)
{	
    __u32                   i;
    __bool                  move_flags = ORANGE_FALSE;
	
	while(1)
    {
       	if(esKRNL_TDelReq(EXEC_prioself) == OS_TASK_DEL_REQ)
       	{
   			break;
       	}
		orange_Dalay(40);	

        LONGSTR_LOCK();
        for(i = 0;i < MAX_NR_SHOW;i++)
        {
            if(gshow_info[i])
            {
                if(gshow_info[i]->status == LONGSTRING_MOVE)
                {
                    move_flags = ORANGE_TRUE;
                    break;
                }
            }
        }
        LONGSTR_UNLOCK();

        if(i == MAX_NR_SHOW)
        {
            move_flags = ORANGE_FALSE;
        }
        
        if(move_flags == ORANGE_FALSE)
        {
            /*need not move*/
            sem_wait (&run_sem);
        }  
	
		if (GUI_LockAccept() == EPDK_OK)
		{	
            LONGSTR_LOCK();
            
            for(i = 0;i < MAX_NR_SHOW;i++)
            {
                if(gshow_info[i] && gshow_info[i]->status == LONGSTRING_MOVE)
                {
			        GUI_LongStringMove(gshow_info[i]);

                    orange_Dalay(10);
                }
            }

            LONGSTR_UNLOCK();
			
			GUI_Unlock();
		}
	}	
    
	esKRNL_TDel(EXEC_prioself);
    
	return;
}   
示例#4
0
文件: msg_emit.c 项目: silview/C100A
/** 
 * 从系统消息队列取消息
 */
static void ksrv_msg_thread(void *arg)
{
	__memit_ctr_t *emit = (__memit_ctr_t *)arg;
	__u8  error;
	
	/* 清空按键消息队列 */
	while(1)
	{
		__u32           usrmsg;		
		
		//usrmsg = esKSRV_GetLowMsg();
		usrmsg = esKSRV_GetMsg();
		if( usrmsg == 0 )
			break;
	}	
	
	while(1)
    {
        __u32           usrmsg;        
        __msrv_msg_t	*pmsg;   
        __u32 			tmp;     
  		 		  		
        while(1)
        {  	
           	if( esKRNL_TDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ )
			{
				esKRNL_TDel(OS_PRIO_SELF);			
			}
           	
           	usrmsg = esKSRV_GetMsg();				// 系统消息队列
           	if(usrmsg)
            	break;
           	esKRNL_TimeDly(2);
        }
                
		esKRNL_SemPend(emit->p_array_sem, 0, &error);
		pmsg = get_msg_buf(emit);
		//eLIBs_memset(pmsg, 0, sizeof(__msrv_msg_t));
		esKRNL_SemPost(emit->p_array_sem);
		
		if( (usrmsg & 0xffff0000) == KMSG_USR_CLS_KEY) 	// key 按键消息
		{
			tmp = usrmsg & 0x0000ffff;
			__msg(" usrmsg = %d \n", tmp);
			switch (usrmsg) 
			{
					    
			#if( EPDK_CASE == EPDK_LIVE_BOX )
				case KMSG_USR_KEY_POWER:				/* standby	*/	
					 pmsg->type = DSK_MSG_STANDBY;
					 break;			
					 					                 	
	            case KMSG_USR_KEY_REPEATE:				/* 切换到色差输出 */
	            	pmsg->type = DSK_MSG_SWITCH_YPBPR;	            	
	            	break;            
	            
				case KMSG_USR_KEY_CLEAR:				/* 切换到cvbs输出 */
					pmsg->type = DSK_MSG_SWITCH_CVBS;
					break;					
					
				case KMSG_USR_KEY_DISPLAY:				/* 切换到hdmi输出 */
					pmsg->type = DSK_MSG_SWITCH_HDMI;
					break;
				
				case KMSG_USR_KEY_SHIFT:
					 pmsg->type = GUI_MSG_KEY;
					 pmsg->id	= GUI_MSG_KEY_SHIFT;					
					break;
				
				case KMSG_USR_KEY_SEL:	
					 pmsg->type = GUI_MSG_KEY;
					 pmsg->id	= GUI_MSG_KEY_SEL;		
					break;			
				
				case KMSG_USR_KEY_NUM4:
					pmsg->type = DSK_MSG_SWITCH_AUDIO_IF;
					pmsg->data = AUDIO_DEV_IF_CODEC;		
					break;
					 
				case KMSG_USR_KEY_NUM5:
					pmsg->type = DSK_MSG_SWITCH_AUDIO_IF;
					pmsg->data = AUDIO_DEV_IF_IIS;		
					break;
					 
				case KMSG_USR_KEY_NUM6:
					pmsg->type = DSK_MSG_SWITCH_AUDIO_IF;
					pmsg->data = AUDIO_DEV_IF_SPDIF;		
					break;					
					 
			#endif	
							
			#if( EPDK_CASE == EPDK_LIVE_TOUCH )
				case KMSG_USR_KEY_NUM8:					/* hold 按键 */
					 pmsg->type = DSK_MSG_HOLD;	    
	                 break; 
	            
	            case KMSG_USR_KEY_NUM7:								// 禁音功能
					pmsg->type = DSK_MSG_BAN_VOLUME;
					pmsg->data = 0;
					break;
	            
	        #endif 
	            	            
				case KMSG_USR_KEY_GOTO:
					pmsg->type = DSK_MSG_APP_EXIT;		/* 一键回主界面 */
					break;
			 
	            case KMSG_USR_KEY_POWEROFF:				// 关机消息			                 
	                 pmsg->type = DSK_MSG_POWER_OFF;
				     break;
				     	
				case KMSG_USR_KEY_NUM9:
					 pmsg->type = GUI_MSG_KEY;
					 pmsg->id	= GUI_MSG_KEY_ESCAPE;	
					 break;
				
			    case KMSG_USR_KEY_VOICE_UP:
					 pmsg->type = GUI_MSG_KEY;
					 pmsg->id	= GUI_MSG_KEY_VADD;				
				     break;
				     
			    case KMSG_USR_KEY_VOICE_DOWN:
					 pmsg->type    = GUI_MSG_KEY;
					 pmsg->id	   = GUI_MSG_KEY_VDEC;
	        	     break;
					
	            case KMSG_USR_KEY_UP:
					 pmsg->type    = GUI_MSG_KEY;
					 pmsg->id	   = GUI_MSG_KEY_UP;
	                 break;
					 
	        	case KMSG_USR_KEY_DOWN  :
					 pmsg->type    = GUI_MSG_KEY;
					 pmsg->id	   = GUI_MSG_KEY_DOWN;
	                 break;
	                 
	            case KMSG_USR_KEY_LEFT  : 
					 pmsg->type    	= GUI_MSG_KEY;
	                 pmsg->id	    = GUI_MSG_KEY_LEFT;
	                 break;
					 
	            case KMSG_USR_KEY_RIGHT :
					 pmsg->type    	= GUI_MSG_KEY;
					 pmsg->id	    = GUI_MSG_KEY_RIGHT;
					 break;
	            
			case KMSG_USR_KEY_ENTER:
					 pmsg->type    	= GUI_MSG_KEY;
	                 pmsg->id	    = GUI_MSG_KEY_ENTER;
	                break;                               		
	
			    case KMSG_USR_KEY_RISE:
					pmsg->type    	= GUI_MSG_KEY;
				    pmsg->id	    = GUI_MSG_KEY_RISE;
				    break;
				
				default:
		        	continue;
			}
		}
		else	/* system 消息 */
		{
	#if 	0
			if( (usrmsg & 0x0000ffff) == KMSG_USR_SYSTEM_KNOB_KEY )//add by libaiao,2011.11.21
				   {
					__u32  ret;
					  // pmsg->type    	= GUI_MSG_KEY;
					   pmsg->type = DSK_MSG_KNOB_KEY;			   
						ret = (usrmsg & KMSG_USR_SYSTEM_FS_PARA_MASK)>>16;
					   //  pmsg->data = (usrmsg & KMSG_USR_SYSTEM_FS_PARA_MASK)>>16;					   
					   if(ret)				 
					   {
						 pmsg->data =GUI_MSG_KEY_LONGVADD;
						   // pmsg->id = GUI_MSG_KEY_VADD;
						//   eLIBs_printf(" pmsg->data = GUI_MSG_KEY_LONGVADD \n");    

					   }
					   else
					   {
						//   eLIBs_printf(" pmsg->data = GUI_MSG_KEY_LONGVDEC \n");
							pmsg->data =GUI_MSG_KEY_LONGVDEC;
						   // pmsg->id = GUI_MSG_KEY_VDEC;
					   }
                                    // continue;
			     } else
	#endif
			if( (usrmsg & 0x0000ffff) == KMSG_USR_SYSTEM_FS_PLUGIN )
			{
				pmsg->type = DSK_MSG_FS_PART_PLUGIN;
				pmsg->data = (usrmsg & KMSG_USR_SYSTEM_FS_PARA_MASK)>>16;				
			}