⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caproc.h

📁 有线电视系统前端设备复用器原代码。 用语接受卫星信号
💻 H
字号:
/*-------------------------------------------------------------------------------------*/
/*caproc.h                                                                             */
/*-------------------------------------------------------------------------------------*/
#include "ecm.h"
#include "emm.h"
#include "nib.h"
#include "structure.h"
#include "command.h"

#include <icontrol\mpc8xx.h>


#define PROTOCAL_TCP            0
#define PROTOCAL_UDP            1

#define LOGTYPE_NORMAL          0
#define LOGTYPE_ALARM           1
#define LOGTYPE_ERROR           2

#define MAX_STREAM_COUNT		32*8
#define MAX_AC_LENGTH			128
#define MAX_AC_NAME_LENGTH      32
#define MAX_AC_COUNT            32

#define CA_MAX_BUFFER_LENGTH	2048

#define  CA_HIGH_INDEX_BASE_ADDRESS		0x400
#define  CA_CW_INDEX_BASE_ADDRESS		0x600

#define  CA_S_BOX_BASE_ADDRESS			0x100
#define  CA_TIMER_INTERVAL_ADDRESS		0x000F
#define  CA_SIMUCRYPT_CONTROL_ADDRESS   0x000C
#define  CA_READ_CW_ADDRESS				0x000E

#define  CA_READ_CW_CONTROL_ADDRESS     0x0012

#define  CA_EVEN_ODD_CONTROL_ADDRESS	0x0013 /*0x000D*/

#define  CA_TEST_ADDRESS				0x0010
#define  CA_PACKT_CHAR_MODE_ADDRESS     0x0011 /* 0: char;1:packet */

#pragma	pack(1,1)

/*modify by fupoxing 20050718*/
typedef struct CA_AC_SUBDATA_CONFIG_ITEM_TAG
{
	unsigned short	ECM_PID;
	unsigned char	AC_Data_Length;
	unsigned char	AC_Data[MAX_AC_LENGTH];

	/* added 2004-02-10 */
	unsigned char   ECM_Private_Data_Length;
	unsigned char   ECM_Private_Data[256];
	/* added 2004-02-10 */
}CA_AC_SUBDATA_CONFIG_ITEM;

typedef struct CA_AC_DATA_CONFIG_ITEM_TAG
{
	unsigned char	AC_Index;	
	unsigned char	AC_Data_Name_Length;
	unsigned char	AC_Data_Name[MAX_AC_NAME_LENGTH];
	CA_AC_SUBDATA_CONFIG_ITEM 	SubDataConfig[3];
}CA_AC_DATA_CONFIG_ITEM;

typedef struct CA_STREAM_CONFIG_TAG
{
	unsigned short Stream_PID;
	unsigned char  CW_Index;/* ac data index */
}CA_STREAM_CONFIG;

typedef struct CA_PARA_CONFIG_TAG
{
	unsigned short		CA_system_id;
	unsigned short		CA_subsystem_id;

	unsigned long 		ECMG_Master_IP;
	unsigned short 		ECMG_Master_Port;
	unsigned long 		ECMG_Slave_IP;
	unsigned short 		ECMG_Slave_Port;

	unsigned short      ECM_channel_id;

	unsigned short      EMMG_Protocal;
	unsigned short		EMMG_Port;
	unsigned short      EMM_BandWidth;
	unsigned short      EMM_Pid;

	unsigned short		Network_Delay;	
	unsigned short      CP_Duration;

	unsigned long           EMM_client_id;
	/* added 2004-02-10 */
	unsigned char       EMM_Private_Data_Length;
	unsigned char       EMM_Private_Data[256];
	/* added 2004-02-10 */
}CA_PARA_CONFIG;

/*modify by fupoxing 20050718*/
typedef struct CA_CONFIG_TAG
{
	unsigned char                        ucCACount;
	CA_PARA_CONFIG				Para_Config[3];
	unsigned char				AC_Data_Count;
	CA_AC_DATA_CONFIG_ITEM		AC_Data_List[MAX_AC_COUNT];
	unsigned short				Stream_Count;
	CA_STREAM_CONFIG			Stream_Config[MAX_STREAM_COUNT];
	unsigned long               VerifyFlag;
}CA_CONFIG;

typedef struct CA_MESSAGE_HEAD_TAG
{
	unsigned char  protocol_version;
	unsigned short message_type;
	unsigned short message_length;
}CA_MESSAGE_HEAD;

typedef struct CA_MESSAGE_ITEM_HEAD_TAG
{
	unsigned short parameter_type;
	unsigned short parameter_length;
}CA_MESSAGE_ITEM_HEAD;

#pragma pack(0)


long dif_second(unsigned long date,unsigned long time,unsigned long olddate,unsigned long oldtime);
long dif_tick(unsigned long date,unsigned long time,unsigned long tick,unsigned long olddate,unsigned long oldtime,unsigned long oldtick);
unsigned char  ca_get_protocol_version(char *buf);
unsigned short ca_get_message_type(char *buf);
unsigned short ca_get_message_length(char *buf);
int ca_recv(int socket,char *buf,int len,long int timetowait);
int ca_send(int socket,char *buf,int len,int timetowait);

void caSendLog(unsigned char LogType, const char *fmt,...);

int  ProcCAConfig(Packet *ThePacket);
void tk_caStart(void);
void ca_Clear_simucrypt_map(void);		
void send_ecm(char *buf,int buflen,unsigned short pid,char datatype,unsigned char unCACount);
void send_emm(char *buf,int buflen,unsigned short pid,char datatype,unsigned char ucCACount);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -