switch(c){
case '\0':
case '\n':
+ case '\r':
return 0xff;
break;
default:
break;
}
- if(c < '0') return 0xff;
- if(c > 'F') return 0xff;
+// if(c < '0') return 0xff;
+// if(c > 'F') return 0xff;
}
return 0;
}
unsigned char c;
unsigned char bytes;
unsigned int i;
- if(check_eol(s) != 0) return TERM_NULL;
+// if(check_eol(s) != 0) return TERM_NULL;
if((s[0] != 'S') || (s[1] != '0')) return TERM_NONSREC;
p[pp] = c;
i += 2;
pp++;
- bytes--;
+ bytes--;
}
if(migrate_hex(&s[i]) == 0) return TERM_SUMERR;
c = hex2byte(&s[i]);
void bin2hex(char *s, unsigned char v)
{
- s[0] = v >> 4;
- s[1] = v & 0x0f;
+ unsigned char c;
+ c = v >> 4;
+ if(c > 9) {
+ c = c - 10 + 'A';
+ } else {
+ c = c + '0';
+ }
+ s[0] = c;
+
+ c = v & 0x0f;
+ if(c > 9) {
+ c = c - 10 + 'A';
+ } else {
+ c = c + '0';
+ }
+ s[1] = c;
s[2] = 0x00;
}
s[0] = 'S';
s[1] = '2';
if(len > 254) len = 254;
- i = len + 1;
+ i = len + 4; //HEX
sum = i;
bin2hex(&s[2], i);