task main() { initialize(BLUE_S); //Which way does the robot start pointing? autoReset(0); // 0 = Start, 1 = Finish #include "routine.c" autoReset(1); for (int j=0; j<10; j++) motor[j]=0; while(true) {} }
BOOL CXTPCalendarRemindersManager::ProcessActiveReminders(COleDateTime dtTime) { CXTPAutoResetValue<BOOL> autoReset(m_bSkipOnEventChanged, FALSE); m_bSkipOnEventChanged = TRUE; BOOL bChanged = FALSE; int nCount = m_arWaitingReminders.GetCount(); for (int i = nCount-1; i >= 0 ; i--) { CXTPCalendarReminder* pRmdI = m_arWaitingReminders.GetAt(i, FALSE); if (pRmdI->m_dtNextReminderTime <= dtTime) { m_arActiveReminders.Add(pRmdI, TRUE); m_arWaitingReminders.RemoveAt(i); bChanged = TRUE; _RemoveSnoozeData(pRmdI); } } if (bChanged) m_arActiveReminders.Sort(); return bChanged; }
BOOL CXTPCalendarRemindersManager::_Dismiss(CXTPCalendarReminder* pReminder) { CXTPCalendarEventPtr ptrEvent = pReminder ? pReminder->GetEvent() : NULL; if (!pReminder || !ptrEvent) { ASSERT(FALSE); return FALSE; } CXTPAutoResetValue<BOOL> autoReset(m_bSkipOnEventChanged, FALSE); m_bSkipOnEventChanged = TRUE; if (ptrEvent->GetRecurrenceState() == xtpCalendarRecurrenceOccurrence) { CXTPCalendarRecurrencePatternPtr ptrPattern = ptrEvent->GetRecurrencePattern(); CXTPCalendarEventPtr ptrMaster = ptrPattern ? ptrPattern->GetMasterEvent() : NULL; if (ptrMaster) { ptrPattern->SetOccReminder(ptrEvent, FALSE); VERIFY( ptrMaster->UpdateRecurrence(ptrPattern) ); VERIFY( XTP_SAFE_GET1(ptrMaster->GetDataProvider(), ChangeEvent(ptrMaster), FALSE) ); } } else { ptrEvent->SetReminder(FALSE); //ptrEvent->GetCustomProperties()->RemoveProperty(cszEventCustProp_NextReminderTime_Snoozed); VERIFY( XTP_SAFE_GET1(ptrEvent->GetDataProvider(), ChangeEvent(ptrEvent), FALSE) ); } return TRUE; }
const AuthToken AuthManager::Authenticate( const std::string& username, const std::string& password, const std::string& ip ) { kode::db::AutoReset autoReset( m_pCheckLoginStatement ); m_pCheckLoginStatement->Bind( "@Username", username ); if( m_pCheckLoginStatement->GetNextRow() ) { int nID = m_pCheckLoginStatement->GetColumn<int>( 0 ); std::string encodedHash = m_pCheckLoginStatement->GetColumn<std::string>( 1 ); std::vector< unsigned char > passwordHash( CryptoPP::SHA::DIGESTSIZE ); kode::base64::Decode( encodedHash, passwordHash ); // // Now we need to confirm the passwords match // unsigned char hashBuffer[ CryptoPP::SHA::DIGESTSIZE ]; CryptoPP::HMAC< CryptoPP::SHA >( m_salt, sizeof( m_salt ) ) .CalculateDigest( hashBuffer, &passwordHash[0], passwordHash.size() ); std::string hmac = kode::base64::Encode( hashBuffer, sizeof( hashBuffer ) ); if( hmac != password ) throw authentication_exception( "Invalid username or password" ); return AuthToken( username, nID, AuthToken::AccessLevel_Admin ); } throw authentication_exception( "Invalid username or password" ); }
task main() { initialize(N_EAST); //Which way does the robot start pointing? autoReset(0); // 0 = Start, 1 = Finish // TYPE, Left, Right, Other, End Type, Delay auto(CMP_2, RHT_45, FULL, LOW_SH, DRIV_READY, PID); //Turn toward S dispenser auto(STR, EAST, 11300, LOW_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, LFT_90, FULL, LOW_SH, DRIV_READY, PID); //Turn to hooks auto(STR, NORTH, 9150, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, NORTH, -7200, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7200, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, NORTH, -7200, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7150, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, NORTH, -1000, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 1350, FULL, LOW_LV, DRIV_READY, PID); //Turn to get around pole auto(STR, S_EAST, -5000, LOW_LV, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, LOW_LV, DRIV_READY, PID); //Turn to get around pole auto(STR, S_WEST, -2300, LOW_LV, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, LOW_LV, DRIV_READY, PID); //Align with S wall auto(STR, SOUTH, -7300, LOW_LV, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7400, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, SOUTH, -7500, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7100, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, SOUTH, -7300, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7200, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, SOUTH, -7900, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, 3600, 9500, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(CMP_2, -1350, FULL, LOW_OP, DRIV_READY, PID); //Turn away from corner hook auto(STR, SOUTH, 9800, DRP_OP, DRIV_READY, NEXT); //Forward auto(CMP_2, -250, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, 2450, 9000, DRP_SH, DRIV_READY, NEXT); //Forward - ^ auto(STR, 2450, -9000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 250, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, SOUTH, 4000, DRP_SH, DRIV_READY, NEXT); //Forward - > auto(STR, SOUTH, -5000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, S_EAST, 8500, DRP_SH, DRIV_READY, NEXT); //Forward - < auto(STR, S_EAST, -8500, DRP_OP, DRIV_READY, NEXT); //Backward auto(STR, S_EAST, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - v auto(STR, S_EAST, -3000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_OP, DRIV_READY, PID); //Turn toward E dispenser auto(STR, EAST, 10000, DRP_SH, DRIV_READY, NEXT); //Forward across field auto(STR, EAST, 10000, DRP_SH, DRIV_READY, NEXT); //Forward across field auto(CMP_2, -1150, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, 650, 7000, DRP_SH, DRIV_READY, NEXT); //Forward - ^ auto(STR, 650, -7000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 250, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, NORTH, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - > auto(STR, NORTH, -5000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, N_WEST, 7000, DRP_SH, DRIV_READY, NEXT); //Forward - < auto(STR, N_WEST, -7000, DRP_OP, DRIV_READY, NEXT); //Backward auto(STR, N_WEST, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - v auto(STR, N_WEST, -3000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn auto(STR, N_EAST, -12800, CRN_SH, DRIV_READY, NEXT); //Backward to last dispenser auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, EAST, 9200, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(STR, S_EAST, -850, CRN_OP, DRIV_READY, 300); //Let go autoReset(1); while(1==1) {zeroMotors(); output();} }
BOOL CXTPCalendarRemindersManager::Snooze(CXTPCalendarReminder* pReminder, int nMinutesAfterNow) { const int cnMaxSnoozeMinutes = (60*24*365) * 1000; // 1000 years // WARNING. no sense to snooze before now. ASSERT(nMinutesAfterNow >= 1); // WARNING. do you really need to snooze so far. ASSERT(nMinutesAfterNow <= cnMaxSnoozeMinutes); nMinutesAfterNow = max(1, min(nMinutesAfterNow, cnMaxSnoozeMinutes)); CXTPCalendarEventPtr ptrEvent = pReminder ? pReminder->GetEvent() : NULL; if (!pReminder || !ptrEvent) { ASSERT(FALSE); return FALSE; } pReminder->m_dtNextReminderTime = CXTPCalendarUtils::GetCurrentTime(); pReminder->m_dtNextReminderTime += CXTPCalendarUtils::Minutes2Span(nMinutesAfterNow); m_arWaitingReminders.Add(pReminder, TRUE); int nIdx = m_arActiveReminders.Find(pReminder); if (nIdx >= 0) { m_arActiveReminders.RemoveAt(nIdx); } CXTPAutoResetValue<BOOL> autoReset(m_bSkipOnEventChanged, FALSE); m_bSkipOnEventChanged = TRUE; if (ptrEvent->GetRecurrenceState() == xtpCalendarRecurrenceOccurrence) { CXTPCalendarRecurrencePatternPtr ptrPattern = ptrEvent->GetRecurrencePattern(); CXTPCalendarEventPtr ptrMaster = ptrPattern ? ptrPattern->GetMasterEvent() : NULL; if (ptrMaster) { ptrPattern->SetOccReminder(ptrEvent, xtpCalendarRmdPrm_DontChange, (DATE)pReminder->m_dtNextReminderTime); VERIFY( ptrMaster->UpdateRecurrence(ptrPattern) ); VERIFY( XTP_SAFE_GET1(ptrMaster->GetDataProvider(), ChangeEvent(ptrMaster), FALSE) ); } } else { VERIFY( ptrEvent->GetCustomProperties()->SetProperty( cszEventCustProp_NextReminderTime_Snoozed, (DATE)pReminder->m_dtNextReminderTime) ); VERIFY( XTP_SAFE_GET1(ptrEvent->GetDataProvider(), ChangeEvent(ptrEvent), FALSE) ); } NotifyReminders(xtpCalendarReminderSnoozed, (LPARAM)pReminder); return TRUE; }
task main() { initialize(N_EAST); //Which way does the robot start pointing? autoReset(START); // TYPE, Left, Right, Other, End Type, Delay auto(CMP_2, RHT_45, FULL, LOW_SH, DRIV_READY, PID); //Turn toward S dispenser auto(STR, EAST, 11300, LOW_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, LFT_90, FULL, LOW_SH, DRIV_READY, PID); //Turn to SE hooks auto(STR, NORTH, 9150, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, NORTH, -7200, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7200, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, NORTH, -7200, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7150, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, NORTH, -7200, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, EAST, 8100, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(STR, S_EAST, 1600, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, -1350, FULL, CRN_OP, DRIV_READY, PID); //Turn toward E dispenser auto(STR, NORTH, 10400, DRP_SH, DRIV_READY, NEXT); //Forward - E dispenser to 4 tiles auto(CMP_2, -250, FULL, DRP_OP, DRIV_READY, PID); //Turn auto(STR, 650, 8000, DRP_SH, DRIV_READY, NEXT); //Forward - N Tile auto(STR, 650, -4000, DRP_SH, DRIV_READY, NEXT); //Backward auto(STR, 650, -4000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, -200, FULL, DRP_OP, DRIV_READY, PID); //Turn auto(STR, N_WEST, 8300, DRP_SH, DRIV_READY, NEXT); //Forward - W Tile auto(STR, N_WEST, -3300, DRP_SH, DRIV_READY, NEXT); //Backward auto(CMP_2, 1350, FULL, DRP_SH, DRIV_READY, PID); //Turn - Straight back auto(STR, EAST, -2200, DRP_SH, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_45, FULL, DRP_OP, DRIV_READY, PID); //Turn - 45 curve auto(STR, S_EAST, -6620, DRP_SH, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_45, FULL, DRP_SH, DRIV_READY, PID); //Turn - Align auto(STR, SOUTH, -2420, LOW_LV, DRIV_READY, NEXT); //Backward - N dispenser to NW hooks auto(STR, SOUTH, 7900, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, SOUTH, -7800, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7400, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, SOUTH, -7600, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7500, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, SOUTH, -7500, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, 3600, 8850, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(STR, 4050, 1000, CRN_SH, DRIV_READY, NEXT); //Let go auto(CMP_2, -1350, FULL, CRN_OP, DRIV_READY, NEXT); //Turn toward W dispenser auto(STR, SOUTH, 10400, DRP_SH, DRIV_READY, NEXT); //Forward - E dispenser to 4 tiles auto(CMP_2, -250, FULL, DRP_OP, DRIV_READY, NEXT); //Turn auto(STR, 2450, 8000, DRP_SH, DRIV_READY, NEXT); //Forward - N Tile auto(STR, 2450, -4000, DRP_SH, DRIV_READY, NEXT); //Backward auto(STR, 2450, -4000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 250, FULL, DRP_SH, DRIV_READY, NEXT); //Turn auto(STR, SOUTH, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - E Tile auto(STR, SOUTH, -4000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_SH, DRIV_READY, NEXT); //Turn auto(STR, S_EAST, 8300, DRP_SH, DRIV_READY, NEXT); //Forward - W Tile auto(STR, S_EAST, -8300, DRP_OP, DRIV_READY, NEXT); //Backward auto(STR, S_EAST, 2200, DRP_SH, DRIV_READY, NEXT); //Forward - S Tile auto(STR, S_EAST, -200, DRP_OP, DRIV_READY, NEXT); //Backward autoReset(FINISH); while(1==1) {zeroMotors(); output(); wait1Msec(10);} }