string pop::GetFrom() { string full_message = GetMessage(); string text = ""; int pos = FindStringInArray(full_message, "From: "); if(pos != -1) { full_message = full_message.substr(pos); pos = FindStringInArray(full_message, "\r\n"); if(pos != -1) { text = full_message.substr(0, pos - 2); } } return text; }
string pop::GetMessageText() { string full_message = GetMessage(); string text = ""; int pos = FindStringInArray(full_message, "Content-Type: text/plain"); if(pos != -1) { full_message = full_message.substr(pos); pos = FindStringInArray(full_message, "\r\n\r\n"); if(pos != -1) { text = full_message.substr(pos + 1, full_message.length() - pos - 8); } } return text; }
// Uebersetzung Schrittmotorkarte void switch_Stepper (char * str_rx) { const char* pOptions[] = { // Array mit bekannten Befehlen "#", // 0 - Stepper Karte hat Befehl erkannt "E", // 1 - Stepper Karte meldet Error "!CLS", // 2 - Clear Screen (Debugging) "Test", // 3 - Test (Debugging) 0 }; switch (FindStringInArray(str_rx, pOptions, 1)) { // String gegen bekannte Antworten pruefen case 0: // 0 - Stepper Karte hat Befehl erkannt lcd_puts("Erfolgreich\n"); break; case 1: // 1 - Stepper Karte meldet Error lcd_puts("Error\n"); uart_put_string("1\r\n", D_RapidForm); break; case 2: // 2 - Clear Screen (Debugging) lcd_clrscr(); break; case 3: // 3 - Test (Debugging) lcd_puts("Test bestanden\n"); break; default: ms_spin(10); } }
// Automatische Befehlssatzwahl int switch_Motor (char * str_rx) { const char* pOptions[] = { // Array mit Initialisierungsbefehlen "@01", // 0 - Isel "Q:", // 1 - CSG "ECHO0", // 2 - Zeta "!Terminal", // 3 - Terminal ansteuerung! 0 }; // Ankommenden String gegen Array pruefen switch (FindStringInArray(str_rx, pOptions, 3)) { case 0: // 0 - ISEL return M_ISEL; break; case 1: // 1 - CSG return M_CSG; break; case 2: // 2 - Zeta return M_ZETA; break; case 3: // 3 - Terminal ansteuerung return M_TERMINAL; break; default: return M_UNK; } }
void pop::Retrieve(int num) { //retrieve message char buf[256]; string message; stringstream send; send << "retr " << num << endl; popSocket.Send(send.str()); if(Status()) { while(FindStringInArray(message, "\r\n.\r\n") == -1) { memset(buf, '\0', 256); popSocket.Receive(buf, 256, 0); message += buf; } if(debug) cout << "Message " << num << " retrieved." << endl; current_message = message; } }