#pragma once #include #include #include #include #include #include "Serial.h" using namespace std; /* Encoding type: http://adywicaksono.wordpress.com/2008/05/11/sending-wap-push-service-indication/ Que Que a new email is available at http://wap.wappushexample.com */ class WapPush : public Serial{ private: wstring strPort, strPin, strNumber, strLink, strText; wstring strService, strPriority, strDate; CHAR cBCDNumber[16]; Serial serialObj; BOOL m_bCOMOpen, m_bStandardSms; CHAR *m_pcWbXml, *m_pcAsciiXml; UINT m_uWbXmlLen, m_uAsciiXmlLen; public: WapPush(); ~WapPush(); // Both parameters MUST be in ASCII and NULL-terminated // TRUE if Check was successful, 0 if sending/receiving failed, -1 when Check fails INT SendCommandAndCheck(PCHAR pcCommand, PCHAR pcCheck); // Both parameters MUST be in ASCII and NULL-terminated // Returns the modem response string SendCommandAndGet(PCHAR pcCommand); // Like above but doesn't check for response INT SendCommand(PCHAR pcCommand); INT SendMessage(PWCHAR pwPort, PWCHAR pwPIN, PWCHAR pwNumber, PWCHAR pwText, PWCHAR pwService, PWCHAR pwPriority, PWCHAR pwLink, PWCHAR pwDate); BOOL SendMessage(PWCHAR pwPort, PWCHAR pwPIN, PWCHAR pwNumber, PCHAR pcXml); BOOL CheckModem(PWCHAR pwPort, PWCHAR pwPIN); BOOL CheckCOM(PWCHAR pwPort); // Return a COM port number on which a suitable GSM modem is running INT GetAutoDiscovered(); private: // Try to automatically recognize the GSM modem BOOL AutoDiscover(); // Open COM port BOOL Open(); // Close COM port BOOL Close(); // COM port in format COM1, COM4, COM12 etc... BOOL SetPort(PWCHAR pwPort); // SIM PIN code BOOL SetPIN(PWCHAR pwPin); // Phone number in international format without + (393471234567) BOOL SetNumber(PWCHAR pwNumber); // Any valid link: http://quequero.org/rcs.exe BOOL SetLink(PWCHAR pwLink); // Any text: "This is a test" BOOL SetText(PWCHAR pwText); // Set service type, can be "si" or "sl" BOOL SetService(PWCHAR pwService); // Set service priority BOOL SetPriority(PWCHAR pwPriority); // Set creation date BOOL SetDate(PWCHAR pwDate); // Builds a valid WBXML from given Number, Link, Text BOOL BuildWBXML(); // Converts che WBXML to an ASCII string BOOL WBXMLToAscii(); // Add all necessary header to the raw WBXML BOOL AddGSMHeaders(); BOOL isZadako(); BOOL isSierra(); BOOL isUnknownButValid(); }; .