void RTC_read_alarm(){ int8 RTC_buffer; RTC_buffer = 0; setup_spi(SPI_MASTER|SPI_MODE_0_0|SPI_CLK_DIV_16); output_bit(RTC_CS, ENABLE); RTC_buffer = spi_read(0x0A); RTC_Al_Mon_Reg = spi_read(RTC_buffer); RTC_Al_DOM_Reg = spi_read(RTC_buffer); RTC_Al_Hr_Reg = spi_read(RTC_buffer); RTC_Al_Min_Reg = spi_read(RTC_buffer); RTC_Al_Sec_Reg = spi_read(RTC_buffer); RTC_Flags_Reg = spi_read(RTC_buffer); output_bit(RTC_CS, DISABLE); RTC_Al_Mon_Reg = RTC_Al_Mon_Reg & 0b00011111; RTC_Al_Mon_Reg = Bcd2Dec(RTC_Al_Mon_Reg); RTC_Al_DOM_Reg = RTC_Al_DOM_Reg & 0b00111111; RTC_Al_DOM_Reg = Bcd2Dec(RTC_Al_DOM_Reg); RTC_Al_Hr_Reg = RTC_Al_Hr_Reg & 0b00111111; RTC_Al_Hr_Reg = Bcd2Dec(RTC_Al_Hr_Reg); RTC_Al_Min_Reg = RTC_Al_Min_Reg & 0b01111111; RTC_Al_Min_Reg = Bcd2Dec(RTC_Al_Min_Reg); RTC_Al_Sec_Reg = RTC_Al_Sec_Reg & 0b01111111; RTC_Al_Sec_Reg = Bcd2Dec(RTC_Al_Sec_Reg); }
void RTC_read() { int8 RTC_buffer; RTC_buffer = 0; setup_spi(SPI_MASTER|SPI_MODE_0_0|SPI_CLK_DIV_16); output_bit(RTC_CS, ENABLE); RTC_buffer = spi_read(0x00); RTC_Tenths_Sec_Reg = spi_read(RTC_buffer); RTC_Sec_Reg = spi_read(RTC_buffer); RTC_Min_Reg = spi_read(RTC_buffer); RTC_Hr_Reg = spi_read(RTC_buffer); RTC_DOW_Reg = spi_read(RTC_buffer); RTC_DOM_Reg = spi_read(RTC_buffer); RTC_Mon_Reg = spi_read(RTC_buffer); RTC_Yr_Reg = spi_read(RTC_buffer); output_bit(RTC_CS, DISABLE); RTC_Sec_Reg = Bcd2Dec(RTC_Sec_Reg); RTC_Min_Reg = Bcd2Dec(RTC_Min_Reg); RTC_Hr_Reg = Bcd2Dec(RTC_Hr_Reg); RTC_DOM_Reg = Bcd2Dec(RTC_DOM_Reg); RTC_Mon_Reg = Bcd2Dec(RTC_Mon_Reg); RTC_Yr_Reg = Bcd2Dec(RTC_Yr_Reg); }
datetime_t GetTimeDate() { datetime_t t; datepack_t tp; CdvdClock_t clock; if (!cdReadClock(&clock)) return INVALID_DATETIME_T; tp.Year = Bcd2Dec(clock.year)+2000; tp.Month = Bcd2Dec(clock.month); tp.Day = Bcd2Dec(clock.day); tp.Hour = Bcd2Dec(clock.hour); tp.Minute = Bcd2Dec(clock.minute); tp.Second = Bcd2Dec(clock.second); tp.WeekDay = 0; t = TimePackToRel(&tp,0); if (t != INVALID_DATETIME_T) { t -= 9*60*60; //adjust JST to GMC if (t == INVALID_DATETIME_T) ++t; } return t; }
void CSimCon::Process(SIMCONNECT_RECV *pData, DWORD cbData) { HRESULT hr; switch (pData->dwID) { case SIMCONNECT_RECV_ID_EVENT: { SIMCONNECT_RECV_EVENT *evt = (SIMCONNECT_RECV_EVENT*)pData; switch (evt->uEventID) { case EVENT_UP_FLAPS: case EVENT_DN_FLAPS: { wxLogMessage(wxString::Format(_T("Flaps Event Receive: %d"), evt->dwData)); break; } case EVENT_MENU: { wxLogMessage(_T("Menu Event Triggered")); break; } case EVENT_MENU_COM: { wxLogMessage(_T("Menu COM Triggered")); break; } default: { wxLogMessage(wxString::Format(_T("Receive Event : %d"), evt->uEventID)); break; } } break; } case SIMCONNECT_RECV_ID_SIMOBJECT_DATA: { SIMCONNECT_RECV_SIMOBJECT_DATA *pObjData = (SIMCONNECT_RECV_SIMOBJECT_DATA*)pData; switch (pObjData->dwRequestID) { case REQUEST_NAV: { float fNAV1, fNAV2; DWORD ObjectID = pObjData->dwObjectID; FSNAVFREQ *pS = (FSNAVFREQ*)&pObjData->dwData; fNAV1 = Bcd2Dec(pS->NAV1) / 10000.0; fNAV2 = Bcd2Dec (pS->NAV2) / 10000.0; //wxLogMessage (wxString::Format(_("Receive Nav1=%f Nav2=%f"),fNAV1,fNAV2)); CPaquet Data; Data.AddByte ((UINT8)1); //Slave Data.AddByte(FFS_NAV); //Fonction Data.AddFloat(fNAV1); Data.AddFloat(fNAV2); SerialCtrl->Send(Data); break; } case REQUEST_ALT: { UINT32 iALT; DWORD ObjectID = pObjData->dwObjectID; iALT = pObjData->dwData; wxLogMessage (wxString::Format(_("Receive Alt=%i"),iALT)); CPaquet Data; Data.AddByte ((UINT8)2); //Slave Data.AddByte (FFS_ALT); //Fonction Data.AddDWord (iALT); SerialCtrl->Send (Data); break; } default: { break; } } break; } case SIMCONNECT_RECV_ID_QUIT: { wxLogMessage(_T("Close Event Received")); Connect(false); break; } case SIMCONNECT_RECV_ID_EXCEPTION: { wxLogMessage(_("Exception received")); SIMCONNECT_RECV_EXCEPTION *except = (SIMCONNECT_RECV_EXCEPTION*)pData; break; } case SIMCONNECT_RECV_ID_OPEN: { wxLogMessage(_("Open Event received")); break; } default: { wxLogMessage(wxString::Format(_T("Received: %d"),pData->dwID)); break; } } }