📄 cbcfunction.h
字号:
//WriteReplace
extern int Process_Write_Replace_Request(unsigned char *MessageBuf,PID_t s_Pid);
extern int Process_Write_Replace_Error(PID_t s_Pid,int ErrorCode);
extern int Process_Scheduled_Write(PID_t s_Pid);
extern int Process_CBSE_KILL_MESSAGE(unsigned char *MessageBuf,PID_t s_Pid);
extern int Process_STATUS_CBCH_QUERY(unsigned char *MessageBuf,PID_t s_Pid);
extern int Process_STATUS_MESSAGE_QUERY(unsigned char *MessageBuf,PID_t s_Pid);
extern int Process_SET_DRX(unsigned char *MessageBuf,PID_t s_Pid);
/*---------------------------------------
//遍历系统所有小区
//in: CellId
//out: BSCIdentifer
//返回: 1:成功; <0没有该小区;0:小区不可用
//未写完
---------------------------------------*/
extern int Process_Search_BscId_AccordingTo_CellId(unsigned char *CellId,unsigned char *BSCIdentifer);
/* 决定小区的路由 */
extern int Process_Divide_CellList(CELLLIST_t *s_CellList,DIVIDE_CELLLIST_BUF_t *s_DivideCellListBuf,CELLID_t *s_CellId);
/*--------------------------------
//拆分小区列表
//匹配不上释放入失败列表
//out: s_DivideCellListBuf 拆分结果
//out: s_CellId失败时返回不识别的小区编码
//int: s_CellList
//返回: 1成功;
------------------------------*/
extern int Process_Divide_CellList_EX(CELLLIST_t *s_CellList,DIVIDE_CELLLIST_BUF_t *s_DivideCellListBuf);
/*
* 加一个小区到拆分小区列表缓冲区
* 1:返回成功
* <0 没有该BSC
*/
extern int Process_Add_CellId_To_DivideCellListBuf(unsigned char *CellId,unsigned char *BscId,DIVIDE_CELLLIST_BUF_t *s_DivideCellListBuf);
/* 分配消息序列号 */
extern void Alloc_SerialNumber(SERIALNUMBER_t *s_SerialNumber,MESSAGEIDENTIFIER_t *s_MessageIdentifier);
//修改小区状态
//in:CellStatus
// CELL_OK:可用
// CELL_ERROR:不可用
//in: CellId小区指针
extern void Process_Set_CellId_Status(unsigned char *CellId,int CellStatus);
//处理定时KillMessage
//extern int Process_Scheduled_KillMessage(PID_t s_Pid);
//该查询消息操作由写入一个消息触发
//处理定时查询
//extern int Process_Scheduled_StatusMessage_Query(PID_t s_Pid);
//处理重置请求
extern int Process_RESET(unsigned char *MessageBuf,PID_t s_Pid);
//---------------------------------------
//出错返回给CBC_proxy
//拒绝从CBC_proxy操作请求,返回拒绝原因
// 释放逻辑进程
//用于处理消息初始化错误
//如: 没有必备参数,错误的小区,
//---------------------------------------
extern void Process_CBE_Message_Error(PID_t s_Pid,int ErrorCode);
//---------------------------------------
//返回给CBC_proxy
//用于C区消息
//---------------------------------------
extern void Process_Manage_Message_Return(CBEMESSAGE_t *LpCBEMessage,int ErrorCode);
//处理从Bsc来的响应
extern int Process_Response(int Tid);
//处理从BSC来的失败指示
extern int Process_Failure_IND(int Tid);
//处理从BSC来的重启指示
extern int Process_BSC_Restart_IND(int Tid);
//处理从BSC来的信道查询响应
extern int Process_StatusCBCH_QUERY_RESP(int Tid);
//处理从BSC来的消息查询响应
extern int Process_StatusMessage_QUERY_RESP(int Tid);
//处理从BSC来的 设置不连续接收参数报告
extern int Process_SET_DRX_REPORT(int Tid);
//将列表转为标准格式
//in: s_CBEMessage Cbcproxy发送来的原始信息
//out: s_ProxyMessage
//返回:
// 1: 成功,
// -1:失败
extern int Convert_Write_Replace_Request(CBEMESSAGE_t *s_CBEMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为标准格式,用于KillMessage
extern int Convert_KillMessage(CBEMESSAGE_t *s_CBEMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为标准格式,用于StatusCBCHQuery
extern int Convert_StatusCBCHQuery(CBEMESSAGE_t *s_CBEMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为标准格式,用于StatusMessageQuery
extern int Convert_StatusMessageQuery(CBEMESSAGE_t *s_CBEMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为标准格式,用于Reset
extern int Convert_Reset(CBEMESSAGE_t *s_CBEMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为标准格式,用于SetDRX
extern int Convert_SETDRX(CBEMESSAGE_t *s_CBEMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为压缩格式,用于Response
//in: s_CBCMessage Cbcproxy发送来的原始信息
//out: s_ProxyMessage
//返回:
// 1: 成功,
// -1:失败
extern int Convert_Response(CBEMESSAGE_t *s_CBCMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为压缩格式,用于StatusMessageResponse
extern int Convert_StatusMessageResponse(CBEMESSAGE_t *s_CBCMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为压缩格式,用于StatusCBCHResponse
extern int Convert_StatusCBCHResponse(CBEMESSAGE_t *s_CBCMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为压缩格式,用于SET_DRX_REPORT
extern int Convert_SETDRX_Report(CBEMESSAGE_t *s_CBCMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为压缩格式,用于RESTART
extern int Convert_RESTART(CBEMESSAGE_t *s_CBCMessage,CBEMESSAGE_t *s_ProxyMessage);
//将列表转为压缩格式,用于FAILURE_IND
extern int Convert_FAILURE_IND(CBEMESSAGE_t *s_CBCMessage,CBEMESSAGE_t *s_ProxyMessage);
//内部定时重发
extern void Process_Scheduled_Resend(PID_t s_Pid,char *Lp_BSCID);
/*--------------------------------
//拆分小区列表到响应缓冲区
//out: LPs_ResponseCellList 拆分结果
//out: s_CellId 失败时返回不识别的小区编码
//in: s_CellList 小区列表
//in: NoOfBroadcastReq 请求广播的次数
//返回: <0失败,1成功;
//------------------------------*/
extern int Process_Divide_CellList_AccordingToResponse(CELLLIST_t *s_CellList,
unsigned short NoOfBroadcastReq,
CELLLIST_i *LPs_ResponseCellList,
CELLID_t *s_CellId);
/*--------------------------------
//拆分小区列表到响应缓冲区
有流量控制
//out: LPs_ResponseCellList 拆分结果
//out: s_CellId 失败时返回不识别的小区编码
//in: s_CellList 小区列表
//in: NoOfBroadcastReq 请求广播的次数
//返回: <0失败,1成功;
//------------------------------*/
extern int Process_Divide_CellList_AccordingToResponse_LC(CELLLIST_t *s_CellList,
unsigned short NoOfBroadcastReq,
CELLLIST_i *LPs_ResponseCellList,
CELLID_t *s_CellId,
unsigned char cCategory);
/* 从响应列表得到拆分列表 */
extern int Process_Get_DividedCellList_from_ResponseCellList(CELLLIST_i *LPs_ResponseCellList,
DIVIDE_CELLLIST_BUF_t *LPs_DivideCellListBuf);
/* 比较 LPs_ResponseCellList和LPs_DivideCellListBuf
将要发送的BSC在LPs_ResponseCellList中置上没有响应,
不发送的BSC在LPs_ResponseCellList置上已有响应
*/
extern void IfNeedResponse(CELLLIST_i *LPs_ResponseCellList,
DIVIDE_CELLLIST_BUF_t *LPs_DivideCellListBuf);
/* 是否可立即返回
返回:>0可,
<0不可
*/
extern int IfReturnImmediately(CELLLIST_i *LPs_CellList);
/*
写操作报告单条响应
s_Pid:进程ID
BSCPosi:单个BSC在报告列表中的偏移量
*/
extern void Process_WriteReturnSingleResponseToCBCProxy(PID_t *s_Pid,int BSCPosi);
/*
替换操作报告单条响应
s_Pid:进程ID
BSCPosi:单个BSC在报告列表中的偏移量
*/
extern void Process_ReplaceReturnSingleResponseToCBCProxy(PID_t *s_Pid,int BSCPosi);
/*
返回响应给CBCProxy
只报告响应
*/
extern void Process_WriteReplace_Return_To_CBCProxy(PID_t s_Pid);
/* 生命定时器到时,释放进程 */
extern int Process_lifeEnd(PID_t *LPs_Pid);
/* 处理WRITE回复定时器到时 */
extern int Process_Write_Response_timer_Expired(PID_t s_Pid);
/* 处理REPLACE回复定时器到时 */
extern int Process_Replace_Response_timer_Expired(PID_t s_Pid);
/* 加一个完成列表 */
extern void Process_Add_One_ComlList(NOOFBROADCASTSCOMLLIST_t *LPs_NoofBroadcastComlList,
NOOFBROADCASTSCOMLLIST_i *LPs_ComlListToCBCProxy,
char *LpBSCID,
char *LpLAC
);
/*
删除操作报告单条响应
s_Pid:进程ID
BSCPosi:单个BSC在报告列表中的偏移量
*/
extern void Process_KillReturnSingleResponseToCBCProxy(PID_t *s_Pid,int BSCPosi);
/*
返回响应给CBCProxy
只报告KillMessage的响应
*/
extern void Process_KillMessage_Return_To_CBCProxy(PID_t s_Pid);
/* 处理KillMessage回复定时器到时 */
extern int Process_Kill_Response_timer_Expired(PID_t s_Pid);
/* 只取失败小区
in: LPs_ReportCellList
out: LPs_FailureCellList
*/
extern void Abstract_Failure_Cell(CELLLIST_i *LPs_ReportCellList,CELLLIST_i *LPs_FailureCellList);
/* 处理StatusMessageQuery回复定时器到时 */
extern int Process_StatusMessageQuery_Response_timer_Expired(PID_t s_Pid);
/* 全部回复StatusCBCHQuery的响应 */
extern void Process_StatusCBCHQuery_Return_To_CBCProxy(PID_t s_Pid);
/*
处理SET_DRX回复定时器到时
返回响应列表
*/
extern void Process_SET_DRX_Response_timer_Expired(PID_t s_Pid);
/* 根据BSCIdentifier找到BSCCellInfo的下标 */
extern int FindOffsetAccordingBSC(unsigned char *LpBSC);
/*
根据一个小区的信道负荷状态和BSC,
修改系统中的小区负荷记录
*/
extern void Set_SysCell_Load_Record(CBCLOADINGSTATUS_t *LPs_CellLoadingStatus,unsigned char *LpBSCID);
/*
对系统所有可用小区进行负荷查询
对应的进程号,功能块号,模块号全为0
*/
extern void Process_Query_All_StatusCBCH();
/* 处理StatusCBCHQuery定时器到时 */
extern void Process_StatusCBCHQuery_Timer_Expired();
/* 处理SET_DRX_REPORT回复定时器到时 */
extern void Process_RESET_timer_Expired(PID_t s_Pid);
/*--------------------------------
//拆分小区列表到响应缓冲区
//out: LPs_ResponseCellList 拆分结果
//out: s_CellId 失败时返回不识别的小区编码
//in: s_CellList 小区列表
//in: NoOfBroadcastReq 请求广播的次数
//返回: <0失败,1成功;
//------------------------------*/
extern int Process_Divide_CellList_AccordingToResetResponse(CELLLIST_t *s_CellList,
unsigned short NoOfBroadcastReq,
CELLLIST_i *LPs_ResponseCellList,
CELLID_t *s_CellId);
/* 当X25链路建立时重启小区 */
extern void Reset_When_Connect(int Tid);
/* 发送Write消息给BSC前发Kill消息,保证序列号可用 */
extern int Process_Send_Kill_To_BSC_Before_Write(PID_t s_Pid, DIVIDE_CELLLIST_BUF_t *s_DivideCellListBuf);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -