Exemple #1
0
void get_line_from_flash(void)
{
	uint8_t ct = 0, num = 0;
	
 	SST25_R_BLOCK(LINEADDR, ucDispCMDDataBuff, SIZE);//读数据到buff里面
	if((ucDispCMDDataBuff[0] == 0xFF) || (ucDispCMDDataBuff[1] == 0xFF) || (ucDispCMDDataBuff[SIZE - 1] == 0xFF))//行驶中
	{
		memset(ucDispCMDDataBuff, 0x00, SIZE);//清除buff里面的数据
		num = c_MaxColByte - 8;
		for(ct = 0; ct < num; ct ++)
		{
			ucDispCMDDataBuff[ct] = 0x20;
		}
		switch(led_type) 
		{
			case FRONT:
			case REAR:
				add_line_info(welcom, ucDispCMDDataBuff, num / 2);//前屏显示欢迎光乘坐
				get_line_name(ucDispCMDDataBuff, Line);//
				break;
			case SIDE:
				add_line_info(welcom, ucDispCMDDataBuff, num / 2);
				break;
			default:
				break;
		}
		bflag = 1;
	}
	else//到站
	{
		switch(led_type)
		{
			case FRONT:
				bflag = 1;
				break;
			case REAR:
				get_line_name(ucDispCMDDataBuff, Line);
				bflag = 1;
				break;
			case SIDE:
				ct = 0;
				while(ucDispCMDDataBuff[ct ++] != '\0');
				if(ct <= c_MaxColByte)
				{
					bflag = 1;
				}
				else
				{
					bflag = 0;
				}
				break;
			default:
				break;
		}
	}
	LED_OK = 1;
}
Exemple #2
0
void scsicb_device::set_scsi_line( UINT32 mask, UINT8 state )
{
	verboselog( 1, machine(), "%s set_scsi_line %s %d\n", tag(), get_line_name( mask ), state );

	if( state )
	{
		scsi_out( mask, mask );
	}
	else
	{
		scsi_out( 0, mask );
	}
}
Exemple #3
0
UINT8 scsicb_device::get_scsi_line( UINT32 mask )
{
	UINT8 state;

	if( ( linestate & mask ) != 0 )
	{
		state = 1;
	}
	else
	{
		state = 0;
	}

	verboselog( 1, machine(), "%s get_scsi_line %s %d\n", tag(), get_line_name( mask ), state );

	return state;
}
Exemple #4
0
void scsicb_device::trigger_callback( UINT32 update_mask, UINT32 line_mask, devcb2_write_line &write_line )
{
	if( ( update_mask & line_mask ) != 0 && !write_line.isnull() )
	{
		UINT8 state;

		if( ( linestate & line_mask ) != 0 )
		{
			state = 1;
		}
		else
		{
			state = 0;
		}

		verboselog( 1, machine(), "%s trigger_callback %s %d\n", tag(), get_line_name( line_mask ), state );

		write_line( state );
	}
}
Exemple #5
0
void rear_process(uint8_t snowflag)
{
	uint8_t ct = 0, index = 0;
	uint8_t size = 0;
	uint8_t compareflag = 0;
	uint8_t  ucharhigh = 0, ucharlow = 0;
	uint16_t code = 0;
	uint8_t tempbuff[SIZE] = {0};
	uint8_t linebuff[20] = {0};
	
	if(snowflag == 0)
	{
		ucDispCMDDataBuffTemp[ct ++] = 0xA3;
		ucDispCMDDataBuffTemp[ct ++] = 0xAA;
		ucDispCMDDataBuffTemp[ct ++] = 0xA1;
		ucDispCMDDataBuffTemp[ct ++] = 0xA1;
	}
	for(index = 50; Usart_ucDispCMDDataBuffTemp[index] != 0x07 && Usart_ucDispCMDDataBuffTemp[index] != 0x2D; index ++)
	{
		ucharhigh = Usart_ucDispCMDDataBuffTemp[index];
		if(ucharhigh > 0x80)
		{
			ucharlow = Usart_ucDispCMDDataBuffTemp[++ index];
			code = (uint16_t)(ucharhigh << 8) + ucharlow;
			if((code == 0xBFD5) || (code == 0xB5F7))
			{
				continue;
			}
			else
			{
				ucDispCMDDataBuffTemp[ct ++] = ucharhigh;
				ucDispCMDDataBuffTemp[ct ++] = ucharlow;
			}
		}
		else
		{
			if(Usart_ucDispCMDDataBuffTemp[index] > 0x2F && Usart_ucDispCMDDataBuffTemp[index] < 0x3A)//0~9
			{
				ucDispCMDDataBuffTemp[ct ++] = 0xA3;
				ucDispCMDDataBuffTemp[ct ++] = 0xB0 + Usart_ucDispCMDDataBuffTemp[index] - 0x30;	
			}
			else if(Usart_ucDispCMDDataBuffTemp[index] > 0x40 && Usart_ucDispCMDDataBuffTemp[index] < 0x5B)//A~Z
			{
				ucDispCMDDataBuffTemp[ct ++] = 0xA3;
				ucDispCMDDataBuffTemp[ct ++] = 0xC1 + Usart_ucDispCMDDataBuffTemp[index] - 0x41;		
			}  
			else if(Usart_ucDispCMDDataBuffTemp[index] > 0x60 && Usart_ucDispCMDDataBuffTemp[index] < 0x7B)//a~z
			{
				ucDispCMDDataBuffTemp[ct ++] = 0xA3;
				ucDispCMDDataBuffTemp[ct ++] = 0xE1 + Usart_ucDispCMDDataBuffTemp[index] - 0x61;		
			}
			else if(Usart_ucDispCMDDataBuffTemp[index] == 0x5E)
			{
				ucDispCMDDataBuffTemp[ct++] = 0xA3;
				ucDispCMDDataBuffTemp[ct++] = 0xAA;
			}
			else
			{ 
				ucDispCMDDataBuffTemp[ct ++] = Usart_ucDispCMDDataBuffTemp[index];	
			}
		}
	}
	get_line_name(ucDispCMDDataBuffTemp, linebuff);
	for(index = 0 ; index < 20; index ++)
	{
		if(Line[index] != linebuff[index])
		{
			Line[index] = linebuff[index];
			compareflag = 1;
		}
	}
	if(compareflag)
	{
		message_state |= MESSAGE_LEFT_NEW;
		message_state |= MESSAGE_RIGHT_NEW;
		message_state |= MESSAGE_BRAKE_NEW;
	}
	if(ct <= c_MaxColByte)
	{
		size= c_MaxColByte - ct;
		for(index = 0; index < size; index ++)
		{
			tempbuff[index] = 0x20;
		}
		if(ct % 2 == 0)
		{
			add_line_info(ucDispCMDDataBuffTemp, tempbuff, size / 2);
		}
		else
		{
			add_line_info(ucDispCMDDataBuffTemp, tempbuff, size / 2 + 1);
		}
		for(index = 0; index < SIZE; index ++)
		{
			ucDispCMDDataBuff[index] = tempbuff[index];
		}	
	}
	else
	{
		for(index = 0; index < SIZE; index ++)
		{
			ucDispCMDDataBuff[index] = ucDispCMDDataBuffTemp[index];
		}
	}
}