teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Revision:
25:a6da63ed025b
Parent:
22:cb832a9bc704
Child:
29:823a9da3696b
--- a/diversos.cpp	Wed Feb 07 23:05:36 2018 +0000
+++ b/diversos.cpp	Mon Apr 16 12:30:29 2018 +0000
@@ -93,6 +93,43 @@
     //--------------------
 }
 
+bool isxdigit(char c){    
+    if((c>47)&&(c<58)){return true;}
+    if((c>64)&&(c<71)){return true;}
+    if((c>96)&&(c<103)){return true;}
+    return false;
+}
+
+void diversos::urldecode2(char *dst, const char *src){
+        char a, b;
+        while (*src) {
+                if ((*src == '%') &&
+                    ((a = src[1]) && (b = src[2])) &&
+                    (isxdigit(a) && isxdigit(b))) {
+                        if (a >= 'a')
+                                a -= 'a'-'A';
+                        if (a >= 'A')
+                                a -= ('A' - 10);
+                        else
+                                a -= '0';
+                        if (b >= 'a')
+                                b -= 'a'-'A';
+                        if (b >= 'A')
+                                b -= ('A' - 10);
+                        else
+                                b -= '0';
+                        *dst++ = 16*a+b;
+                        src+=3;
+                } else if (*src == '+') {
+                        *dst++ = ' ';
+                        src++;
+                } else {
+                        *dst++ = *src++;
+                }
+        }
+        *dst++ = '\0';
+}
+
 void diversos::processaPulsosEDs(){    
     if(ED1){pulsosEDs[0]++;}    
     if(ED2){pulsosEDs[1]++;}