http://www.ics.uci.edu/~fielding/pubs/dissertation/software_arch.htm
the architecture of a software system defines that system in terms of computational components and interactions among those components.
EPG-Electonic Programming Guaid 电子节目向导.
其实就是电视台将每个频道的节目信息和节目简介数据通过电视节目通道发送到各终端.
那么机顶盒的EPG模块做的就是这个工作,把数据进行过滤分析,最终存储为一个个的节目信息.又UI调用.
现在中国的SI标准中,将节目相关信息存放在EIT表中,也就是Event Information Table.
demux模块通过设置TABLE PID过滤到一个一个EIT表,发送给解析模块,解析模块又通过表的构造分析出一个一个的描述子,一般节目信息放在扩展信息描述子中和简约信息描述子中.
这些描述子中存储的是一个一个EVENT,它有自己的EVENT ID,有EVENT NAME,开始时间,结束时间,版本号等信息.存储模块在获得一个EVENT以按照网络 ID->TransportStreamID->ServiceID存储每个频道的EVENT,每添加一个EVENT会比对相同节目下 EVENT的ID和版本号,如果ID相同,版本号不同,则存储版本号较新的,丢弃老版本号的EVENT,并通知UI回调说是有更新了.
UI在调用EPG信息时,输入该节目的网络ID、TS ID、SERVICE ID,通过这3样查找已存储的EVENT信息,并将节目信息返回给UI显示.