int main(int argc, char *argv[]) { char *serialPort; unsigned char prev, curr; int count, errors; if (argc != 2) { printf("Usage: %s <serial port>\n", argv[0]); exit(1); } serialPort = argv[1]; serialOpen(serialPort); count = 0; errors = 0; while (!serialRcv(&prev)) ; count++; while (count < 100000) { while (!serialRcv(&curr)) ; count++; if (((prev + 1) & 0xFF) != curr) { errors++; } prev = curr; } if (sfd != 0) { serialClose(); sfd = 0; } printf("count = %d (ok = %d, errors = %d)\n", count, count - errors, errors); return 0; }
void block(void) { unsigned char src[1000]; unsigned char dst[1000]; unsigned char *p, *q; int i; for (i = 0; i < 1000; i++) { src[i] = rand(); } p = src; q = dst; while (1) { if (p != &src[1000] && serialSnd(*p)) { p++; } if (q != &dst[1000] && serialRcv(q)) { q++; } if (q == &dst[1000]) { break; } } for (i = 0; i < 1000; i++) { if (((src[i] + 0x5C) & 0xFF) != dst[i]) { errors++; } } }
int main(int argc, char *argv[]) { unsigned char curr; int count; if (argc != 1) { printf("Usage: %s\n", argv[0]); exit(1); } serialOpen(); curr = 0; count = 0; while (count < 100000) { while (!serialSnd(curr)) ; curr = (curr + 1) & 0xFF; count++; } printf("count = %d\n", count); while (!serialRcv(&curr)) ; printf("answer = %c\n", curr); if (sfd != 0) { serialClose(); sfd = 0; } return 0; }
int main(int argc, char *argv[]) { unsigned char b; int i, j; if (argc != 3) { printf("Usage: %s <serial_port> <data_file>\n", argv[0]); exit(1); } serialOpen(argv[1]); serialRcv(&b); diskFile = fopen(argv[2], "wb"); if (diskFile == NULL) { error("cannot open data file %s for write", argv[2]); } for (i = 0; i < 512; i++) { if (debug) { printf("%03d: ", i); } for (j = 0; j < 16; j++) { while (!serialRcv(&b)) ; if (fwrite(&b, 1, 1, diskFile) != 1) { error("cannot write to data file %s", argv[2]); } if (debug) { printf("%02X ", b); } } if (debug) { printf("\n"); } } if (diskFile != NULL) { fclose(diskFile); diskFile = NULL; } if (sfd != 0) { serialClose(); sfd = 0; } return 0; }