common.c 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. #include "common.h"
  2. int GetParaFromStr(char *Str,char *Para,char *Value){
  3. int ValueLen=0,ParaLen=0;
  4. char ParaTemp[22];
  5. char *p;
  6. char d;
  7. int i=0;
  8. if(0==*Str || 0==*Para)return 0;
  9. while(0!=(d=*Para) && ParaLen<20){
  10. ParaTemp[i++]=d;
  11. if(d=='=' || d==';')return 0;
  12. Para++;
  13. ParaLen++;
  14. }
  15. ParaTemp[ParaLen++]='=';
  16. ParaTemp[ParaLen]=0;
  17. p=strstr(Str,ParaTemp);
  18. p+=ParaLen;
  19. //--
  20. while(*p>0x20 && ';'!=*p && ValueLen<=80){
  21. *Value=*p;
  22. p++;
  23. Value++;
  24. ValueLen++;
  25. }
  26. *Value=0;
  27. return ValueLen;
  28. }
  29. char msgCmp(char *msg, char *target){
  30. char *p1=target, *p2=msg;
  31. while(*p1 != 0){
  32. if(*p1 != *p2) return 0;
  33. p1++;p2++;
  34. }
  35. return 1;
  36. }
  37. // '56'->0X56
  38. unsigned char charStrToHex(char d1, char d2){
  39. unsigned char p1=d1;
  40. unsigned char p2=d2;
  41. if(p1>='0' && p1 <='9') p1 -= 0x30;
  42. else if(p1>='a' && p1 <='f') p1 -= 0x57;
  43. else if(p1>='A' && p1 <='F') p1 -= 0x37;
  44. else return 0;
  45. p1<<=4;p1&=0xF0;
  46. if(p2>='0' && p2 <='9') p2 -= 0x30;
  47. else if(p2>='a' && p2 <='f') p2 -= 0x57;
  48. else if(p2>='A' && p2 <='F') p2 -= 0x37;
  49. else return 0;
  50. return (p1|p2);
  51. }
  52. /*
  53. restoreDataFormatByHex
  54. "313233"=>{0x31,0x32,0x33}
  55. */
  56. T_INT8 restoreDataFormatByHex(T_UINT8 *src, T_UINT16 len)
  57. {
  58. T_UINT16 i,j,k;
  59. T_UINT8 temp[2];
  60. if(NULL==src) return 1;
  61. j=0;
  62. for(i=0;i<len/2;i++){
  63. temp[0]=src[2*i];
  64. temp[1]=src[2*i+1];
  65. for(k=0;k<2;k++){
  66. if(temp[k]>='0' && temp[k]<='9') temp[k] -= 0x30;
  67. else if(temp[k]>='a' && temp[k]<='f') temp[k] -= 0x57;
  68. else if(temp[k]>='A' && temp[k]<='F') temp[k] -= 0x37;
  69. else return 2;
  70. }
  71. temp[0] <<= 4;
  72. temp[0] &= 0xF0;
  73. src[j++] = temp[0] | temp[1];
  74. }
  75. return 0;
  76. }
  77. /*
  78. fillByHexFormat
  79. {0x31,0x32,0x33}=>"313233"=>src
  80. */
  81. void fillByHexFormat(T_INT8 *src, T_INT8 *data, T_INT32 len){
  82. T_INT32 i;
  83. T_INT8 buf[10];
  84. for(i=0;i<len;i++){
  85. snprintf(buf, sizeof(buf),"%02x",data[i]);
  86. strcat(src, buf);
  87. }
  88. strcat(src,"\r\n");
  89. }
  90. /*
  91. MakeStringToUpperCap
  92. 遍历data,将非大写字母转成大写字母
  93. */
  94. void MakeStringToUpperCap(T_UINT8 *data, T_UINT16 len){
  95. T_UINT16 i;
  96. for(i=0;i<len;i++)
  97. {
  98. if(data[i] >= 'a' && data[i] <= 'z')
  99. data[i] -= 0x20;
  100. }
  101. }
  102. /*******************************************************************
  103. fitStrForIndex
  104. 从Str中查找Para串
  105. return:-1 未找到目标串
  106. return:>=0 找到目标串返回目标在源串的索引值
  107. ********************************************************************/
  108. T_INT16 fitStrForIndex(T_INT8 *Str,T_INT8 *Para){
  109. T_INT8 *targetP;
  110. targetP=strstr(Str, Para);
  111. if(targetP==0) return -1;
  112. else{
  113. return (targetP-Str);
  114. }
  115. }
  116. unsigned char AscToHex(unsigned char aHex)
  117. {
  118. if((aHex>=0)&&(aHex<=9))
  119. aHex += 0x30;
  120. else if((aHex>=10)&&(aHex<=15))//A-F
  121. //aHex += 0x37;
  122. aHex += 0x57;
  123. else aHex = 0xff;
  124. return aHex;
  125. }
  126. void AscStrTurnHexStr(char *AscStr, char *HexStr)
  127. {
  128. char *pAscStr=AscStr;
  129. unsigned char d,h,l;
  130. while(0!=(d=(unsigned char)*pAscStr++)){
  131. l=d&0x0f;
  132. h=d>>4;
  133. *HexStr++=AscToHex(h);
  134. *HexStr++=AscToHex(l);
  135. }
  136. *HexStr=0;
  137. }
  138. /*0x12-->12*/
  139. unsigned char bcdToDec(unsigned char value){
  140. unsigned char h,l;
  141. h=(value>>4)&0x0f;
  142. l=value&0x0f;
  143. return (h*10+l);
  144. }
  145. void LwEndingToBiEndingStr(char *data, int len){
  146. char tt[2];
  147. int i;
  148. for(i=0;i<len/4;i++){
  149. tt[0]=data[4*i];
  150. tt[1]=data[4*i+1];
  151. data[4*i]=data[4*i+2];
  152. data[4*i+1]=data[4*i+3];
  153. data[4*i+2]=tt[0];
  154. data[4*i+3]=tt[1];
  155. }
  156. }
  157. #include "ohpoc.h"
  158. MY_CLOCK poc_clock;
  159. void getMyClock(MY_CLOCK *myclock){
  160. // nwy_time_t tdata;
  161. // char timezone=0;
  162. //
  163. // nwy_get_time(&tdata, &timezone);
  164. myclock->year=poc_clock.year;
  165. myclock->month=poc_clock.month;
  166. myclock->day=poc_clock.day;
  167. myclock->hour=poc_clock.hour;
  168. myclock->min=poc_clock.min;
  169. myclock->sec=poc_clock.sec;
  170. }
  171. void ohpocGetClock(MY_CLOCK *myclock){
  172. getMyClock(myclock);
  173. }