Example #1
0
void FormatModule(void)
{
	int i, j;
	int nMinPenalty, nPenalty;

	memset(m_byModuleData, 0, sizeof(m_byModuleData));

	SetFunctionModule();

	SetCodeWordPattern();

	if (m_nMaskingNo == -1)
	{
		m_nMaskingNo = 0;

		SetMaskingPattern(m_nMaskingNo); 
		SetFormatInfoPattern(m_nMaskingNo); 

		nMinPenalty = CountPenalty();

		for (i = 1; i <= 7; ++i)
		{
			SetMaskingPattern(i); 
			SetFormatInfoPattern(i); 

			nPenalty = CountPenalty();

			if (nPenalty < nMinPenalty)
			{
				nMinPenalty = nPenalty;
				m_nMaskingNo = i;
			}
		}
	}

	SetMaskingPattern(m_nMaskingNo); 
	SetFormatInfoPattern(m_nMaskingNo); 

	for (i = 0; i < m_nSymbleSize; ++i)
	{
		for (j = 0; j < m_nSymbleSize; ++j)
		{
			m_byModuleData[i][j] = (BYTE)((m_byModuleData[i][j] & 0x11) != 0);
		}
	}
}
Example #2
0
void FormatModule(void)
{
	int i, j;

	memset(m_byModuleData, 0, sizeof(m_byModuleData));

	// Function module placement
	SetFunctionModule();

	// Data placement
	SetCodeWordPattern();

	if (m_nMaskingNo == -1) {

		// Select the best pattern masking
		m_nMaskingNo = 0;

		SetMaskingPattern(m_nMaskingNo); 		// Masking
		SetFormatInfoPattern(m_nMaskingNo); 	// Placement pattern format information

		int nMinPenalty = CountPenalty();

		for (i = 1; i <= 7; i++) {
			SetMaskingPattern(i); 			// Masking
			SetFormatInfoPattern(i); 		// Placement pattern format information

			int nPenalty = CountPenalty();

			if (nPenalty < nMinPenalty) {
				nMinPenalty = nPenalty;
				m_nMaskingNo = i;
			}
		}
	}

	SetMaskingPattern(m_nMaskingNo); 	// Masking
	SetFormatInfoPattern(m_nMaskingNo); // Placement pattern format information

	// The module pattern converted to a Boolean value

	for (i = 0; i < m_nSymbleSize; i++) {
		for (j = 0; j < m_nSymbleSize; j++) {
			m_byModuleData[i][j] = (uint8_t)((m_byModuleData[i][j] & 0x11) != 0);
		}
	}
}