SuperIC社区_

标题: 【MStar Andriod方案】【智能接口】 [打印本页]

作者: jayden    时间: 2016-9-21 16:50
标题: 【MStar Andriod方案】【智能接口】
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里面的任意函数都可以调用了
     }
  注意字符串,两边要保持一致。


作者: Jack.Lin    时间: 2016-9-22 16:32
比JNI简单实用。
作者: Robby.zou    时间: 2016-9-28 11:10

作者: creass    时间: 2016-9-28 11:56
JB全称是啥?




欢迎光临 SuperIC社区_ (/) Powered by Discuz! X3.3