This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Sun Apr 21 01:21:41 2013 +0000
Revision:
13:a71705c5e6fd
Parent:
12:efe841863fc8
Child:
48:00d211aac2ec
a lot changes.; add format text reader. ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 0:142ee8b12fef 1 /*********************************************************************************
nyatla 0:142ee8b12fef 2 * PROJECT: MiMic
nyatla 0:142ee8b12fef 3 * --------------------------------------------------------------------------------
nyatla 0:142ee8b12fef 4 *
nyatla 0:142ee8b12fef 5 * This file is part of MiMic
nyatla 0:142ee8b12fef 6 * Copyright (C)2011 Ryo Iizuka
nyatla 0:142ee8b12fef 7 *
nyatla 0:142ee8b12fef 8 * MiMic is free software: you can redistribute it and/or modify
nyatla 0:142ee8b12fef 9 * it under the terms of the GNU Lesser General Public License as published
nyatla 0:142ee8b12fef 10 * by the Free Software Foundation, either version 3 of the License, or
nyatla 0:142ee8b12fef 11 * (at your option) any later version.
nyatla 0:142ee8b12fef 12 *
nyatla 0:142ee8b12fef 13 * This program is distributed in the hope that it will be useful,
nyatla 0:142ee8b12fef 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nyatla 0:142ee8b12fef 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nyatla 0:142ee8b12fef 16 * GNU General Public License for more details.
nyatla 0:142ee8b12fef 17 *
nyatla 0:142ee8b12fef 18 * You should have received a copy of the GNU Lesser General Public License
nyatla 0:142ee8b12fef 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
nyatla 0:142ee8b12fef 20 *
nyatla 0:142ee8b12fef 21 * For further information please contact.
nyatla 0:142ee8b12fef 22 * http://nyatla.jp/
nyatla 0:142ee8b12fef 23 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>
nyatla 0:142ee8b12fef 24 *
nyatla 0:142ee8b12fef 25 *********************************************************************************/
nyatla 0:142ee8b12fef 26 #include "NyLPC_stdlib.h"
nyatla 11:c82a7b2899b0 27
nyatla 0:142ee8b12fef 28 NyLPC_TUInt32 NyLPC_TUInt32_bswap(NyLPC_TUInt32 n)
nyatla 0:142ee8b12fef 29 {
nyatla 0:142ee8b12fef 30 return(
nyatla 0:142ee8b12fef 31 ((((NyLPC_TUInt32)(n))<<24)&0xff000000)|
nyatla 0:142ee8b12fef 32 ((((NyLPC_TUInt32)(n))<< 8)&0x00ff0000)|
nyatla 0:142ee8b12fef 33 ((((NyLPC_TUInt32)(n))>> 8)&0x0000ff00)|
nyatla 0:142ee8b12fef 34 ((((NyLPC_TUInt32)(n))>>24)&0x000000ff));
nyatla 0:142ee8b12fef 35 }
nyatla 0:142ee8b12fef 36 NyLPC_TUInt16 NyLPC_TUInt16_bswap(NyLPC_TUInt16 n)
nyatla 0:142ee8b12fef 37 {
nyatla 0:142ee8b12fef 38 return NyLPC_TUInt16_BSWAP(n);
nyatla 0:142ee8b12fef 39 }
nyatla 0:142ee8b12fef 40
nyatla 0:142ee8b12fef 41 static int _line_log_l;
nyatla 0:142ee8b12fef 42 static const char* _line_log_m;
nyatla 0:142ee8b12fef 43 unsigned int NyLPC_assert_counter=0;
nyatla 0:142ee8b12fef 44 unsigned int NyLPC_abort_counter=0;
nyatla 0:142ee8b12fef 45 unsigned int NyLPC_debug_counter=0;
nyatla 0:142ee8b12fef 46
nyatla 0:142ee8b12fef 47 void NyLPC_assertHook(const char* m,int l)
nyatla 0:142ee8b12fef 48 {
nyatla 0:142ee8b12fef 49 _line_log_l=l;
nyatla 0:142ee8b12fef 50 _line_log_m=m;
nyatla 0:142ee8b12fef 51 NyLPC_assert_counter++;
nyatla 0:142ee8b12fef 52 return;
nyatla 0:142ee8b12fef 53 }
nyatla 0:142ee8b12fef 54 void NyLPC_abortHook(const char* m,int l)
nyatla 0:142ee8b12fef 55 {
nyatla 0:142ee8b12fef 56 _line_log_l=l;
nyatla 0:142ee8b12fef 57 _line_log_m=m;
nyatla 0:142ee8b12fef 58 NyLPC_abort_counter++;
nyatla 0:142ee8b12fef 59 }
nyatla 0:142ee8b12fef 60 void NyLPC_debugHook(const char* m,int l)
nyatla 0:142ee8b12fef 61 {
nyatla 0:142ee8b12fef 62 _line_log_l=l;
nyatla 0:142ee8b12fef 63 _line_log_m=m;
nyatla 0:142ee8b12fef 64 NyLPC_debug_counter++;
nyatla 0:142ee8b12fef 65 return;
nyatla 0:142ee8b12fef 66 }
nyatla 0:142ee8b12fef 67
nyatla 0:142ee8b12fef 68 NyLPC_TBool NyLPC_TCharArrayPtr_seek(struct NyLPC_TCharArrayPtr* i_struct,NyLPC_TUInt16 i_seek)
nyatla 0:142ee8b12fef 69 {
nyatla 0:142ee8b12fef 70 if(i_struct->len<i_seek){
nyatla 0:142ee8b12fef 71 return NyLPC_TBool_FALSE;
nyatla 0:142ee8b12fef 72 }
nyatla 0:142ee8b12fef 73 i_struct->ptr+=i_seek;
nyatla 0:142ee8b12fef 74 i_struct->len-=i_seek;
nyatla 0:142ee8b12fef 75 return NyLPC_TBool_TRUE;
nyatla 0:142ee8b12fef 76 }
nyatla 0:142ee8b12fef 77
nyatla 0:142ee8b12fef 78 NyLPC_TBool NyLPC_TUInt32ArrayPtr_seek(struct NyLPC_TUInt32ArrayPtr* i_struct,NyLPC_TUInt16 i_seek)
nyatla 0:142ee8b12fef 79 {
nyatla 0:142ee8b12fef 80 if(i_struct->len<i_seek){
nyatla 0:142ee8b12fef 81 return NyLPC_TBool_FALSE;
nyatla 0:142ee8b12fef 82 }
nyatla 0:142ee8b12fef 83 i_struct->ptr+=i_seek;
nyatla 0:142ee8b12fef 84 i_struct->len-=i_seek;
nyatla 0:142ee8b12fef 85 return NyLPC_TBool_TRUE;
nyatla 0:142ee8b12fef 86 }
nyatla 0:142ee8b12fef 87 void NyLPC_TUInt32ArrayPtr_setBuf(struct NyLPC_TUInt32ArrayPtr* i_struct,NyLPC_TUInt32* i_ptr,NyLPC_TUInt16 i_len)
nyatla 0:142ee8b12fef 88 {
nyatla 0:142ee8b12fef 89 i_struct->ptr=i_ptr;
nyatla 0:142ee8b12fef 90 i_struct->len=i_len;
nyatla 0:142ee8b12fef 91 }
nyatla 0:142ee8b12fef 92
nyatla 2:b96c1e90d120 93
nyatla 2:b96c1e90d120 94 /** ----------
nyatla 2:b96c1e90d120 95 * NyLPC_TTextIdTbl
nyatla 2:b96c1e90d120 96 ---------- */
nyatla 2:b96c1e90d120 97
nyatla 2:b96c1e90d120 98 /**
nyatla 2:b96c1e90d120 99 * IDテーブル
nyatla 2:b96c1e90d120 100 */
nyatla 2:b96c1e90d120 101
nyatla 2:b96c1e90d120 102 NyLPC_TUInt8 NyLPC_TTextIdTbl_getMatchId(const NyLPC_TChar* i_str,const struct NyLPC_TTextIdTbl i_tbl[])
nyatla 2:b96c1e90d120 103 {
nyatla 2:b96c1e90d120 104 int i;
nyatla 2:b96c1e90d120 105 for(i=0;i_tbl[i].n!=NULL;i++){
nyatla 2:b96c1e90d120 106 if(strcmp(i_str,i_tbl[i].n)==0){
nyatla 2:b96c1e90d120 107 break;
nyatla 2:b96c1e90d120 108 }
nyatla 2:b96c1e90d120 109 }
nyatla 2:b96c1e90d120 110 return i_tbl[i].id;
nyatla 2:b96c1e90d120 111 }
nyatla 2:b96c1e90d120 112
nyatla 2:b96c1e90d120 113
nyatla 2:b96c1e90d120 114
nyatla 2:b96c1e90d120 115
nyatla 2:b96c1e90d120 116 /** ----------
nyatla 11:c82a7b2899b0 117 * Standard functions
nyatla 2:b96c1e90d120 118 ---------- */
nyatla 2:b96c1e90d120 119
nyatla 2:b96c1e90d120 120
nyatla 2:b96c1e90d120 121
nyatla 11:c82a7b2899b0 122 /**
nyatla 11:c82a7b2899b0 123 * same as itoa
nyatla 11:c82a7b2899b0 124 */
nyatla 0:142ee8b12fef 125 void NyLPC_itoa(int i_n,char* o_out,int i_digit)
nyatla 0:142ee8b12fef 126 {
nyatla 13:a71705c5e6fd 127 int i, sign,v;
nyatla 0:142ee8b12fef 128 if ((sign = i_n) < 0){
nyatla 0:142ee8b12fef 129 i_n = -i_n;
nyatla 0:142ee8b12fef 130 }
nyatla 0:142ee8b12fef 131 i = 0;
nyatla 0:142ee8b12fef 132 do{
nyatla 13:a71705c5e6fd 133 v=i_n % i_digit;
nyatla 13:a71705c5e6fd 134 o_out[i++] = v<10?(v+'0'):(v+'a'-10);
nyatla 13:a71705c5e6fd 135 }while ((i_n /= i_digit) > 0);
nyatla 0:142ee8b12fef 136 if (sign < 0){
nyatla 0:142ee8b12fef 137 o_out[i++] = '-';
nyatla 0:142ee8b12fef 138 }
nyatla 0:142ee8b12fef 139 o_out[i] = '\0';
nyatla 0:142ee8b12fef 140 NyLPC_reverse(o_out);
nyatla 0:142ee8b12fef 141 }
nyatla 13:a71705c5e6fd 142 void NyLPC_uitoa(int i_n,char* o_out,unsigned int i_digit)
nyatla 13:a71705c5e6fd 143 {
nyatla 13:a71705c5e6fd 144 int i = 0;
nyatla 13:a71705c5e6fd 145 int v;
nyatla 13:a71705c5e6fd 146 do{
nyatla 13:a71705c5e6fd 147 v=i_n % i_digit;
nyatla 13:a71705c5e6fd 148 o_out[i++] = v<10?(v+'0'):(v+'a'-10);
nyatla 13:a71705c5e6fd 149 }while ((i_n /= i_digit) > 0);
nyatla 13:a71705c5e6fd 150 o_out[i] = '\0';
nyatla 13:a71705c5e6fd 151 NyLPC_reverse(o_out);
nyatla 13:a71705c5e6fd 152 }
nyatla 0:142ee8b12fef 153
nyatla 0:142ee8b12fef 154 void NyLPC_reverse(char* s)
nyatla 0:142ee8b12fef 155 {
nyatla 0:142ee8b12fef 156 char *j;
nyatla 0:142ee8b12fef 157 char c;
nyatla 0:142ee8b12fef 158 j = s + strlen(s) - 1;
nyatla 0:142ee8b12fef 159 while(s < j){
nyatla 0:142ee8b12fef 160 c = *s;
nyatla 0:142ee8b12fef 161 *s++ = *j;
nyatla 0:142ee8b12fef 162 *j-- = c;
nyatla 0:142ee8b12fef 163 }
nyatla 11:c82a7b2899b0 164 }
nyatla 11:c82a7b2899b0 165
nyatla 11:c82a7b2899b0 166
nyatla 11:c82a7b2899b0 167 int NyLPC_stricmp(const char *i_s1, const char *i_s2)
nyatla 11:c82a7b2899b0 168 {
nyatla 11:c82a7b2899b0 169 const char* s1 =i_s1;
nyatla 11:c82a7b2899b0 170 const char* s2 =i_s2;
nyatla 11:c82a7b2899b0 171 for (;NyLPC_tolower(*s1) == NyLPC_tolower(*s2) && *s1 != '\0';s1++, s2++);
nyatla 11:c82a7b2899b0 172 return (int)((unsigned char)*s1) - (int)((unsigned char)(*s2));
nyatla 11:c82a7b2899b0 173 }
nyatla 11:c82a7b2899b0 174
nyatla 11:c82a7b2899b0 175 int NyLPC_strnicmp(const char *i_s1, const char *i_s2,int n)
nyatla 11:c82a7b2899b0 176 {
nyatla 11:c82a7b2899b0 177 char c;
nyatla 11:c82a7b2899b0 178 int n2=n;
nyatla 11:c82a7b2899b0 179 for(;n2>0;n2--)
nyatla 11:c82a7b2899b0 180 {
nyatla 11:c82a7b2899b0 181 c=(int)((unsigned char)NyLPC_tolower(*i_s1)) - (int)((unsigned char)NyLPC_tolower(*i_s2));
nyatla 11:c82a7b2899b0 182 if(c!=0){
nyatla 11:c82a7b2899b0 183 return c;
nyatla 11:c82a7b2899b0 184 }
nyatla 11:c82a7b2899b0 185 i_s1++;
nyatla 11:c82a7b2899b0 186 i_s2++;
nyatla 11:c82a7b2899b0 187 }
nyatla 11:c82a7b2899b0 188 return 0;
nyatla 11:c82a7b2899b0 189 }
nyatla 11:c82a7b2899b0 190
nyatla 11:c82a7b2899b0 191
nyatla 11:c82a7b2899b0 192 int NyLPC_ctoi(char i)
nyatla 11:c82a7b2899b0 193 {
nyatla 11:c82a7b2899b0 194 if('0'<=i && i<='9') return (i-'0');
nyatla 11:c82a7b2899b0 195 return 0;
nyatla 11:c82a7b2899b0 196 }
nyatla 11:c82a7b2899b0 197 int NyLPC_ctox(char i)
nyatla 11:c82a7b2899b0 198 {
nyatla 11:c82a7b2899b0 199 if('0'<=i && i<='9') return (i-'0');
nyatla 11:c82a7b2899b0 200 if('a'<=i && i<='f') return (i-'a'+10);
nyatla 11:c82a7b2899b0 201 if('A'<=i && i<='F') return (i-'A'+10);
nyatla 11:c82a7b2899b0 202 return 0;
nyatla 11:c82a7b2899b0 203 }
nyatla 11:c82a7b2899b0 204
nyatla 11:c82a7b2899b0 205
nyatla 11:c82a7b2899b0 206
nyatla 11:c82a7b2899b0 207
nyatla 11:c82a7b2899b0 208