| 
 1.JB发送: TvManager.getInstance().setTvosCommonCommand("字符串");  2.SN接收: U16* MSrv_Control_common::SetTvosCommonCommand(c**t char* pCharCommand, int* u8length) 3.SN->JB: BOOL MSrv_Control_common::SetTvosInterfaceCMD(c**t char* pCharCommand)   果SUPERNOVA需要向UI请求显示一些信息,需要通过发消息的形式,举例说明: 
有信号到无信号时候,显示NOSIGNAL过程,如下: 
在函数Msrv_Control_TV:noSignalCheck_Handle中,检测到无信号的时候,会执行语句 
Postenvt(0,EV_SIGNAL_UNLOCK,0),此消息UI会接受到而显示出无信号的菜单,我们对此只需要结果,中间怎么发消息,UI层为什么能得到消息,我们不用关心。 
 
Supernova与UI层的连接我们只关心结果,如何实现的我们不用知道,既中间层,MSTAR也做了打包处理,这样我们就无法连接不在SERVER定义的函数,如果UI层需要调用中间层没有定义的函数,我们可以通过万能接口通过传递字符串的形式来实现,举例如下: 
 
UI层调用语句: 
try{ 
    sourcestatus = TvManager.setTvosCommonCommand("SetAutoSleepOffStatus");字符串可以任意填写 
}  
catch (TvCommonException e) { 
    e.printStackTrace(); 
} 
字符串可以任意填写,这样SUPERNOVA里面定义的函数 
MSrv_Control_DVB:setTvosCommonCommand就会响应,程序如下填写: 
MSrv_Control_common.cpp 
U16* MSrv_Control_common::SetTvosCommonCommand(c**t char* pCharCommand, int* u8length) 
#define TVOS_COMMON_CMD_SET_AUTOSLEEP0FF_STATUS  "SetAutoSleepOffStatus" 
Else if((pCharCommand) && (strncmp(pCharCommand, TVOS_COMMON_CMD_SET_AUTOSLEEP0FF_STATUS, strlen(pCharCommand)) == 0)) 
{  写入要执行SUPERNOVA里面的任意函数都可以调用了 
     } 
  注意字符串,两边要保持一致。  
 |