📄 outlight.c
字号:
#include "global.h"
void SetOutCallLight(uchar cLIdx, uchar updown_flg, uchar bVal)
{
uchar m_cENum = m_pL_Data->cENum;
uchar i=0;
for(i=0; i<m_cENum; i++){
E_Deng *pDeng = &(m_pE_OutputData->mDeng[i]);
E_DianTi *pEleData = &(m_pE_InputData->mDianTi[i]);
if((updown_flg==D_Up)){ //上呼
if(bVal==1){
// if(GetArrayData(pEleData->bShangHuKeTing, cLIdx)==1) //只有楼层可停,才有可能点灯
SetArrayData(pDeng->bShang, cLIdx, bVal);
// else
// SetArrayData(pDeng->bShang, cLIdx, 0);
}else{ //确保没有点灯
// if(GetArrayData(pDeng->bShang, cLIdx) == 1)
SetArrayData(pDeng->bShang, cLIdx, bVal);
}
}
else{ //下呼
if(bVal==1){
// if(GetArrayData(pEleData->bXiaHuKeTing, cLIdx)==1) //只有楼层可停,才有可能点灯
SetArrayData(pDeng->bXia, cLIdx, bVal);
// else
// SetArrayData(pDeng->bXia, cLIdx, 0);
}else{ //确保没有点灯
// if(GetArrayData(pDeng->bXia, cLIdx) == 1)
SetArrayData(pDeng->bXia, cLIdx, bVal);
}
}
}
}
//说明:该函数实际上仅用于撤销外呼分配
void SetOutCallDistribution(uchar cLIdx, uchar updown_flg, uchar bVal)
{
uchar m_cENum = m_pL_Data->cENum;
uchar i=0;
E_XiangYing *pXiangYing = 0;
E_DianTi *pEleData = 0;
for(i=0; i<m_cENum; i++){
pXiangYing = &(m_pE_OutputData->mXiangYing[i]);
pEleData = &(m_pE_InputData->mDianTi[i]);
if((updown_flg==D_Up)){ //上呼
if(bVal==1){
if(GetArrayData(pEleData->bShangHuKeTing, cLIdx)==1) //该分支永远都不会执行到
SetArrayData(pXiangYing->bShang, cLIdx, bVal);
}
else{ //确保没有点灯
if(GetArrayData(pXiangYing->bShang, cLIdx) == 1)
SetArrayData(pXiangYing->bShang, cLIdx, bVal);
}
}
else{ //下呼
if(bVal==1){
if(GetArrayData(pEleData->bXiaHuKeTing, cLIdx)==1) //该分支永远都不会执行到
SetArrayData(pXiangYing->bXia, cLIdx, bVal);
}
else{ //确保没有点灯
if(GetArrayData(pXiangYing->bXia, cLIdx) == 1)
SetArrayData(pXiangYing->bXia, cLIdx, bVal);
}
}
}
}
//若有一部电梯恰好到达外呼层,顺向,零速信号为1或运行停止信号为0,则撤销外呼点灯
uchar IsWithdrawOutLight(uchar cLIdx, uchar updown_flg)
{
uchar m_cENum = m_pL_Data->cENum;
uchar i=0;
uchar cCurFloorIdx=0;
E_XiangYing *pXiangYing = 0;
E_DianTi *pEleData = 0;
for(i=0; i<m_cENum; i++){
pXiangYing = &(m_pE_OutputData->mXiangYing[i]);
pEleData = &(m_pE_InputData->mDianTi[i]);
cCurFloorIdx = pEleData->cDangQianCeng-1;
if(e_online[i]==1){
if(updown_flg==1){
if(cCurFloorIdx==cLIdx)
if((pEleData->FangXiang.bShang==1)&&(pEleData->FangXiang.bXia==0))
if((pEleData->bLingSuXinHao==1)||(pEleData->bDongOrJing==0)){
return 1;
}
}else{
if(cCurFloorIdx==cLIdx)
if((pEleData->FangXiang.bShang==0)&&(pEleData->FangXiang.bXia==1))
if((pEleData->bLingSuXinHao==1)||(pEleData->bDongOrJing==0)){
return 1;
}
}
}
}
return 0;
}
//2004.11.25 added by LHM循环设置点灯数据(对应三状态切换为正常时的点灯处理)
void LoopSetCallLightData(uchar cCalUpLIdx, uchar cCalDownLIdx)
{
uchar m_cENum = m_pL_Data->cENum;
uchar i=0;
uchar j=0;
uchar cVal=0;
uchar cUpExistFlg=0;
uchar cDownExistFlg=0;
for(i=0; i<m_cENum; i++){
//上呼点灯(若有一个外呼点灯亮,则所有正常梯子外呼灯应全亮)
if(GetArrayData(mE_OutputData.mDeng[i].bShang, cCalUpLIdx) == 1){
cUpExistFlg=1;
}
//下呼点灯(若有一个外呼点灯亮,则所有正常梯子外呼灯应全亮)
if(GetArrayData(mE_OutputData.mDeng[i].bXia, cCalDownLIdx) == 1){
cDownExistFlg=1;
}
}
for(i=0; i<m_cENum; i++){
if( (mE_InputData.mDianTi[i].TeBie.bJianXiu==0)&&
(mE_InputData.mDianTi[i].TeBie.bSuoTi==0)&&
(mE_InputData.mDianTi[i].TeBie.bXiaoFang==0)){
if(cUpExistFlg==1){
SetArrayData(mE_OutputData.mDeng[i].bShang, cCalUpLIdx, 1);
}
if(cDownExistFlg==1){
SetArrayData(mE_OutputData.mDeng[i].bXia, cCalDownLIdx, 1);
}
}else{
SetArrayData(mE_OutputData.mDeng[i].bShang, cCalUpLIdx, 0);
SetArrayData(mE_OutputData.mDeng[i].bXia, cCalDownLIdx, 0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -