1 #define _CRT_SECURE_NO_WARNINGS 1
\r
10 char s[100], fname[254];
\r
13 SMALLINT ReadDS2430(int portnum, uchar SerialNum[8]) {
\r
15 uchar send_block[145];
\r
16 uchar send_cnt = 0, i;
\r
20 sprintf(s, "%02X%02X%02X%02X%02X%02X%02X%02X.bin", SerialNum[7], SerialNum[6], SerialNum[5], SerialNum[4], SerialNum[3], SerialNum[2], SerialNum[1], SerialNum[0]);
\r
21 fprintf(fio, ">14\n");
\r
23 printf("Read Data MEM \n");
\r
24 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
25 send_block[send_cnt++] = 0xF0;
\r
26 send_block[send_cnt++] = 0x00;
\r
27 for (i = 0; i<32; i++) send_block[send_cnt++] = 0xFF;
\r
28 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
29 for (i = 2; i<send_cnt; i++) { printf("%02X ", send_block[i]); fprintf(fio,"%02X ", send_block[i]); }
\r
33 printf("Read App MEM \n");
\r
34 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
35 send_block[send_cnt++] = 0xC3;
\r
36 send_block[send_cnt++] = 0x00;
\r
37 for (i = 0; i<8; i++) send_block[send_cnt++] = 0xFF;
\r
38 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
39 for (i = 2; i<send_cnt; i++) { printf("%02X ", send_block[i]); fprintf(fio, "%02X ", send_block[i]); }
\r
44 printf("Read App State \n");
\r
45 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
46 send_block[send_cnt++] = 0x66;
\r
47 for (i = 0; i<1; i++) send_block[send_cnt++] = 0xFF;
\r
48 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
49 for (i = 1; i<send_cnt; i++) { printf("%02X ", send_block[i]); fprintf(fio, "%02X ", send_block[i]); }
\r
55 SMALLINT ReadDS2433(int portnum, uchar SerialNum[8]) {
\r
57 uchar send_block[145];
\r
58 uchar send_cnt = 0, i, j;
\r
61 printf("-----> TEST DS2433 \n");
\r
62 fprintf(fio, ">23\n");
\r
65 printf("\nRead MEM ALL \n");
\r
66 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
67 send_block[send_cnt++] = 0xF0;
\r
68 send_block[send_cnt++] = 0x00;
\r
69 send_block[send_cnt++] = 0x00;
\r
70 for (j = 0; j<16; j++) {
\r
71 for (i = 0; i<32; i++) send_block[send_cnt++] = 0xFF;
\r
72 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
73 for (i = j?0:3; i < send_cnt; i++) { printf("%02X ", send_block[i]); fprintf(fio, "%02X ", send_block[i]); }
\r
82 int findDev(uchar code) {
\r
84 fio = fopen(fname, "r");
\r
85 while (!feof(fio)) {
\r
91 uchar w = strtol(s, NULL, 16);
\r
92 if (code ==w) return 1;
\r
101 SMALLINT WriteDS2433(int portnum, uchar SerialNum[8]) {
\r
103 uchar send_block[145];
\r
104 uchar send_cnt = 0, i, j;
\r
107 printf("-----> TEST DS2433 \n");
\r
108 if (findDev(0x23)) {
\r
109 for (j = 0; j < 16; j++) {
\r
110 for (i = 0; i < 32; i++) {
\r
111 fscanf(fio, "%02X", &send_block[i + 3]);
\r
113 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
114 send_block[0] = 0x0F;
\r
115 send_block[1] = j << 5;
\r
116 send_block[2] = j >> 3;
\r
117 if (!owBlock(portnum, FALSE, send_block, 32 + 3)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
118 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
120 send_block[send_cnt++] = 0xAA;
\r
121 for (i = 0; i < 32 + 3; i++) send_block[send_cnt++] = 0xFF;
\r
122 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
123 for (i = 0; i < send_cnt; i++) { printf("%02X ", send_block[i]); }
\r
124 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
126 send_block[send_cnt++] = 0x55;
\r
128 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
141 SMALLINT WriteDS2430(int portnum, uchar SerialNum[8]) {
\r
143 uchar send_block[145];
\r
144 uchar send_cnt = 0, i, j;
\r
147 printf("-----> TEST DS2430 \n");
\r
148 if (findDev(0x14)) {
\r
149 for (i = 0; i < 32; i++) {
\r
150 fscanf(fio, "%02X", &send_block[i + 2]);
\r
152 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
153 send_block[0] = 0x0F;
\r
155 if (!owBlock(portnum, FALSE, send_block, 32 + 2)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
156 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
158 send_block[send_cnt++] = 0xAA;
\r
159 send_block[send_cnt++] = 0x00;
\r
160 for (i = 0; i < 32 + 2; i++) send_block[send_cnt++] = 0xFF;
\r
161 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
162 for (i = 0; i < send_cnt; i++) { printf("%02X ", send_block[i]); }
\r
163 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
165 send_block[send_cnt++] = 0x55;
\r
166 send_block[send_cnt++] = 0xA5;
\r
167 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
175 SMALLINT WriteDS2430(int portnum, uchar SerialNum[8], const char *fname) {
\r
177 uchar send_block[145];
\r
178 uchar send_cnt = 0, i;
\r
182 f = fopen(fname, "rb");
\r
183 fread(readbl, 1, 32 + 16, f);
\r
185 ResetDS2430(portnum, SerialNum);
\r
188 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
189 send_block[send_cnt++] = 0x0F;
\r
190 send_block[send_cnt++] = 0x00;
\r
191 for (i = 0; i<32; i++) send_block[send_cnt++] = readbl[i + 8];
\r
192 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
194 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
195 send_block[send_cnt++] = 0xAA;
\r
196 send_block[send_cnt++] = 0x00;
\r
197 for (i = 0; i<32; i++) send_block[send_cnt++] = 0xFF;
\r
198 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
199 for (i = 0; i<send_cnt; i++) { printf("%02X ", send_block[i]); if ((i - 1) % 16 == 0) printf("\n"); }
\r
202 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
203 send_block[send_cnt++] = 0x55;
\r
204 send_block[send_cnt++] = 0xA5;
\r
205 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
209 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
210 send_block[send_cnt++] = 0xF0;
\r
211 send_block[send_cnt++] = 0x00;
\r
212 for (i = 0; i<32; i++) send_block[send_cnt++] = 0xFF;
\r
213 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
214 for (i = 0; i<send_cnt; i++) { printf("%02X ", send_block[i]); if ((i - 1) % 16 == 0) printf("\n"); }
\r
217 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
218 send_block[send_cnt++] = 0x99;
\r
219 send_block[send_cnt++] = 0x00;
\r
220 for (i = 0; i<8; i++) send_block[send_cnt++] = readbl[i + 8 + 32];
\r
221 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
224 if (!owAccess(portnum)) { printf("ERROR MATCH ROM \n"); return 1; }
\r
225 send_block[send_cnt++] = 0x5A;
\r
226 send_block[send_cnt++] = 0xA5;
\r
227 if (!owBlock(portnum, FALSE, send_block, send_cnt)) { printf("ERROR RUN COMMAND \n"); return 1; }
\r
229 SetIDDS2430(portnum, SerialNum, readbl);
\r
237 unsigned char conf2(const char *s) {
\r
238 unsigned char b = 0;
\r
239 for (int i = 0; i < 2; i++) {
\r
241 if ((s[i] >= '0') && (s[i] <= '9')) {
\r
244 if ((s[i] >= 'A') && (s[i] <= 'F')) {
\r
245 b += s[i] - 'A'+10;
\r
247 if ((s[i] >= 'a') && (s[i] <= 'f')) {
\r
248 b += s[i] - 'a'+10;
\r
255 void strcpys(char *s, const char* d,bool up) {
\r
256 if (strlen(d) > 7990) {
\r
257 strncpy(s, d, 7990);
\r
262 for (int i = 0; i<strlen(s); i++)
\r
263 if ((s[i] >= 'a') && (s[i] <= 'z'))
\r
268 int main(int argc, char *argv[]) {
\r
271 uchar send_block[256];
\r
272 uchar send_cnt = 0;
\r
282 strcpys(s, argv[1],true);
\r
285 if (strncmp(s,"USB",3)==0) {adt = 6;}
\r
286 if (strncmp(s, "COM", 3) == 0) { adt = 5; }
\r
288 strcpy(s, argv[1] + 3);
\r
289 sprintf(adapter, "{%s,%i}\0",s,adt);
\r
290 printf("Open Port %s\n", argv[1]);
\r
291 if ((portnum = owAcquireEx(adapter)) < 0) {
\r
292 printf("ERROR \n", adt);
\r
297 if ((argc == 2) && (mod == 1)) mod = 2;
\r
299 strcpys(s, argv[2],true);
\r
300 if (strncmp(s, "DC", 2) == 0) {
\r
302 if (strlen(argv[3])>=16)
\r
303 for (int i = 0; i < 16; i += 2) {
\r
304 SNum[7 - (i / 2)] = conf2(argv[3] + i);
\r
307 printf("Select: %02X%02X%02X%02X%02X%02X%02X%02X\n", SNum[7], SNum[6], SNum[5], SNum[4], SNum[3], SNum[2], SNum[1], SNum[0]);
\r
313 if ((mod == 3) && (argc>4)) {
\r
314 strcpys(s, argv[4], true);
\r
321 rslt = owFirst(portnum, TRUE, FALSE);
\r
325 owSerialNum(portnum, &SNum[0], TRUE);
\r
326 printf("%02X%02X%02X%02X%02X%02X%02X%02X\n", SNum[7], SNum[6], SNum[5], SNum[4], SNum[3], SNum[2], SNum[1], SNum[0]);
\r
327 // fprintf(ft,"%02X%02X%02X%02X%02X%02X%02X%02X\n",SNum[7],SNum[6],SNum[5],SNum[4],SNum[3],SNum[2],SNum[1],SNum[0]);
\r
328 /* switch (SNum[0]) {
\r
332 //TestDS2430(portnum,&SNum[0]);
\r
334 //ResetDS2430(portnum,&SNum[0]);
\r
335 //uchar id[]={0x14,0xF5 ,0xEA ,0x24 ,0x06 ,0x00 ,0x00 ,0x5E};
\r
336 //SetIDDS2430(portnum,&SNum[0],id);
\r
337 if (rw) WriteDS2430(portnum, &SNum[0]); else ReadDS2430(portnum, &SNum[0]);
\r
338 //WriteDS2430(portnum,&SNum[0],"5E00000624EAF514.bin");
\r
342 //TestDS2433(portnum,&SNum[0]);
\r
343 //TestDS2433_reset(portnum,&SNum[0]);
\r
345 if (rw) WriteDS2433(portnum, &SNum[0]); else ReadDS2433(portnum, &SNum[0]);
\r
349 rslt = owNext(portnum, TRUE, FALSE);
\r
353 owSerialNum(portnum, SNum, FALSE);
\r
355 int len = strlen(s);
\r
359 if (s[i + 1] == 'R') {
\r
360 if (owAccess(portnum)) {
\r
361 if (owBlock(portnum, FALSE, send_block, send_cnt)) {
\r
362 for (int j = 0; j < send_cnt; j++) {
\r
363 printf("%02X", send_block[j]);
\r
367 else printf("ERROR RESET\n");
\r
369 else printf("ERROR SEND\n");
\r
372 if (s[i + 1] == 'P') {
\r
375 msDelay(conf2(s + i));
\r
381 send_block[send_cnt++] = conf2(s + i);
\r
388 if (mod>0) owRelease(portnum);
\r