bool ListenApp::setup(int brate,int time){ // enumerateserialports(); if(brate==9600){ pqtSerialPort->setBaudRate(BAUD9600); }else{ std::cout << "Baud Rate Not Supported Yet"<<std::endl; return 0; } QObject::connect(ptimer,SIGNAL(timeout()),this,SLOT(closeapp())); if(pqtSerialPort->open(QIODevice::ReadWrite)==false){ std::cout << "couldn't open the serial port"; pqtSerialPort->close(); return 0; }else{ std::cout<<"serial port opened succesfully"; } //first connect to dsr signal of pqtSerialPort connect(pqtSerialPort,SIGNAL(dsrChanged ( bool )), this,SLOT(serial_port_dsr_event(bool ))); /*connect processor thread slot to serial port closed signal*/ connect(this,SIGNAL(serial_port_closed()),processor,SLOT(stop_processing())); /*connect ivy downlink thread slot to serial port closed signal*/ connect(this,SIGNAL(serial_port_closed()),ivy_dl_thread,SLOT(stop_processing())); /*connect ivy main loop thread slot to serial port closed signal*/ connect(this,SIGNAL(serial_port_closed()),pivyloopthread,SLOT(stop_processing())); /*connect ivy main loop thread slot to serial port closed signal*/ connect(this,SIGNAL(serial_port_closed()),pjsbsim_thread,SLOT(jsbsim_stop())); /*set the timer interval*/ ptimer->setInterval(time); /*start timer*/ ptimer->start(); /*start reader*/ reader->start(); writer->start(); #ifndef SERIO_TESTING /*start processor*/ processor->start(); ivy_dl_thread->start(); pivyloopthread->start(); pjsbsim_thread->start(); #endif return true; }
void octopus_keyboard_device::device_reset() { buffered_rs232_device::device_reset(); set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1); set_rcv_rate(1200); set_tra_rate(9600); receive_register_reset(); transmit_register_reset(); m_enabled = 0; m_delay = 500; // 3*100+200 m_repeat = 110; // 4^2*5+30 stop_processing(); reset_key_state(); typematic_stop(); clear_fifo(); output_dcd(0); output_dsr(0); output_cts(0); output_rxd(1); start_processing(attotime::from_hz(9600)); }
void x68k_keyboard_device::device_reset() { buffered_rs232_device::device_reset(); set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1); set_rate(38'400); // TODO: Should be 2400 but MC68901 doesn't support divide by 16 receive_register_reset(); transmit_register_reset(); m_enabled = 0; m_delay = 500; // 3*100+200 m_repeat = 110; // 4^2*5+30 stop_processing(); reset_key_state(); typematic_stop(); clear_fifo(); output_dcd(0); output_dsr(0); output_cts(0); output_rxd(1); }
void x68k_keyboard_device::received_byte(uint8_t data) { /* Keyboard control commands: 00xxxxxx - TV Control Not of much use as yet 01000xxy - y = Mouse control signal 01001xxy - y = Keyboard enable 010100xy - y = Sharp X1 display compatibility mode 010101xx - xx = LED brightness (00 = bright, 11 = dark) 010110xy - y = Display control enable 010111xy - y = Display control via the Opt. 2 key enable 0110xxxx - xxxx = Key delay (default 500ms) 100 * (delay time) + 200ms 0111xxxx - xxxx = Key repeat rate (default 110ms) (repeat rate)^2*5 + 30ms 1xxxxxxx - xxxxxxx = keyboard LED status b6 = fullwidth b5 = hiragana b4 = insert b3 = caps b2 = code input b1 = romaji b0 = kana */ if (data & 0x80) // LED status { machine().output().set_value("key_led_kana", data & 0x01); machine().output().set_value("key_led_romaji", data & 0x02); machine().output().set_value("key_led_code", data & 0x04); machine().output().set_value("key_led_caps", data & 0x08); machine().output().set_value("key_led_insert", data & 0x10); machine().output().set_value("key_led_hiragana", data & 0x20); machine().output().set_value("key_led_fullsize", data & 0x40); logerror("KB: LED status set to %02x\n", data & 0x7f); } if ((data & 0xc0) == 0) // TV control { // nothing for now } if ((data & 0xf8) == 0x48) // Keyboard enable { m_enabled = data & 0x01; if (m_enabled) start_processing(attotime::from_hz(2'400)); else stop_processing(); logerror("KB: Keyboard enable bit = %i\n", m_enabled); } if ((data & 0xf0) == 0x60) // Key delay time { m_delay = ((data & 0x0f) * 100) + 200; logerror("KB: Keypress delay time is now %ims\n", m_delay); } if ((data & 0xf0) == 0x70) // Key repeat rate { m_repeat = (((data & 0x0f)^2) * 5) + 30; logerror("KB: Keypress repeat rate is now %ims\n", m_repeat); } }