#include "common.h" unsigned long htoi(char s[]) { int i = 0; unsigned long long n = 0; if (s[0] == '0' && (s[1]=='x' || s[1]=='X')) i = 2; else i = 0; for (; (s[i] >= '0' && s[i] <= '9') || (s[i] >= 'a' && s[i] <= 'z') || (s[i] >='A' && s[i] <= 'Z');++i){ if (tolower(s[i]) > '9') n = 16 * n + (10 + tolower(s[i]) - 'a'); else n = 16 * n + (tolower(s[i]) - '0'); } return n; } int GetParaFromStr(char *Str,char *Para,char *Value){ int ValueLen=0,ParaLen=0; char ParaTemp[22]; char *p; char d; int i=0; if(0==*Str || 0==*Para)return 0; while(0!=(d=*Para) && ParaLen<20){ ParaTemp[i++]=d; if(d=='=' || d==';')return 0; Para++; ParaLen++; } ParaTemp[ParaLen++]='='; ParaTemp[ParaLen]=0; p=strstr(Str,ParaTemp); p+=ParaLen; //-- while(*p>0x20 && ';'!=*p && ValueLen<=80){ *Value=*p; p++; Value++; ValueLen++; } *Value=0; return ValueLen; } char msgCmp(char *msg, char *target){ char *p1=target, *p2=msg; while(*p1 != 0){ if(*p1 != *p2) return 0; p1++;p2++; } return 1; } // '56'->0X56 unsigned char charStrToHex(char d1, char d2){ unsigned char p1=d1; unsigned char p2=d2; if(p1>='0' && p1 <='9') p1 -= 0x30; else if(p1>='a' && p1 <='f') p1 -= 0x57; else if(p1>='A' && p1 <='F') p1 -= 0x37; else return 0; p1<<=4;p1&=0xF0; if(p2>='0' && p2 <='9') p2 -= 0x30; else if(p2>='a' && p2 <='f') p2 -= 0x57; else if(p2>='A' && p2 <='F') p2 -= 0x37; else return 0; return (p1|p2); } /* restoreDataFormatByHex "313233"=>{0x31,0x32,0x33} */ unsigned char restoreDataFormatByHex(unsigned char *src, unsigned short len) { unsigned short i,j,k; unsigned char temp[2]; if(0==src) return 1; j=0; for(i=0;i='0' && temp[k]<='9') temp[k] -= 0x30; else if(temp[k]>='a' && temp[k]<='f') temp[k] -= 0x57; else if(temp[k]>='A' && temp[k]<='F') temp[k] -= 0x37; else return 2; } temp[0] <<= 4; temp[0] &= 0xF0; src[j++] = temp[0] | temp[1]; } return 0; } /* 从长度为len的src缓存中查找第index个target,并返回下一个字节的索引 src:缓存 len:缓存长度 target:要匹配的字节内容 index:第几个target, 1,2,3,4..... return: < 0 失败,else, target后面一个字节的索引 */ int findByteFromStr(unsigned char *src, int len,unsigned char target,unsigned char index){ int i; unsigned char num=0; for(i=0;i