Exemplo n.º 1
0
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);
}
Exemplo n.º 2
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);
}