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; }
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 ); } }
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; }
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 ); } }
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]; } } }