⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3kmenu7.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
		}
	}
	if(onceflag78) { return;}
	//判断是否点击系统编号栏
	w_sysno=(SizeConfig.w*2/3)/3;
	x_machno=x+SizeConfig.w/3+3;
	if( (ClickCol>=x_machno && ClickCol<=x_machno+w_sysno-8) &&
		(ClickRow>=y+SizeConfig.h+40 && ClickRow<=y+SizeConfig.h+75) && vItemSEL7!=100)
	{	//年
		if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
		{
			Bar(x+SizeConfig.w*4/5+4, y+vItemSEL7*30-1,
				x+SizeConfig.w*4/5+SizeConfig.w/5-2, y+vItemSEL7*30+23, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%02d", checkbuffer[vItemSEL7].buffer[3]+1);
			ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, vchar, 0, 0, 0);
		}
		else if(vItemSEL7==110)
		{
			Bar(x_machno+w_sysno, y+SizeConfig.h+41,
				x_machno+w_sysno*2-8, y+SizeConfig.h+74, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%02d", system1[0].sub1.B2);
			ShowGB2312(x_machno+w_sysno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
		}
		else if(vItemSEL7==120)
		{
			Bar(x_machno+w_sysno*2, y+SizeConfig.h+41,
				x_machno+w_sysno*3-5, y+SizeConfig.h+74, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%03d", system1[0].sub1.B3);
			ShowGB2312(x_machno+w_sysno*2+(w_sysno-48)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
		}
		vItemSEL7=100;
		Bar(x_machno, y+SizeConfig.h+41,
			x_machno+w_sysno-8, y+SizeConfig.h+74, 255, 0, 0);
		memset(vchar, 0, 20);
		sprintf(vchar, "%02d", system1[0].sub1.B1);
		ShowGB2312(x_machno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
		ClearKBuffer();
		return;
	}
	else if((ClickCol>=x_machno+w_sysno && ClickCol<=x_machno+w_sysno*2-8) &&
		(ClickRow>=y+SizeConfig.h+40 && ClickRow<=y+SizeConfig.h+75) && vItemSEL7!=110)
	{	//月
		if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
		{
			Bar(x+SizeConfig.w*4/5+4, y+vItemSEL7*30-1,
				x+SizeConfig.w*4/5+SizeConfig.w/5-2, y+vItemSEL7*30+23, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%02d", checkbuffer[vItemSEL7].buffer[3]+1);
			ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, vchar, 0, 0, 0);
		}
		else if(vItemSEL7==100)
		{
			Bar(x_machno, y+SizeConfig.h+41,
				x_machno+w_sysno-8, y+SizeConfig.h+74, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%02d", system1[0].sub1.B1);
			ShowGB2312(x_machno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
		}
		else if(vItemSEL7==120)
		{
			Bar(x_machno+w_sysno*2, y+SizeConfig.h+41,
				x_machno+w_sysno*3-5, y+SizeConfig.h+74, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%03d", system1[0].sub1.B3);
			ShowGB2312(x_machno+w_sysno*2+(w_sysno-48)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
		}
		vItemSEL7=110;
		Bar(x_machno+w_sysno, y+SizeConfig.h+41,
			x_machno+w_sysno*2-8, y+SizeConfig.h+74, 255, 0, 0);
		memset(vchar, 0, 20);
		sprintf(vchar, "%02d", system1[0].sub1.B2);
		ShowGB2312(x_machno+w_sysno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
		ClearKBuffer();
		return;
	}
	else if((ClickCol>=x_machno+w_sysno*2 && ClickCol<=x_machno+w_sysno*3-5) &&
		(ClickRow>=y+SizeConfig.h+40 && ClickRow<=y+SizeConfig.h+75) && vItemSEL7!=120)
	{	//编号
		if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
		{
			Bar(x+SizeConfig.w*4/5+4, y+vItemSEL7*30-1,
				x+SizeConfig.w*4/5+SizeConfig.w/5-2, y+vItemSEL7*30+23, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%02d", checkbuffer[vItemSEL7].buffer[3]+1);
			ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, vchar, 0, 0, 0);
		}
		else if(vItemSEL7==100)
		{
			Bar(x_machno, y+SizeConfig.h+41,
				x_machno+w_sysno-8, y+SizeConfig.h+74, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%02d", system1[0].sub1.B1);
			ShowGB2312(x_machno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
		}
		else if(vItemSEL7==110)
		{
			Bar(x_machno+w_sysno, y+SizeConfig.h+41,
				x_machno+w_sysno*2-8, y+SizeConfig.h+74, 255, 255, 255);
			memset(vchar, 0, 20);
			sprintf(vchar, "%02d", system1[0].sub1.B2);
			ShowGB2312(x_machno+w_sysno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
		}
		vItemSEL7=120;
		Bar(x_machno+w_sysno*2, y+SizeConfig.h+41,
			x_machno+w_sysno*3-5, y+SizeConfig.h+74, 255, 0, 0);
		memset(vchar, 0, 20);
		sprintf(vchar, "%03d", system1[0].sub1.B3);
		ShowGB2312(x_machno+w_sysno*2+(w_sysno-48)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
		ClearKBuffer();
		return;
	}
	kNO=SimKB_MS78_Resp(690, 100);
	if(kNO!=100)
	{
		if(kNO==12 || kNO==13)
		{	//ENT .or. OK
			if(strlen(Dispbuf))
			{
				kInteger7=atoi(Dispbuf);
				if(vItemSEL7==100)
				{
					if(kInteger7>=0 && kInteger7<100)
					{	//年
						system1[0].sub1.B1=kInteger7;
					}
					Bar(x+SizeConfig.w/3+3, y+SizeConfig.h+41,
						x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)-8, y+SizeConfig.h+74, 255, 0, 0);
					memset(vchar, 0, 20);
					sprintf(vchar, "%02d", system1[0].sub1.B1);
					ShowGB2312(x+SizeConfig.w/3+3+(((SizeConfig.w*2/3)/3)-40)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
					ClearKBuffer();
				}
				else if(vItemSEL7==110)
				{
					if(kInteger7>0 && kInteger7<13)
					{	//月
						system1[0].sub1.B2=kInteger7;
					}
					Bar(x+SizeConfig.w/3+3+(SizeConfig.w*2/3)/3, y+SizeConfig.h+41,
						x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2-8, y+SizeConfig.h+74, 255, 0, 0);
					memset(vchar, 0, 20);
					sprintf(vchar, "%02d", system1[0].sub1.B2);
					ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)+(((SizeConfig.w*2/3)/3)-40)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
					ClearKBuffer();
				}
				else if(vItemSEL7==120)
				{	//编号无限制
					system1[0].sub1.B3=kInteger7;
					Bar(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2, y+SizeConfig.h+41,
						x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*3-5, y+SizeConfig.h+74, 255, 0, 0);
					memset(vchar, 0, 20);
					sprintf(vchar, "%03d", system1[0].sub1.B3);
					ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2+(((SizeConfig.w*2/3)/3)-48)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
					ClearKBuffer();
				}
				else if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
				{
					if(kInteger7>1 && kInteger7<=MAXCNL_3K)
					{	//有效
						checkbuffer[vItemSEL7].buffer[3]=kInteger7-1;
					}
					Bar(x+SizeConfig.w*4/5+5-1, y+vItemSEL7*30-1,
						x+SizeConfig.w*4/5+5+SizeConfig.w/5-7, y+vItemSEL7*30+23, 255, 0, 0);
					memset(vchar, 0, 20);
					sprintf(vchar, "%02d", checkbuffer[vItemSEL7].buffer[3]+1);
					ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, vchar, 255, 255, 255);
					ClearKBuffer();
				}
			}
			if(kNO==13)
			{	//OK 下发更改通道命令
				if( CheckREPEAT() )
				{	//重复了 给出提示
				    MessageBox( (VarST3000.Language ? "MACH-NO repeated" : "机组号重复") );
				}
				else
				{	//可以更新
					for(j=1; j<=VarST3000.UnitActuals; j++)
					{
						checkbuffer[j].buffer[0]=system1[0].sub1.B1;
						checkbuffer[j].buffer[1]=system1[0].sub1.B2;
						checkbuffer[j].buffer[2]=system1[0].sub1.B3;
						memcpy(smsg1.data, checkbuffer[j].buffer, 7);
						smsg1.id =0x02;	//2号命令
						smsg1.id+=(checkbuffer[j].unitnumber*64);
						smsg1.rtr=0;
						smsg1.dlen=7;
						CAN_SendMsg(smsg1);
					}
					for(j=1; j<=VarST3000.UnitActuals; j++)
					{	//同步单元号
						checkbuffer[j].unitnumber=checkbuffer[j].buffer[3];
					}
					ReSortCURecv();
					DrawCfgTable(MenuAttr.sX+MenuAttr.tW+(MenuAttr.bW-SizeConfig.w)/2, MenuAttr.sY+80);
					////最大通道号被更改
					//if(VarST3000.UnitCounts!=checkbuffer[VarST3000.UnitActuals].buffer[3]+1)
					//{	VarST3000.UnitCounts=checkbuffer[VarST3000.UnitActuals].buffer[3]+1;}
					//___系统配置表中的存在的通道号 都发送789ab命令
					for(j=1; j<=VarST3000.UnitActuals; j++)
					{
						CmdFlags[checkbuffer[j].unitnumber].B|=0x3f; //___发送6789aB命令
					}
				}
			}
		}
		else
		{	SimKB_MS78_Proc(kNO);
			if(vItemSEL7==100)
			{	//年
				Bar(x+SizeConfig.w/3+3, y+SizeConfig.h+41,
					x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)-8, y+SizeConfig.h+74, 255, 128, 128);
				ShowGB2312(x+SizeConfig.w/3+3+(((SizeConfig.w*2/3)/3)-40)/2,
							y+SizeConfig.h+50, Dispbuf, 0, 0, 198);
			}
			else if(vItemSEL7==110)
			{	//月
				Bar(x+SizeConfig.w/3+3+(SizeConfig.w*2/3)/3, y+SizeConfig.h+41,
					x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2-8, y+SizeConfig.h+74, 255, 128, 128);
				ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)+(((SizeConfig.w*2/3)/3)-40)/2,
							y+SizeConfig.h+50, Dispbuf, 0, 0, 198);
			}
			else if(vItemSEL7==120)
			{	//编号
				Bar(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2, y+SizeConfig.h+41,
					x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*3-5, y+SizeConfig.h+74, 255, 128, 128);
				ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2+(((SizeConfig.w*2/3)/3)-48)/2,
							y+SizeConfig.h+50, Dispbuf, 0, 0, 198);
			}
			else if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
			{
				Bar(x+SizeConfig.w*4/5+5-1, y+vItemSEL7*30-1,
					x+SizeConfig.w*4/5+5+SizeConfig.w/5-7, y+vItemSEL7*30+23, 255, 128, 128);
				ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, Dispbuf, 0, 0, 198);
			}

		}
	}
}

/******************************
 描述: 对于横向开关和下位机控制单元之间的同步相应
******************************/
void Synchronize_HCtrl(const int iCNL)
{
	int jcnl;
	unsigned char virtualWS,syncflag[MAXCNL_3K]={0};
	unsigned char vJOB_SER = unit[iCNL].submenu1.unitworksnum.i;
	syncflag[iCNL]=1; //___需要发送
	if( GetEntireAuto(vJOB_SER) )
	{	//___whole machine work status changed.
		virtualWS=((vJOB_SER==1) ? EntireStatus.EntireAuto_A : EntireStatus.EntireAuto_B); // record current job-ser whole work status.
		for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
		{
			if( unit[jcnl].submenu1.unitworksnum.i==vJOB_SER && unit[jcnl].submenu1.unitworksnum.j )
			{
				CommandData[jcnl].Cmd6[2]&=0xfc; //___整机 本组手动
				if( virtualWS ) { CommandData[jcnl].Cmd6[2]|=0x02;} //___整机自动
				if( unit[jcnl].submenu1.bitfield.hand_auto ) { CommandData[jcnl].Cmd6[2]|=0x01;} //___纵向自动
				CommandData[jcnl].Cmd6[6]&=0xdf; //___横向手动
				if( unit[jcnl].submenu1.bitfield.hcontrol && unit[jcnl].submenu1.bitfield.h_motorruning )
				{ CommandData[jcnl].Cmd6[6]|=0x20;} //___横向自动
				syncflag[jcnl]=1;
			}
		}
	}
	for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
	{
		if( syncflag[jcnl] )
		{ SendCnlData(jcnl, 0x06); delay(10);}
	}
}

/******************************
 描述: 单页事件处理函数
 说明: 第07页:系统配置表 单独函数处理(RespPAGE7_M7)
******************************/
void RespPAGE_M7(const int iPAGE)
{
    int  xNew,yNew,xHitLeft,BFlag,BFlag1;
    int  NO,jcnl,tmpi7;
    char uchar7[20],echar7[20];
    long tmpl7;
    float tmpf7;
    unsigned char syncflag7=0;
    unsigned char syncflag_standard=0;
    unsigned char uStyle,eStyle;

    int t,BCUTurns,BEntireTurns,BEntireAuto,Bjob=unit[vNewUnitSEL7-1].submenu1.unitworksnum.i;
    switch(iPAGE)
    {
    case 1: // 标记排列
        if( (VarST3000.UnitCounts>0) && (vNewUnitSEL7>0) )
        {
            NO=100;
            xHitLeft=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50;
            uStyle=(VarST3000.Language?0x81:0x03); // 暂时表示按钮风格
            if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
                (ClickRow>=224 && ClickRow<=274) )
            {
                //Button(xHitLeft, 224, 100, 50, 0x10, NULL, 192, 192, 192); 
                Rect(xHitLeft, 224, 100, 50, 1);
                delay(15);
                Button(xHitLeft, 224, 100, 50, uStyle, szptr_m7_turns[0][VarST3000.Language], 192, 192, 192);
                NO=0;
            }
            else if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
                (ClickRow>=294 && ClickRow<=344) )
            {
                //Button(xHitLeft, 294, 100, 50, 0x10, NULL, 192, 192, 192); 
                Rect(xHitLeft, 294, 100, 50, 1);
                delay(15);
                Button(xHitLeft, 294, 100, 50, uStyle, szptr_m7_turns[1][VarST3000.Language], 192, 192, 192);
                NO=1;
            }
            else if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
                (ClickRow>=364 && ClickRow<=414) )
            {
                //Button(xHitLeft, 364, 100, 50, 0x10, NULL, 192, 192, 192); 
                Rect(xHitLeft, 364, 100, 50, 1);
                delay(15);
                Button(xHitLeft, 364, 100, 50, uStyle, szptr_m7_turns[2][VarST3000.Language], 192, 192, 192);
                NO=2;
            }
            else if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
                (ClickRow>=434 && ClickRow<=484) )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -