📄 define.h
字号:
#ifndef _define_h_
#define _define_h_
/*****************************
当前编译程序定义
*****************************/
#define debug 1
#define w78e58b 0 //1系统可以ISP功能
#define Test 0 //1系统需要对8816测试计数
#define ExtSameTrk 1 //使用用户替代中继,实现供电群呼
/*************************
当前程序功能定义
*************************/
#define Module_Trk 0 //system have analog trk ext function
#define Module_Trans 1 //system have call transfer function
#define Module_Hot 1 //system have call hot function
#define Module_Troop 1 //system have the troop function
#define Module_Meet 1 //system have the meet function
#define Module_Host 0 //system have attemper and host function
#define Module_Class 0 //system have part ext class function
#define Module_Add 1 //system have addtion function
#define Module_Cid 0 //system have cid function
#define Module_Pulse 0 //system have rec pulse dail function
#define Module_BusyRecall 0 //system have rec pulse dail function
#define Counter_Trans 1 //转移最大次数
/*************************
外部端口操作地址
**************************/
#define Addr_8816_Data 0XA000 //8816写数据地址
#define Addr_DTMF_State 0XA800 //读收号器解码状态数据地址
#define Addr_DTMF_Data 0XB000 //读收号器解码数据首地址
#define Addr_EXT_State 0X8000 //读用户状态首地址
#define Addr_EXT_Drive 0X8000 //写用户动作首地址
#define Addr_Offset 0X0800 //用户状态、用户动作地址偏移量
/************************
Flash Ram 操作地址
**********************/
#define W29c040p1 0x5555 //写040操作1地址
#define W29c040p2 0x2aaa //写040操作2地址
#define R29c040p1 0x0000 //读040操作1地址
#define R29c040p2 0x0001 //读040操作2地址
#define R29c040p3 0x0002 //读040操作3地址
#define R29c040p4 0x7fff2 //读040操作4地址
/**************************
flash ram 操作模式分析
**************************/
#define Enable_Protect 0 //写FLASH保护
#define Disable_Protect 1 //去除FLASH保护
#define Erase_Flash 2 //檫除FLASH数据
#define Load_FlashID 3 //读FLASH芯片ID
#define Boot_First16K 4 //使用FLASH前16K启动
#define Boot_Last16K 5 //使用FLASH后16K启动
/************************
uart 通信模式分析
***********************/
#define CommHead 0xcc
#define RepSystem 0x01
#define RepExtParma 0x02
#define RepMeet 0x03
#define RepTrk 0x04
#define RepTempMeet 0x05
#define RepTempExt 0x06
#define RepCable 0x07
#define RepKeyset 0x08
#define RepRespond 0x0b
#define RepCallHost 0x0c
#define RepCID 0x0d
#define RepState 0x0e//返回用户的基本状态和事件
#define RepWorking 0x0f//返回系统工作情况
#define RepAllExtSta 0x10//返回所有用户状态情况
#define RepTroop 0x11//返回群呼事件状态
#define RepSystemType 0x12//返回系统使用的类型
#define RepSetHead1 0x31//返回系统设置的用户字头
#define RepSetHead2 0x32//返回系统设置的会议字头
#define RepSetHead3 0x33//返回系统设置的群呼字头
#define SingnedHead 0xce//特别信息发送
#define CheckSystem 0xf1
#define CheckExtParma 0xf2
#define CheckMeet 0xf3
#define CheckTrk 0xf4
#define CheckTempMeet 0xf5
#define CheckTempExt 0xf6
#define CheckCable 0xf7
#define CheckKeyset 0xf8
#define KeyCommand 0xff
#define SetSystem 0xe1
#define SetExtParma 0xe2
#define SetMeet 0xe3
#define SetTrk 0xe4
#define SetKeyset 0xe8
/**********************************
用户的状态机分析
**********************************/
#define state0_Free 0
#define state1_DailNo 1
#define state2_RecOneDtmf 2
#define state3_RecTwoDtmf 3
#define state4_DailOk 4
#define state5_TalkTo 5
#define state6_Ring 6
#define state7_TalkFrom 7
#define state8_MeetTalk 8
#define state9_CommandExt 9
#define state10_TroopRing 10
#define state11_ 11
#define state12_ 12
#define state13_ 13
#define state14_ 14
#define state15_ 15
#define state16_ 16
#define state17_ 17
#define state18_ 18
#define state19_ 19
/*****
调度权利 12
(调度采用会议模式,只要调度就开始会议
无论谁退出都采用退出会议的方式退出)
******/
/**********************************
用户信号音的状态机分析
**********************************/
#define state20_DailOver 20
#define state21_ResRingOver 21
#define state22_OppHookOff 22
#define state23_CallFreeNo 23
#define state24_NoRightCall 24
#define state25_OppBusy 25
#define state26_CableBusy 26
#define state27_TrkBusy 27
#define state28_ 28
#define state29_ 29
/**********************************
用户测试的状态机分析
**********************************/
#define state30_ 30
#define state31_TestDailSingal 31
#define state32_TestBusySingal 32
#define state33_TestFreeSingal 33
#define state34_TestHarrySingal 34//用户催挂音
#define state35_TestRing 35
#define state36_TestResSingal 36
#define state37_ 37
#define state38_ 38
#define state39_ 39
/**********************************
用户事件触发原因分析
**********************************/
#define event1_ExtHookOn 1
#define event2_ExtHookOff 2
#define event3_ExtRecDtmf 3
#define event4_ExtRing 4
#define event5_ExtReleaseRing 5
#define event6_SExtHookOn 6
#define event7_SExtHookOff 7
#define event8_DailOver 8
#define event9_ExtCallWaitOver 9
#define event10_NoRightCall 10
#define event11_CallFreeNo 11
#define event12_CableBusy 12
#define event13_SExtBusy 13
#define event14_HostCallingExt 14
#define event15_HostCalledExt 15
#define event16_TroopRing 16
#define event17_ExtFlash 17
#define event18_MangerRelease 18
#define event19_ 19
/***********************************
定义振铃和打开的数据
***********************************/
#define RING 0x01
#define OPEN RING
/************************************
定义忙音通道在15号绳路
系统所有话路绳路..由于硬件原因450HZ信号分3路进入
才不引起阻抗降低
************************************/
#define BUSY_Channel 15
#define BUSY2_Channel 14
#define BUSY3_Channel 13
#define TAL_CABLE 13
/************************************
定义用户容量
************************************/
#define MAX_Ext 24
/************************************
定义用户键盘容量
************************************/
#define TAL_KEY 80
/************************************
定义用户特殊功能长度数据参数
功能参数的拨号模式和号码编号
0 系统测试功能字头(*03x)
1 系统参数修改字头(*1xx)
2 系统定时开关参数字头(*2xx)
3 系统计费字头(*3xx)
4 分机免打扰字头(*400)
************************************/
#define Fun_Head 0x0b //定义*号键
#define Fun_Len 4 //定义功能号长为3
#define Password_Len 5 //定义密码长度
#define Fun_End 0x0c //定义#号键
/*************************************
定义扫描状态
**************************************/
#define EXT_SCAN_ON 0x80 //用户当前可以扫描
#define EXT_SCAN_OFF 0x00 //用户当前不可以扫描
#define EXT_SCAN_PRI 0x09 //用户扫描精度
#define EXT_SCAN_LEN EXT_SCAN_ON+EXT_SCAN_PRI//34*9=306ms
//用户扫描判断长度
#define Flash_Scan_Start 0x02 //挂叉,闪断的起始判断34ms*2=68ms
#define Flash_Scan_End 0x17 //挂叉,闪断的终止判断34ms*24=800ms
#define MT8870_EnOut 0x08 //前次8870通道有解码输出
#define MT8870_NoOut 0x01 //前次8870通道无解码输出
#define MT8870_EnRec 0x10 //当前8870通道可以解码
#define MT8870_NoRec 0x00 //当前8870通道不可以解码
/*************************************
定义信号音构成时间
**************************************/
#define busysignal 10 //10*34ms = 340ms
#define dailsignal 441 //441*34ms = 18000ms
#define hooksignal 7 //7*34ms = 238ms
#define ressignal 1230 //1230*34ms = 42000ms
#define openoffset 30 //30*34ms = 1000ms
#define closeoffset 150 //132*34ms =
/**************************
定义宏功能模块
**************************/
#define LOAD_TIMER0(TH,TL)\
{\
TH0 = (TH);\
TL0 = (TL);\
}
#define LOAD_TIMER1(NOWBPS)\
{\
TH1 = (NOWBPS);\
TL1 = (NOWBPS);\
}
#define MICRO_SendToBuf(Buf, Data, WP, Tal, BufSize) \
{\
(Buf) = (Data) ; \
(Tal)++ ; \
(WP)++ ; \
if( (WP) == (BufSize) ) \
(WP) = 0 ; \
}
#define MICRO_GetFromBuf(Buf, cData, RP, Tal, BufSize) \
{ \
(cData) = (Buf) ; \
(Tal)-- ; \
(RP)++ ; \
if( (RP) == (BufSize) ) \
(RP) = 0 ; \
}
/*****************************
定义用户参数结构体
******************************/
typedef struct {
unchar Num_H_Logic; //B0用户的高位逻辑号码
unchar Num_L_Logic; //B1用户的低位逻辑号码
unchar Num_Hot_Call; //B2热线用户呼叫号码
unchar Num_Trans_Call; //B3转移用户呼叫号码
unchar Num_Busy_Recall; //B4遇忙回叫号码
unchar Num_Group_Call; //B5组呼叫号码(每位表示一组会议,最高位
//为组呼权利表示位)
unchar Trk_Group_Right; //B6用户的中继组权参数
unchar Trk_Group_Num; //B7中继组号参数
unchar Trk_Group_Param; //B8中继配置参数
/* 7 6 5 4 3 2 1 0
** open/close 10 出开11双向开
** 1 1 1 1 1 1/0 01入开00不定义
**/
unchar Bit_Param; //B9用户位参数
/* 7 6 5 4 3 2 1 0
**Trk/Ext Class HotCall TransCall BusyReCall GroupCall Host_EXT Busy/Free
** 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0
**/
unchar Num_ExtKey; //用户对应的键盘号
unchar Num_Call_Other; //A0用户呼叫其他用户的物理号
unchar Num_Call_Me; //A1其他用户呼叫我的号码
unchar Num_Switch_Cable; //A2呼叫连接的绳路
unchar Num_MeetGroup; //A3呼叫的会议组号码
unchar RecDTMF_Data; //A4用户接收的的双音频数据
unchar RecDTMF_En; //A5用户接收双音频使能判断
unchar Ext_EVENT; //A6用户当前的事件存储
unchar Ext_State; //A7用户当前的状态
unchar Ext_RecDtmf_List[12]; //A8用户双音频接收区
unchar Flag_Signal; //AA当前用户的信号音接续状态
//高4位为信号音的类型标志
//低4位为信号音的反转标志
unchar Num_Troop_Call; //分机自己群呼组号
unchar Temp_Troop_Call; //分机自己临时群呼组号
} PhysicalParam;
typedef struct {
unchar Counter_HK; //AB用户摘挂机识别计数
unint Counter_Signal; //AC用户信号音计数
unchar Counter_Pause; //AD用户脉冲收号计数器
unchar Counter_Rec_DTMF; //AE用户双音频收号计数器
} CounterParam;
typedef struct {
unchar MeetLen; //用户会议组字头长度
unchar MeetHead; //用户会议组的头号码1
unchar Num_Member; //用户会议组现有的成员数
unchar Meetstate; //当前会议的使用状态
unchar Meet_Member[MAX_Ext]; //用户会议组成员列表,最大为32
} MeetParam; //C0~Ca用户会议组最大为7
typedef struct {
unchar TrkLen; //用户中继组字头长度
unchar TrkHead; //用户中继组的头号码
unchar Num_Member; //用户中继组现有的成员数
unchar Num_Use; //用户中继组已被占用的成员数
unchar No_Use_Now; //用户中继组当前使用的中继序号
unchar Trk_Member[MAX_Ext]; //用户中继组成员列表,最大为32
//数据高4位表示使用0XF0,低4位为用户号
} TrkParam; //D0~DA用户中继组最大为7,
typedef struct {
unchar SCN; //当前读取用户摘挂状态数据
unchar LL; //前次用户摘挂数据
unchar AP; //当前用户脉冲间隔数据
unchar LAP; //前次用户脉冲间隔数据
unchar DTMF_ST; //当前双音频解码状态
unchar DTMF_Data[4]; //当前双音频解码数据
unchar Ext_Ring_ST; //当前用户振铃数据
} GroupParam; //E0~E3当前用户组的参数
typedef struct{
unchar MeetGroup; //用户会议组对应的固定会议组号,大于15表示是调度
unchar Manager_Ext; //临时会议组主席
unchar Num_Member; //临时会议组成员数
unchar Meetstate; //当前会议的使用状态
unchar Meet_Member[MAX_Ext];//临时会议组成员最大数
}TempMeetGroup; //F0~FF当前临时会议组
typedef struct{
unchar KeyType; //该键类型,0表示内线,1表示外线,ff表示不使用
unchar Logic_Num[12]; //键对应的逻辑号码
}STKeyParam;
typedef struct{
unchar TroopLen; //群呼组号码长度
unchar TroopHead; //群呼组号码头
unchar Num_Member; //群呼组成员数
unchar TroopType; //是采用群呼还是轮巡(0为群呼,其他是轮巡)
unchar Troopstate; //当前群呼组的使用状态(0~32,0表示为使用,其他表示正在使用的人)
//同一群呼号码可以被32个用户呼叫
unchar Troop_Member[MAX_Ext];//群呼组成员最大数32
}TroopGroup;
/***************************
定义变量设置基本长度
****************************/
#define BufSize 255
#define AlignSize 1000
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -