create table ee(
info float,
F2 nvarchar(10),
mc1 nvarchar(255),
dm1 float,
dm2 float,
cke float,
mc3 nvarchar(255),
zt varchar(1)
)
insert eeselect *,case when mc3=mc1 then '1' else '0' end as zt
from(
select a.*,b.dm3,c.mc3
from cc a
full join c3 b on a.dm1=b.dm3
full join c3 c on ltrim(a.dm2)=c.dm3)d
info float,
F2 nvarchar(10),
mc1 nvarchar(255),
dm1 float,
dm2 float,
cke float,
mc3 nvarchar(255),
zt varchar(1)
)
insert eeselect *,case when mc3=mc1 then '1' else '0' end as zt
from(
select a.*,b.dm3,c.mc3
from cc a
full join c3 b on a.dm1=b.dm3
full join c3 c on ltrim(a.dm2)=c.dm3)d
select info,F2,mc1,dm1,dm2,cke,mc3,case when mc3=mc1 then '1' else '0' end as zt
from(
select a.*,b.dm3,c.mc3
from cc a
full join c3 b on a.dm1=b.dm3
full join c3 c on ltrim(a.dm2)=c.dm3)d
和插入的对应的这两列的类型是否一直
pucBuf = CCU_NULL_PTR;CCU_FClose(fp);return CCU_ERR;}
*ppucBuf = pucBuf;*pulLen = (UINT32)iLen;if (0 != CCU_FClose(fp))
{DBG_DOWNLOAD;CCU_MemFree(CCU_MEM_INFO, pucBuf);pucBuf = CCU_NULL_PTR;
return CCU_ERR;}return CCU_OK; }
开始加载转发
UINT32 RS485LoadStartCmdSend(UINT16 uwIndex, UCHAR ucChanIndex, PRS485_BOARD_T pstNode)
UINT32 ulRet = CCU_NULL_LONG;CHECK;
/* 转发启动加载命令 */ulRet = CCU485LoadStartCmdSend(uwIndex,ucChanIndex,pstNode);
if (CCU_OK != ulRet){CCU485ClearLoadData(ucChanIndex,uwIndex);y7; ConvRetToRet(ulRet);
DBG_DOWNLOAD;return ulRet;}y3.ucWaitTime = LOAD_WAIT_TIME;y3.ucRepeatTime = 0;return CCU_OK;
加载数据转发
UINT32 RS485LoadSegmentSend(UINT16 uwIndex, UCHAR ucChanIndex, PRS485_BOARD_T pstNode)
UINT32 ulRet = CCU_NULL_LONG;UINT32 ulCurBlk = 0;UINT32 ulTotalBlk = 0;
UCHAR i = 0; key_t key = QUE_IPC_START_POS_PNP + QUE_INDEX_API_MSG_CHAN0 + ucChanIndex;
struct msqid_ds buf;int msgid = -1;UINT32 msg_num = 0;
UINT32 ulDelayMs = 100; //默认以100ms为加载10帧的延时CHECK;
ulCurBlk = y3.ulCurBlk;ulTotalBlk = y3.ulTotalBlk;msgid = msgget(key, IPC_CREAT);
/* 对应的API队列存在,则根据下行消息的多少调整加载时间 */
if (msgid > 0){if( 0 == msgctl(msgid, IPC_STAT, &buf)){ msg_num = buf.msg_qnum;
if ( msg_num < 5){ulDelayMs = DOWNLOAD_DELAY_10MS;}else if (msg_num < 10)
{ ulDelayMs = DOWNLOAD_DELAY_50MS;}else if (msg_num < 20){ulDelayMs = DOWNLOAD_DELAY_100MS;}
else{ulDelayMs = DOWNLOAD_DELAY_200MS; }}}
/* 一次下发10帧的数据 */
for ( i = 0 ; (i < WINDOW_WIDTH) && (i < (ulTotalBlk - ulCurBlk)); i++)
{ulRet = CCU485LoadSegmentSend(uwIndex,ucChanIndex,pstNode);if ( CCU_OK != ulRet )
{CCU485ClearLoadData(ucChanIndex,uwIndex);y7;ConvRetToRet(ulRet);DBG_DOWNLOAD;return ulRet;}
else{ DBG_DOWNLOAD;}ADA_Sleep(ulDelayMs);}y3.ucWaitTime = LOAD_WAIT_TIME;
y3.ucRepeatTime = LOAD_RESEND_TIME;return CCU_OK;
"CCU_485Alarm.h""CCU_ManInterface.h""CCU_Trap.h""CCU_Log.h""CCU_File.h"
"CCU_485Init.h""CCU_AlarmCard.h""CCU_CpldLoad.h"
/*----------------------------------------------*
* 外部函数原型说明 *
*----------------------------------------------*/
/* 配置模块函数声明 */
extern UINT32 GDC_GetHeadInfo(UINT8 ucSlotId, PGDC_CARD_INFO *pstHeadInfo);
extern UINT32 GDC_GetSensorInfo(UINT8 ucSlotId, UINT8 ucSensorNum, GDC_CARD_SENSOR *pstSdrInfo);
extern UINT32 CFG_DeleteGDCNode(UINT8 ucSlotId, UINT8 *pucBarCode);
extern UINT32 CFG_GetGdcNodeInfo(UINT8 ucSlotId, PGDC_CARD_INFO *ppstNode);
/*----------------------------------------------*
* 全局变量 *
*----------------------------------------------*/
/* 子卡数据中心 */
INSIDE_CARD_INFO g_stInsideBoardInfo;
/* 打桩测试数据 */
UINT8 g_uwAlarmBuf[5] = {0x76,0xa6,0xa6,0xa6,0xa6};
/* 子卡管理模块是否初始化标志 */UINT32 g_ulIsGdcHasInit = CCU_FALSE;
/* 子卡管理中心数据结构互斥信号量 */INT32 g_iInsideBoardInfoMutex;
/* 打印控制标志 */UINT32 ulSensorTempPrint = CCU_FALSE;
UINT32 ulSensorTempSelect = CCU_FALSE;UINT32 ulSetDAValue = CCU_FALSE;
UINT32 ulPrintVolFlag = CCU_FALSE;UINT32 ulGdcAlarmPrint = CCU_FALSE;
/*----------------------------------------------*
* 常量定义 *
*----------------------------------------------*/
const FLOAT HighFloatMark = 0.001;const FLOAT LowFloatMark = -0.001;
/* 阀门全开时控制电压是2V */const FLOAT fFullOpenVol = 2.0;
/* 默认粗细调步进 */const FLOAT fInitWideStep = 0.8;
const FLOAT fInitThinStep = 0.3;
/* 保持缓冲处理值 */const FLOAT fKeepValue = 3.0;
extern UINT8 g_ucCpldTestFail;extern UINT8 g_ucHardWareFlg;
"CCU_485Alarm.h""CCU_ManInterface.h""CCU_Trap.h""CCU_Log.h""CCU_File.h"
"CCU_485Init.h""CCU_AlarmCard.h""CCU_CpldLoad.h"
/*----------------------------------------------*
* 外部函数原型说明 *
*----------------------------------------------*/
/* 配置模块函数声明 */
extern UINT32 GDC_GetHeadInfo(UINT8 ucSlotId, PGDC_CARD_INFO *pstHeadInfo);
extern UINT32 GDC_GetSensorInfo(UINT8 ucSlotId, UINT8 ucSensorNum, GDC_CARD_SENSOR *pstSdrInfo);
extern UINT32 CFG_DeleteGDCNode(UINT8 ucSlotId, UINT8 *pucBarCode);
extern UINT32 CFG_GetGdcNodeInfo(UINT8 ucSlotId, PGDC_CARD_INFO *ppstNode);
/*----------------------------------------------*
* 全局变量 *
*----------------------------------------------*/
/* 子卡数据中心 */
INSIDE_CARD_INFO g_stInsideBoardInfo;
/* 打桩测试数据 */
UINT8 g_uwAlarmBuf[5] = {0x76,0xa6,0xa6,0xa6,0xa6};
/* 子卡管理模块是否初始化标志 */UINT32 g_ulIsGdcHasInit = CCU_FALSE;
/* 子卡管理中心数据结构互斥信号量 */INT32 g_iInsideBoardInfoMutex;
/* 打印控制标志 */UINT32 ulSensorTempPrint = CCU_FALSE;
UINT32 ulSensorTempSelect = CCU_FALSE;UINT32 ulSetDAValue = CCU_FALSE;
UINT32 ulPrintVolFlag = CCU_FALSE;UINT32 ulGdcAlarmPrint = CCU_FALSE;
/*----------------------------------------------*
* 常量定义 *
*----------------------------------------------*/
const FLOAT HighFloatMark = 0.001;const FLOAT LowFloatMark = -0.001;
/* 阀门全开时控制电压是2V */const FLOAT fFullOpenVol = 2.0;
/* 默认粗细调步进 */const FLOAT fInitWideStep = 0.8;
const FLOAT fInitThinStep = 0.3;
/* 保持缓冲处理值 */const FLOAT fKeepValue = 3.0;
extern UINT8 g_ucCpldTestFail;extern UINT8 g_ucHardWareFlg;