/* * Copyright 2010 Reef Angel / Roberto Imai * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * Updated by: Curt Binder * Updates Released under Apache License, Version 2.0 */ #ifndef __RA_WIFI_H__ #define __RA_WIFI_H__ #include #if defined wifi || defined ETH_WIZ5100 #include #include const prog_char XML_ID[] PROGMEM = ""; const prog_char XML_T1[] PROGMEM = ""; const prog_char XML_T2[] PROGMEM = ""; const prog_char XML_T3[] PROGMEM = ""; const prog_char XML_PH[] PROGMEM = ""; const prog_char XML_R[] PROGMEM = ""; const prog_char XML_RON[] PROGMEM = ""; const prog_char XML_ROFF[] PROGMEM = ""; const prog_char XML_RE_OPEN[] PROGMEM = "= 1 //const prog_char relay11_tag[] PROGMEM = "r11n"; //const prog_char relay12_tag[] PROGMEM = "r12n"; //const prog_char relay13_tag[] PROGMEM = "r13n"; //const prog_char relay14_tag[] PROGMEM = "r14n"; //const prog_char relay15_tag[] PROGMEM = "r15n"; //const prog_char relay16_tag[] PROGMEM = "r16n"; //const prog_char relay17_tag[] PROGMEM = "r17n"; //const prog_char relay18_tag[] PROGMEM = "r18n"; //#endif // InstalledRelayExpansionModules >= 1 //#if InstalledRelayExpansionModules >= 2 //const prog_char relay21_tag[] PROGMEM = "r21n"; //const prog_char relay22_tag[] PROGMEM = "r22n"; //const prog_char relay23_tag[] PROGMEM = "r23n"; //const prog_char relay24_tag[] PROGMEM = "r24n"; //const prog_char relay25_tag[] PROGMEM = "r25n"; //const prog_char relay26_tag[] PROGMEM = "r26n"; //const prog_char relay27_tag[] PROGMEM = "r27n"; //const prog_char relay28_tag[] PROGMEM = "r28n"; //#endif // InstalledRelayExpansionModules >= 2 //#if InstalledRelayExpansionModules >= 3 //const prog_char relay31_tag[] PROGMEM = "r31n"; //const prog_char relay32_tag[] PROGMEM = "r32n"; //const prog_char relay33_tag[] PROGMEM = "r33n"; //const prog_char relay34_tag[] PROGMEM = "r34n"; //const prog_char relay35_tag[] PROGMEM = "r35n"; //const prog_char relay36_tag[] PROGMEM = "r36n"; //const prog_char relay37_tag[] PROGMEM = "r37n"; //const prog_char relay38_tag[] PROGMEM = "r38n"; //#endif // InstalledRelayExpansionModules >= 3 //#if InstalledRelayExpansionModules >= 4 //const prog_char relay41_tag[] PROGMEM = "r41n"; //const prog_char relay42_tag[] PROGMEM = "r42n"; //const prog_char relay43_tag[] PROGMEM = "r43n"; //const prog_char relay44_tag[] PROGMEM = "r44n"; //const prog_char relay45_tag[] PROGMEM = "r45n"; //const prog_char relay46_tag[] PROGMEM = "r46n"; //const prog_char relay47_tag[] PROGMEM = "r47n"; //const prog_char relay48_tag[] PROGMEM = "r48n"; //#endif // InstalledRelayExpansionModules >= 4 //#if InstalledRelayExpansionModules >= 5 //const prog_char relay51_tag[] PROGMEM = "r51n"; //const prog_char relay52_tag[] PROGMEM = "r52n"; //const prog_char relay53_tag[] PROGMEM = "r53n"; //const prog_char relay54_tag[] PROGMEM = "r54n"; //const prog_char relay55_tag[] PROGMEM = "r55n"; //const prog_char relay56_tag[] PROGMEM = "r56n"; //const prog_char relay57_tag[] PROGMEM = "r57n"; //const prog_char relay58_tag[] PROGMEM = "r58n"; //#endif // InstalledRelayExpansionModules >= 5 //#if InstalledRelayExpansionModules >= 6 //const prog_char relay61_tag[] PROGMEM = "r61n"; //const prog_char relay62_tag[] PROGMEM = "r62n"; //const prog_char relay63_tag[] PROGMEM = "r63n"; //const prog_char relay64_tag[] PROGMEM = "r64n"; //const prog_char relay65_tag[] PROGMEM = "r65n"; //const prog_char relay66_tag[] PROGMEM = "r66n"; //const prog_char relay67_tag[] PROGMEM = "r67n"; //const prog_char relay68_tag[] PROGMEM = "r68n"; //#endif // InstalledRelayExpansionModules >= 6 //#if InstalledRelayExpansionModules >= 7 //const prog_char relay71_tag[] PROGMEM = "r71n"; //const prog_char relay72_tag[] PROGMEM = "r72n"; //const prog_char relay73_tag[] PROGMEM = "r73n"; //const prog_char relay74_tag[] PROGMEM = "r74n"; //const prog_char relay75_tag[] PROGMEM = "r75n"; //const prog_char relay76_tag[] PROGMEM = "r76n"; //const prog_char relay77_tag[] PROGMEM = "r77n"; //const prog_char relay78_tag[] PROGMEM = "r78n"; //#endif // InstalledRelayExpansionModules >= 7 //#if InstalledRelayExpansionModules >= 8 //const prog_char relay81_tag[] PROGMEM = "r81n"; //const prog_char relay82_tag[] PROGMEM = "r82n"; //const prog_char relay83_tag[] PROGMEM = "r83n"; //const prog_char relay84_tag[] PROGMEM = "r84n"; //const prog_char relay85_tag[] PROGMEM = "r85n"; //const prog_char relay86_tag[] PROGMEM = "r86n"; //const prog_char relay87_tag[] PROGMEM = "r87n"; //const prog_char relay88_tag[] PROGMEM = "r88n"; //#endif // InstalledRelayExpansionModules >= 8 //#endif // RelayExp //static PROGMEM const char *webbanner_tags[] = { // id_tag, probe1_tag, probe2_tag, probe3_tag, // relay1_tag, relay2_tag, relay3_tag, relay4_tag, relay5_tag, relay6_tag, relay7_tag, relay8_tag, //#ifdef RelayExp //#if InstalledRelayExpansionModules >= 1 // relay11_tag, relay12_tag, relay13_tag, relay14_tag, relay15_tag, relay16_tag, relay17_tag, relay18_tag, //#endif // InstalledRelayExpansionModules >= 1 //#if InstalledRelayExpansionModules >= 2 // relay21_tag, relay22_tag, relay23_tag, relay24_tag, relay25_tag, relay26_tag, relay27_tag, relay28_tag, //#endif // InstalledRelayExpansionModules >= 2 //#if InstalledRelayExpansionModules >= 3 // relay31_tag, relay32_tag, relay33_tag, relay34_tag, relay35_tag, relay36_tag, relay37_tag, relay38_tag, //#endif // InstalledRelayExpansionModules >= 3 //#if InstalledRelayExpansionModules >= 4 // relay41_tag, relay42_tag, relay43_tag, relay44_tag, relay45_tag, relay46_tag, relay47_tag, relay48_tag, //#endif // InstalledRelayExpansionModules >= 4 //#if InstalledRelayExpansionModules >= 5 // relay51_tag, relay52_tag, relay53_tag, relay54_tag, relay55_tag, relay56_tag, relay57_tag, relay58_tag, //#endif // InstalledRelayExpansionModules >= 5 //#if InstalledRelayExpansionModules >= 6 // relay61_tag, relay62_tag, relay63_tag, relay64_tag, relay65_tag, relay66_tag, relay67_tag, relay68_tag, //#endif // InstalledRelayExpansionModules >= 6 //#if InstalledRelayExpansionModules >= 7 // relay71_tag, relay72_tag, relay73_tag, relay74_tag, relay75_tag, relay76_tag, relay77_tag, relay78_tag, //#endif // InstalledRelayExpansionModules >= 7 //#if InstalledRelayExpansionModules >= 8 // relay81_tag, relay82_tag, relay83_tag, relay84_tag, relay85_tag, relay86_tag, relay87_tag, relay88_tag, //#endif // InstalledRelayExpansionModules >= 8 //#endif // RelayExp //}; #endif // wifi class RA_Wifi: public Print { public: RA_Wifi(); void WebResponse (const prog_char* response, long strsize); void ModeResponse(bool fOk); void PushBuffer(byte inStr); void PrintHeader(int s, byte type); char GetC(int c); void ConvertC(char* strIn, char* strOut, byte len); void WifiAuthentication(char* userpass); void SendXMLData(bool fAtoLog = false); #ifndef RA_STANDARD void SendJSONData(); void SendSingleJSON(const prog_char str[], int value, char* suffix=""); void SendSingleJSON(const prog_char str[], char* value); #endif // RA_STANDARD void ProcessHTTP(); void ProcessSerial(); void ReceiveData(); void PROGMEMprint(const prog_char str[]); void LoadWebBanner(int pointer, byte qty); void Portal(char* username); void Portal(char* username, char* key); void DDNS(char* subdomain); void SendPortal(char* username, char* key); inline void CheckWifi(){}; inline void pingSerial(){}; char *portalusername; char *portalkey; char encodeduserpass[50]; char *portalsubdomain; #ifndef ETH_WIZ5100 using Print::write; inline size_t write(uint8_t c) { return _wifiSerial->write((uint8_t)c); } inline size_t write(unsigned long n) { return _wifiSerial->write((uint8_t)n); } inline size_t write(long n) { return _wifiSerial->write((uint8_t)n); } inline size_t write(unsigned int n) { return _wifiSerial->write((uint8_t)n); } inline size_t write(int n) { return _wifiSerial->write((uint8_t)n); } #endif // ETH_WIZ5100 protected: char m_pushback[32]; byte m_pushbackindex; byte reqtype; unsigned long timeout; boolean bIncoming; boolean auth; boolean usingAuth; int weboption; int weboption2; int weboption3; byte bHasSecondValue; //static byte bHasComma; byte bCommaCount; boolean webnegoption; private: #if defined(__SAM3X8E__) UARTClass *_wifiSerial; #else HardwareSerial* _wifiSerial; #endif }; #endif // __RA_WIFI_H__