📄 ideddlg.cpp
字号:
{
// TODO: Add your control notification handler code here
POSITION pos;
pos = m_TrainCodeList.GetFirstSelectedItemPosition();
// 得到项目索引
IndexInFieldList = m_TrainCodeList.GetNextSelectedItem(pos);
m_sTrainCode=m_TrainCodeList.GetItemText(IndexInFieldList, 0);
m_sTrainCode.TrimLeft();
m_sTrainCode.TrimRight();
CAdoRecordSet pRS0,pRS1,pRS2,pRS3;
pRS0.SetAdoConnection(&m_adoConnection);
pRS0.Open("SELECT distinct OriginalStationCh from RouteList where (TrainCode='"+m_sTrainCode+"')");
pRS1.SetAdoConnection(&m_adoConnection);
pRS1.Open("SELECT distinct LastStationCh from RouteList where (TrainCode='"+m_sTrainCode+"')");
pRS2.SetAdoConnection(&m_adoConnection);
pRS2.Open("SELECT distinct StartTime from RouteList where (TrainCode='"+m_sTrainCode+"')");
pRS3.SetAdoConnection(&m_adoConnection);
pRS3.Open("SELECT distinct PassStationCh from RouteList where (TrainCode='"+m_sTrainCode+"')");
//读取区间信息,不显示
pRS0.GetCollect("OriginalStationCh",m_sOriginalStationCh);
pRS1.GetCollect("LastStationCh",m_sLastStationCh);
m_sOriginalStationCh.TrimLeft();
m_sOriginalStationCh.TrimRight();
m_sLastStationCh.TrimLeft();
m_sLastStationCh.TrimRight();
// AfxMessageBox(m_sOriginalStationCh);
//读取开车时间信息,不显示
pRS2.GetCollect("StartTime",m_sStartTime);
m_sStartTime.TrimLeft();
m_sStartTime.TrimRight();
// AfxMessageBox(m_sStartTime);
//读取过路站信息,不显示
pRS3.GetCollect("PassStationCh",m_sPassStationCh);
m_sPassStationCh.TrimLeft();
m_sPassStationCh.TrimRight();
// AfxMessageBox(m_sPassStationCh);
*pResult = 0;
}
void CIDEDDlg::OnIntervalStationButton()
{
// TODO: Add your control notification handler code here
m_sIntervalStationCh=m_sOriginalStationCh+'-'+m_sLastStationCh ;
//显示车次对应的区间
m_IntervalStationChList.DeleteAllItems();
int ITEMS=m_IntervalStationChList.GetItemCount();
m_IntervalStationChList.InsertItem(ITEMS, _T(""));
m_IntervalStationChList.SetItemText(ITEMS, 0, m_sIntervalStationCh);
}
void CIDEDDlg::OnIDButton()
{
// TODO: Add your control notification handler code here
//车内显示中文初始化
//55 FF FF FF FF FF 0D 00 00 00 05 00 00 00 05 00 13 02 00 90 00 18 00 DA 81 0D
unsigned char WelcomeMaster1[26]={
0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x0D,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,
0x00,0x13,0x02,0x00,0x90,0x00,0x18,0xDA,0x81,0x00,0x0D};
//车内显示滚动模式
//55 FF FF FF FF FF 0D 00 00 00 08 00 00 00 08 00 08 02 00 04 00 00 00 00 00 0A 6D 51 0D
unsigned char WelcomeMaster2[29]={
0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x0D,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,
0x00,0x08,0x02,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x0A,0x6d,0x51,0x0D};
//清空
unsigned char Reset2[26]={
0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x0D,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,
0x00,0x05,0x02,0x90,0x10,0x08,0x08,0xD8,0xC8,0xC5,0x0D};
//欢迎信息:欢迎您乘坐本次列车,本次列车是由xx开往xx的xx次,
//每段信息最多可显示40个字(包括标点)
unsigned char WelcomeMaster11[145]={
0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0x0D,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x7C,
0x00,0x06,0x02,0x00,0x00,0x00,0x28,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,0x00,0x14,0x1D,
0x00,0x00,0x0D};
char string1[200]="欢迎您乘坐本次列车,本次列车是由";//需要设定数组长度,否则动态分配空间影响数组中的内容
char string2[12];
char string3[6]="开往";
char string4[10];
char string5[4]="的";
char string6[10];
char string7[4]="次";
char string11[200]="开车时间是";
char string22[15];
char string33[15]=",中途经由:";
char string44[50];
int OriginalStation_len=m_sOriginalStationCh.GetLength( );//求出选择的区间的字符串的长度;
int LastStation_len=m_sLastStationCh.GetLength( );
int routeid_len=m_sTrainCode.GetLength( );
int starttime_len=m_sStartTime.GetLength( );
int passstation_len=m_sPassStationCh.GetLength( );
int k,p,q=0,n=0,m,i=0,j=0,a,b,d=0,c,e=0,f,g=0,h,r,s=0;
unsigned char HanziUnicodeDataL,HanziUnicodeDataH,XingqiUnicodeDataL,XingqiUnicodeDataH,\
HanziUnicodeDataL1,HanziUnicodeDataH1;
unsigned short HanziUnicodeData,HanziUnicodeData1;
unsigned short ZimuUnicodeData,ZimuUnicodeData1,RiqiUnicodeData,ShijianUnicodeData,XingqiUnicodeData;
//显示当前日期时间星期
COleDateTime TD;
CString time,Date,CurrentTime,CurrentDate,CurrentWeek;
TD=TD.GetCurrentTime();
time.Format("%d:%d:%d",TD.GetHour(),TD.GetMinute(),TD.GetSecond());
CurrentTime=time;
//strsql.Format("%d",nLevel);
//strTD.Format("%d-%d-%d %d:%d:%d",TD.GetYear(),TD.GetMonth(),TD.GetDay(),TD.GetHour(),TD.GetMinute(),TD.GetSecond());
Date.Format("%d/%d/%d",TD.GetYear(),TD.GetMonth(),TD.GetDay());
CurrentDate=Date;
CurrentWeek=GetCurrentWeek();
AfxMessageBox(CurrentWeek);
memset(string2,0,sizeof(string2));//清空字符串
for(k=0;k<OriginalStation_len;k++)
string2[k]=m_sOriginalStationCh[k];
strcat(string1,string2);
strcat(string1,string3);
memset(string4,0,sizeof(string4));//清空字符串
for(p=0;p<LastStation_len;p++)
{
string4[p]=m_sLastStationCh[p];
}
strcat(string1,string4);
strcat(string1,string5);
memset(string6,0,sizeof(string6));//清空字符串
for(a=0;a<routeid_len;a++)
string6[a]=m_sTrainCode[a];
strcat(string1,string6);
strcat(string1,string7);
//AfxMessageBox(string1);
int string1_len=strlen(string1);
for(m=0;m<string1_len;m=m+2)
{ unsigned char str=string1[m];//定义成 char型不可以
if(str>0x80)//判断汉字和字母数字(汉字版)的条件,大于0x80是汉字
{
uchuanyingQ=string1[m];
uchuanyingW=string1[m+1];
HanziUnicodeData=0x2A9+(uchuanyingQ-0xB0)*0x5E+(uchuanyingW-0xA1);//计算汉字Unicode码的公式
HanziUnicodeDataL=HanziUnicodeData&0x00FF;
HanziUnicodeDataH=(HanziUnicodeData&0xFF00)>>8;
//赋值
WelcomeMaster11[22+3*n]=0x00;
WelcomeMaster11[23+3*n]=HanziUnicodeDataL;
WelcomeMaster11[24+3*n]=HanziUnicodeDataH;
n++;
}
else
{
ZimuUnicodeData=string1[m]+0x84;////计算字母数字(汉字版)Unicode码的公式
//赋值
WelcomeMaster11[22+3*n]=0x00;
WelcomeMaster11[23+3*n]=ZimuUnicodeData;
WelcomeMaster11[24+3*n]=0x00;
m--;
n++;
}
}
//算出CRC
int route11_checksum=FunCRC16(( char *)&WelcomeMaster11[0],142);
WelcomeMaster11[142]=route11_checksum&0x00FF;
WelcomeMaster11[143]=(route11_checksum&0xFF00)>>8;
int Date_len=strlen(CurrentDate);
int Time_len=strlen(CurrentTime);
int Week_len=strlen(CurrentWeek);
for(b=0;b<Date_len;b=b+2)
{
RiqiUnicodeData=CurrentDate[b]+0x84;
//赋值
DateTime[22+3*d]=0x00;
DateTime[23+3*d]=RiqiUnicodeData;
DateTime[24+3*d]=0x00;
b--;
d++;
}
//算出日期CRC
int Date_checksum=FunCRC16(( char *)&DateTime[0],82);
DateTime[82]=Date_checksum&0x00FF;
DateTime[83]=(Date_checksum&0xFF00)>>8;
for(c=0;c<Time_len;c=c+2)
{
ShijianUnicodeData=CurrentTime[c]+0x84;
//赋值
Time[22+3*e]=0x00;
Time[23+3*e]=ShijianUnicodeData;
Time[24+3*e]=0x00;
c--;
e++;
}
//算出时间CRC
int Time_checksum=FunCRC16(( char *)&Time[0],82);
Time[82]=Time_checksum&0x00FF;
Time[83]=(Time_checksum&0xFF00)>>8;
for(f=0;f<Week_len;f=f+2)
{
WeekQ=CurrentWeek[f];
WeekW=CurrentWeek[f+1];
XingqiUnicodeData=0x2A9+(WeekQ-0xB0)*0x5E+(WeekW-0xA1);
XingqiUnicodeDataL=XingqiUnicodeData&0x00FF;
XingqiUnicodeDataH=(XingqiUnicodeData&0xFF00)>>8;
//赋值
Week[22+3*g]=0x00;
Week[23+3*g]=XingqiUnicodeDataL;
Week[24+3*g]=XingqiUnicodeDataH;
g++;
}
//算出星期CRC
int Week_checksum=FunCRC16(( char *)&Week[0],82);
Week[82]=Week_checksum&0x00FF;
Week[83]=(Week_checksum&0xFF00)>>8;
memset(string22,0,sizeof(string22));//清空字符串
for(f=0;f<starttime_len;f++)
string22[f]=m_sStartTime[f];
strcat(string11,string22);
strcat(string11,string33);
memset(string44,0,sizeof(string44));//清空字符串
for(h=0;h<passstation_len;h++)
string44[h]=m_sPassStationCh[h];
strcat(string11,string44);
// AfxMessageBox(string11);
int string11_len=strlen(string11);
for(r=0;r<string11_len;r=r+2)
{ unsigned char str11=string11[r];//定义成 char型不可以
if(str11>0x80)
{
uchuanyingQ1=string11[r];
uchuanyingW1=string11[r+1];
HanziUnicodeData1=0x2A9+(uchuanyingQ1-0xB0)*0x5E+(uchuanyingW1-0xA1);
HanziUnicodeDataL1=HanziUnicodeData1&0x00FF;
HanziUnicodeDataH1=(HanziUnicodeData1&0xFF00)>>8;
//赋值
WelcomeMaster22[22+3*s]=0x00;
WelcomeMaster22[23+3*s]=HanziUnicodeDataL1;
WelcomeMaster22[24+3*s]=HanziUnicodeDataH1;
s++;
}
else
{
ZimuUnicodeData1=string11[r]+0x84;
//赋值
WelcomeMaster22[22+3*s]=0x00;
WelcomeMaster22[23+3*s]=ZimuUnicodeData1;
WelcomeMaster22[24+3*s]=0x00;
r--;
s++;
}
}
//算出第二段信息CRC
int route22_checksum=FunCRC16(( char *)&WelcomeMaster22[0],142);
WelcomeMaster22[142]=route22_checksum&0x00FF;
WelcomeMaster22[143]=(route22_checksum&0xFF00)>>8;
m_Com1.Write((unsigned char*)&Reset2[0],26);
wait();
m_Com1.Write((unsigned char*)&WelcomeMaster1[0],26);
wait();
m_Com1.Write((unsigned char*)&WelcomeMaster2[0],29);
wait();
m_Com1.Write((unsigned char*)&WelcomeMaster11[0],145);
wait();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -