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

📄 mtwnd.cpp

📁 1553B板卡的源代码,只有购买板卡才能得到的好资料
💻 CPP
📖 第 1 页 / 共 3 页
字号:
				isBroadCast = TRUE;

			if (tr1==0) // RT1 is Rx or Tx ?
			{
				// RT1 is Rx // dest | To
				this->m_Grid.SetCol(3); // From
				if (rt2==31) // Broadcast
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT(s),Mod(%d)", sa2); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa2); // data
				}
				else
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT%d,Mod(%d)", rt2, sa2); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt2, sa2); // data
				}
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(4); // To
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data
				}
				else
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT%d,Mod(%d)", rt1, sa1); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt1, sa1); // data
				}
				this->m_Grid.SetText(TEXT(c));
			}
			else
			{
				// RT1 is Tx // source | From
				this->m_Grid.SetCol(3); // From
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data
				}
				else
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT%d,Mod(%d)", rt1, sa1); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt1, sa1); // data
				}
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(4); // To
				if (rt2==31) // Broadcast
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT(s),Mod(%d)", sa2); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa2); // data
				}
				else
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT%d,Mod(%d)", rt2, sa2); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt2, sa2); // data
				}
				this->m_Grid.SetText(TEXT(c));
			}

			this->m_Grid.SetCol(5); // CMD1
			sprintf(c, "%04x", cmd1);
			this->m_Grid.SetText(TEXT(c));

			this->m_Grid.SetCol(6); // CMD2
			sprintf(c, "%04x", cmd2);
			this->m_Grid.SetText(TEXT(c));

			this->m_Grid.SetCol(7); // CNT/MC
			if ((sa1==0)||(sa1==31))
				sprintf(c, "MC%d", mc1);
			else
			{
				if (wc1==0)
					sprintf(c, "32");
				else
					sprintf(c, "%d", wc1);
			}
			this->m_Grid.SetText(TEXT(c));
		}
		else
		{
			// BC-RT / Mode Code
			if (tr1==0) // RT <- (Rx)
			{
				// source: BC , dest: RT
				//
				this->m_Grid.SetCol(3); // From
				sprintf(c, "BC");
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(4); // To
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data
				}
				else
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT%d,Mod(%d)", rt1, sa1); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt1, sa1); // data
				}
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(5); // CMD1
				sprintf(c, "%04x", cmd1);
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(6); // CMD2
				this->m_Grid.SetText(TEXT(""));

				this->m_Grid.SetCol(7); // CNT/MC
				if ((sa1==0)||(sa1==31))
					sprintf(c, "MC%d", mc1);
				else
				{
					if (wc1==0)
						sprintf(c, "32");
					else
						sprintf(c, "%d", wc1);
				}
				this->m_Grid.SetText(TEXT(c));
			}
			else // RT -> (Tx)
			{
				// source: RT , dest: BC
				//
				this->m_Grid.SetCol(3); // From
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data
				}
				else
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT%d,Mod(%d)", rt1, sa1); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt1, sa1); // data
				}
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(4); // To
				sprintf(c, "BC");
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(5); // CMD1
				sprintf(c, "%04x", cmd1);
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(6); // CMD2
				this->m_Grid.SetText(TEXT(""));

				this->m_Grid.SetCol(7); // CNT/MC
				if ((sa1==0)||(sa1==31))
					sprintf(c, "MC%d", mc1);
				else
				{
					if (wc1==0)
						sprintf(c, "32");
					else
						sprintf(c, "%d", wc1);
				}
				this->m_Grid.SetText(TEXT(c));
			} // end of if (tr1==0) // RT <- (Rx)
		} // end of if ((bsw&MTMS_RT_RT_FMT)==MTMS_RT_RT_FMT)
		
		this->m_Grid.SetCol(8); // CH-A/B
		if ((bsw&MTMS_CH_BORA)==MTMS_CH_BORA)
			this->m_Grid.SetText(TEXT("B"));
		else
			this->m_Grid.SetText(TEXT("A"));

		this->m_Grid.SetCol(9); // DATA
		len = this->OwnBlockDataLen(bsw, cmd1);
		memset(c, 0, sizeof(c));
		strcpy(c, " ");
		i = 0;
		//while (( i < len + 1) && (g_RunStat.blMTRunning))
		while (( i < 37) && (g_RunStat.blMTRunning))
		{
			sprintf(s, " %04x", g_MTMsg.MSGBlock[i]);
			strcat(c, s);
			i++;
		}
		//????
		/*
		if (!isBroadCast) // broadcast
		{

		}
		*/
		this->m_Grid.SetText(TEXT(c));

		this->m_Grid.SetCol(10); // Comment
		if ((bsw&MTMS_ERR_FLAG)==MTMS_ERR_FLAG)
		{
			this->m_Grid.SetText(TEXT("消息出错"));
		}
		else
		{
			if ((bsw&MTMS_RT_RT_FMT)==MTMS_RT_RT_FMT)
			{
				this->m_Grid.SetText(TEXT("RT-RT"));
			}
			else
			{
				if (((bsw&MTMS_ERR_FLAG)==MTMS_ERR_FLAG) && ((bsw&MTMS_RT_RT_FMT)==MTMS_RT_RT_FMT))
				{
					this->m_Grid.SetText(TEXT("RT-RT (消息出错)"));
				}
				else
				{
					this->m_Grid.SetText(TEXT(""));
				}
			}
		}
	}
	else
	{
		ultoa((this->MsgRecvCnt)+1, c, 10);
		this->m_Grid.AddItem(c, (COleVariant)a); // ID
		this->m_Grid.SetRow(1);

		this->m_Grid.SetCol(1); // BLOCK_STATUS_WORD
		sprintf(c, "%04x", g_MTMsg.BSW);
		this->m_Grid.SetText(TEXT(c));

		this->m_Grid.SetCol(2); // TIMETAG
		ultoa(g_MTMsg.TimeTag, c, 10);
		this->m_Grid.SetText(TEXT(c));

		bsw = g_MTMsg.BSW; // Block Status Word
		cmd1 = g_MTMsg.MSGBlock[0]; // Command Word 1
		rt1 = ::OwnRTAddr(cmd1);
		tr1 = ::OwnTR(cmd1);
		sa1 = ::OwnSubAddr(cmd1);
		wc1 = ::OwnWordCount(cmd1);
		mc1 = ::OwnModeCode(cmd1);
		if (rt1==31)
			isBroadCast = TRUE;

		if ((bsw&MTMS_RT_RT_FMT)==MTMS_RT_RT_FMT)
		{
			// RT-RT
			cmd2 = g_MTMsg.MSGBlock[1];
			rt2 = ::OwnRTAddr(cmd2);
			tr2 = ::OwnTR(cmd2);
			sa2 = ::OwnSubAddr(cmd2);
			wc2 = ::OwnWordCount(cmd2);
			mc2 = ::OwnModeCode(cmd2);
			if (rt2==31)
				isBroadCast = TRUE;

			if (tr1==0) // RT1 is Rx or Tx ?
			{
				// RT1 is Rx // dest | To
				this->m_Grid.SetCol(3); // From
				if (rt2==31) // Broadcast
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT(s),Mod(%d)", sa2); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa2); // data
				}
				else
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT%d,Mod(%d)", rt2, sa2); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt2, sa2); // data
				}
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(4); // To
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data
				}
				else
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT%d,Mod(%d)", rt1, sa1); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt1, sa1); // data
				}
				this->m_Grid.SetText(TEXT(c));
			}
			else
			{
				// RT1 is Tx // source | From
				this->m_Grid.SetCol(3); // From
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data
				}
				else
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT%d,Mod(%d)", rt1, sa1); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt1, sa1); // data
				}
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(4); // To
				if (rt2==31) // Broadcast
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT(s),Mod(%d)", sa2); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa2); // data
				}
				else
				{
					// data or mode code
					if ((sa2==0)||(sa2==31))
						sprintf(c, "RT%d,Mod(%d)", rt2, sa2); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt2, sa2); // data
				}
				this->m_Grid.SetText(TEXT(c));
			}

			this->m_Grid.SetCol(5); // CMD1
			sprintf(c, "%04x", cmd1);
			this->m_Grid.SetText(TEXT(c));

			this->m_Grid.SetCol(6); // CMD2
			sprintf(c, "%04x", cmd2);
			this->m_Grid.SetText(TEXT(c));

			this->m_Grid.SetCol(7); // CNT/MC
			if ((sa1==0)||(sa1==31))
				sprintf(c, "MC%d", mc1);
			else
			{
				if (wc1==0)
					sprintf(c, "32");
				else
					sprintf(c, "%d", wc1);
			}
			this->m_Grid.SetText(TEXT(c));
		}
		else
		{
			// BC-RT / Mode Code
			if (tr1==0) // RT <- (Rx)
			{
				// source: BC , dest: RT
				//
				this->m_Grid.SetCol(3); // From
				sprintf(c, "BC");
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(4); // To
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data
				}
				else
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT%d,Mod(%d)", rt1, sa1); // mode code
					else
						sprintf(c, "RT%d,Sa%d", rt1, sa1); // data
				}
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(5); // CMD1
				sprintf(c, "%04x", cmd1);
				this->m_Grid.SetText(TEXT(c));

				this->m_Grid.SetCol(6); // CMD2
				this->m_Grid.SetText(TEXT(""));

				this->m_Grid.SetCol(7); // CNT/MC
				if ((sa1==0)||(sa1==31))
					sprintf(c, "MC%d", mc1);
				else
				{
					if (wc1==0)
						sprintf(c, "32");
					else
						sprintf(c, "%d", wc1);
				}
				this->m_Grid.SetText(TEXT(c));
			}
			else // RT -> (Tx)
			{
				// source: RT , dest: BC
				//
				this->m_Grid.SetCol(3); // From
				if (rt1==31) // Broadcast
				{
					// data or mode code
					if ((sa1==0)||(sa1==31))
						sprintf(c, "RT(s),Mod(%d)", sa1); // mode code
					else
						sprintf(c, "RT(s),Sa%d", sa1); // data

⌨️ 快捷键说明

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