private fork
Fork of GSwifiInterface by
GSwifi/GSwifi_util.cpp@8:64184a968e3b, 2013-10-31 (annotated)
- Committer:
- gsfan
- Date:
- Thu Oct 31 06:41:45 2013 +0000
- Revision:
- 8:64184a968e3b
- Child:
- 11:71d67fea5ace
supported mbed RTOS
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gsfan | 8:64184a968e3b | 1 | /* Copyright (C) 2013 gsfan, MIT License |
gsfan | 8:64184a968e3b | 2 | * |
gsfan | 8:64184a968e3b | 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software |
gsfan | 8:64184a968e3b | 4 | * and associated documentation files (the "Software"), to deal in the Software without restriction, |
gsfan | 8:64184a968e3b | 5 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, |
gsfan | 8:64184a968e3b | 6 | * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is |
gsfan | 8:64184a968e3b | 7 | * furnished to do so, subject to the following conditions: |
gsfan | 8:64184a968e3b | 8 | * |
gsfan | 8:64184a968e3b | 9 | * The above copyright notice and this permission notice shall be included in all copies or |
gsfan | 8:64184a968e3b | 10 | * substantial portions of the Software. |
gsfan | 8:64184a968e3b | 11 | * |
gsfan | 8:64184a968e3b | 12 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
gsfan | 8:64184a968e3b | 13 | * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
gsfan | 8:64184a968e3b | 14 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
gsfan | 8:64184a968e3b | 15 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
gsfan | 8:64184a968e3b | 16 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
gsfan | 8:64184a968e3b | 17 | */ |
gsfan | 8:64184a968e3b | 18 | |
gsfan | 8:64184a968e3b | 19 | #include "GSwifi.h" |
gsfan | 8:64184a968e3b | 20 | |
gsfan | 8:64184a968e3b | 21 | int GSwifi::x2i (char c) { |
gsfan | 8:64184a968e3b | 22 | if (c >= '0' && c <= '9') { |
gsfan | 8:64184a968e3b | 23 | return c - '0'; |
gsfan | 8:64184a968e3b | 24 | } else |
gsfan | 8:64184a968e3b | 25 | if (c >= 'A' && c <= 'F') { |
gsfan | 8:64184a968e3b | 26 | return c - 'A' + 10; |
gsfan | 8:64184a968e3b | 27 | } else |
gsfan | 8:64184a968e3b | 28 | if (c >= 'a' && c <= 'f') { |
gsfan | 8:64184a968e3b | 29 | return c - 'a' + 10; |
gsfan | 8:64184a968e3b | 30 | } |
gsfan | 8:64184a968e3b | 31 | return 0; |
gsfan | 8:64184a968e3b | 32 | } |
gsfan | 8:64184a968e3b | 33 | |
gsfan | 8:64184a968e3b | 34 | char GSwifi::i2x (int i) { |
gsfan | 8:64184a968e3b | 35 | if (i >= 0 && i <= 9) { |
gsfan | 8:64184a968e3b | 36 | return i + '0'; |
gsfan | 8:64184a968e3b | 37 | } else |
gsfan | 8:64184a968e3b | 38 | if (i >= 10 && i <= 15) { |
gsfan | 8:64184a968e3b | 39 | return i - 10 + 'A'; |
gsfan | 8:64184a968e3b | 40 | } |
gsfan | 8:64184a968e3b | 41 | return 0; |
gsfan | 8:64184a968e3b | 42 | } |
gsfan | 8:64184a968e3b | 43 | |
gsfan | 8:64184a968e3b | 44 | int GSwifi::from_hex (int ch) { |
gsfan | 8:64184a968e3b | 45 | return isdigit(ch) ? ch - '0' : tolower(ch) - 'a' + 10; |
gsfan | 8:64184a968e3b | 46 | } |
gsfan | 8:64184a968e3b | 47 | |
gsfan | 8:64184a968e3b | 48 | int GSwifi::to_hex (int code) { |
gsfan | 8:64184a968e3b | 49 | static char hex[] = "0123456789abcdef"; |
gsfan | 8:64184a968e3b | 50 | return hex[code & 15]; |
gsfan | 8:64184a968e3b | 51 | } |
gsfan | 8:64184a968e3b | 52 | |
gsfan | 8:64184a968e3b | 53 | |
gsfan | 8:64184a968e3b | 54 | int GSwifi::setRegion (int reg) { |
gsfan | 8:64184a968e3b | 55 | return cmdWREGDOMAIN(reg); |
gsfan | 8:64184a968e3b | 56 | } |
gsfan | 8:64184a968e3b | 57 | |
gsfan | 8:64184a968e3b | 58 | int GSwifi::getRssi () { |
gsfan | 8:64184a968e3b | 59 | cmdWRSSI(); |
gsfan | 8:64184a968e3b | 60 | return _state.rssi; |
gsfan | 8:64184a968e3b | 61 | } |
gsfan | 8:64184a968e3b | 62 | |
gsfan | 8:64184a968e3b | 63 | int GSwifi::powerSave (int active, int save) { |
gsfan | 8:64184a968e3b | 64 | cmdWRXACTIVE(active); |
gsfan | 8:64184a968e3b | 65 | return cmdWRXPS(save); |
gsfan | 8:64184a968e3b | 66 | } |
gsfan | 8:64184a968e3b | 67 | |
gsfan | 8:64184a968e3b | 68 | int GSwifi::setRfPower (int power) { |
gsfan | 8:64184a968e3b | 69 | if (power < 0 || power > 7) return false; |
gsfan | 8:64184a968e3b | 70 | return cmdWP(power); |
gsfan | 8:64184a968e3b | 71 | } |
gsfan | 8:64184a968e3b | 72 | |
gsfan | 8:64184a968e3b | 73 | int GSwifi::setTime (time_t time) { |
gsfan | 8:64184a968e3b | 74 | char dmy[16], hms[16]; |
gsfan | 8:64184a968e3b | 75 | struct tm *t = localtime(&time); |
gsfan | 8:64184a968e3b | 76 | |
gsfan | 8:64184a968e3b | 77 | sprintf(dmy, "%d/%d/%d", t->tm_mday, t->tm_mon + 1, t->tm_year + 1900); |
gsfan | 8:64184a968e3b | 78 | sprintf(hms, "%d:%d:%d", t->tm_hour, t->tm_min, t->tm_sec); |
gsfan | 8:64184a968e3b | 79 | return cmdSETTIME(dmy, hms); |
gsfan | 8:64184a968e3b | 80 | } |
gsfan | 8:64184a968e3b | 81 | |
gsfan | 8:64184a968e3b | 82 | time_t GSwifi::getTime () { |
gsfan | 8:64184a968e3b | 83 | cmdGETTIME(); |
gsfan | 8:64184a968e3b | 84 | return _state.time; |
gsfan | 8:64184a968e3b | 85 | } |
gsfan | 8:64184a968e3b | 86 | |
gsfan | 8:64184a968e3b | 87 | int GSwifi::ntpdate (char *host, int sec) { |
gsfan | 8:64184a968e3b | 88 | char ip[17]; |
gsfan | 8:64184a968e3b | 89 | |
gsfan | 8:64184a968e3b | 90 | if (getHostByName(host, ip)) return -1; |
gsfan | 8:64184a968e3b | 91 | return cmdNTIMESYNC(true, ip, sec); |
gsfan | 8:64184a968e3b | 92 | } |
gsfan | 8:64184a968e3b | 93 | |
gsfan | 8:64184a968e3b | 94 | int GSwifi::setGpio (int port, int out) { |
gsfan | 8:64184a968e3b | 95 | return cmdDGPIO(port, out); |
gsfan | 8:64184a968e3b | 96 | } |
gsfan | 8:64184a968e3b | 97 | |
gsfan | 8:64184a968e3b | 98 | int GSwifi::provisioning (char *user, char *pass) { |
gsfan | 8:64184a968e3b | 99 | return cmdWEBPROV(user, pass); |
gsfan | 8:64184a968e3b | 100 | } |