main(int argc, char **argv) { struct seed_fsdh dest; char src[48]; if (fread(src, 1, 48, stdin) != 48) { perror("fread"); exit(1); } if (seed_fsdh(&dest, src) != 0) { fprintf(stderr, "seed_fsdh failed\n"); exit(1); } printf("seqno = %ld\n", dest.seqno); printf("staid = %s\n", dest.staid); printf("locid = %s\n", dest.locid); printf("chnid = %s\n", dest.chnid); printf("netid = %s\n", dest.netid); printf("start = %s\n", util_dttostr(dest.start, 0)); printf("nsamp = %hd\n", dest.nsamp); printf("srfact = %hd\n", dest.srfact); printf("srmult = %hd\n", dest.srmult); printf("active = %d\n", (int) dest.active); printf("ioclck = %d\n", (int) dest.ioclck); printf("qual = %d\n", (int) dest.qual); printf("more = %d\n", (int) dest.more); printf("tcorr = %ld\n", dest.tcorr); printf("bod = %hd\n", dest.bod); printf("first = %hd\n", dest.first); printf("order = %s\n", dest.order == LTL_ENDIAN_ORDER ? "little endian" : "big endian"); printf("swap = %d\n", dest.swap); exit(0); }
main(int argc, char **argv) { struct seed_fsdh fsdh; struct seed_b1000 dest; int nread, type, next, count; char *ptr, *string, src[1024]; nread = fread(src, 1, 1024, stdin); if (nread < 48) { fprintf(stderr, "nread = %d is too small!\n", nread); exit(1); } if (seed_fsdh(&fsdh, src) != 0) { fprintf(stderr, "seed_fsdh failed\n"); exit(1); } printf("FSDH\n"); printf("seqno = %ld\n", fsdh.seqno); printf("staid = %s\n", fsdh.staid); printf("locid = %s\n", fsdh.locid); printf("chnid = %s\n", fsdh.chnid); printf("netid = %s\n", fsdh.netid); printf("start = %s\n", util_dttostr(fsdh.start, 0)); printf("nsamp = %hd\n", fsdh.nsamp); printf("srfact = %hd\n", fsdh.srfact); printf("srmult = %hd\n", fsdh.srmult); printf("active = %d\n", (int) fsdh.active); printf("ioclck = %d\n", (int) fsdh.ioclck); printf("qual = %d\n", (int) fsdh.qual); printf("more = %d\n", (int) fsdh.more); printf("tcorr = %ld\n", fsdh.tcorr); printf("bod = %hd\n", fsdh.bod); printf("first = %hd\n", fsdh.first); printf("order = %s\n", fsdh.order == LTL_ENDIAN_ORDER ? "little endian" : "big endian"); printf("swap = %d\n", fsdh.swap); printf("\n"); next = fsdh.first; do { ptr = src + next; type = seed_type(ptr, &next, fsdh.swap); printf("B%d\n", type); if (type == 1000) { if (seed_b1000(&dest, ptr) != 0) { fprintf(stderr, "seed_b1000 failed\n"); } else { printf("next = %hd ", dest.next); if (next != dest.next) { printf("ERROR: next offset confusion!\n"); } else { printf("\n"); } printf("format = %d ", (int) dest.format); switch (dest.format) { case 1: string = "16 bit integers"; break; case 2: string = "24 bit integers"; break; case 3: string = "32 bit integers"; break; case 4: string = "IEEE float"; break; case 5: string = "IEEE double"; break; case 10: string = "Steim 1 compressed"; break; case 11: string = "Steim 2 compressed"; break; case 12: string = "GEOSCOPE 1"; break; case 13: string = "GEOSCOPE 1"; break; case 14: string = "GEOSCOPE 1"; break; case 15: string = "USNSN compressed"; break; case 16: string = "CDSN 16 bit gain ranged"; break; case 17: string = "Graefenberg 16 bit gain ranged"; break; case 18: string = "IPG-Strasbourg 16 bit gain ranged"; break; case 30: string = "SRO format"; break; case 31: string = "HGLP format"; break; case 32: string = "DWWSSN gain ranged"; break; case 33: string = "RSTN 16 bit gain ranged"; break; default: string = "unknown"; } printf("(%s)\n", string); printf("order = %d ", (int) dest.order); printf("(%s)\n", dest.order ? "big endian" : "little endian"); printf("length = %d ", (int) dest.length); printf("(%d)\n", (int) pow(2.0, (double) dest.length)); } } else { printf("blockette ignored\n"); } } while (next != 0); exit(0); }