Пример #1
0
void frame(unsigned char dst[MACLEN], unsigned char src[MACLEN], unsigned count, unsigned char buf[MTU]) {
  // given packet type
  unsigned char packet_type[TYPELEN] = { 0xa, 0xb, 0xc, 0xd };
  // given frame check sequence
  unsigned char checksum[CHECKLEN] = { 0x0, 0x0, 0x0, 0x0 };
  unsigned char frame[FRAMELEN];
  unsigned i, ptr = 0;

  // join frame sections
  ptr += framecpy(frame + ptr, dst, MACLEN);
  ptr += framecpy(frame + ptr, src, MACLEN);
  ptr += framecpy(frame + ptr, packet_type, TYPELEN);
  ptr += framecpy(frame + ptr, buf, count);
  ptr += framecpy(frame + ptr, checksum, CHECKLEN);

  for (i = 0; i < ptr; i++) {
    printf("%02x", frame[i]);
  }
}
Пример #2
0
int main(int argc, char *argv[])
{
    char stdio[] = "-";
    char *defaultfilev[1] = { stdio };
    int filec = (argc == 1 ? 1 : argc - 1);
    char **filev = (argc == 1 ? defaultfilev : &argv[1]);
    LALFrameUFrFile *output;

    output = XLALFrameUFrFileOpen(stdio, "w");
    if (!output)
        FAILURE("could not create output file\n");

    while (filec-- > 0) {
        char *fname = *filev++;
        LALFrameUFrFile *input;
        LALFrameUFrTOC *toc;
        size_t nframe;
        size_t pos;

        input = XLALFrameUFrFileOpen(fname, "r");
        if (!input)
            FAILURE("file %s not found\n", fname);

        toc = XLALFrameUFrTOCRead(input);
        if (!toc)
            FAILURE("no TOC found in file %s\n", fname);

        nframe = XLALFrameUFrTOCQueryNFrame(toc);
        if ((int)(nframe) <= 0)
            FAILURE("no frames found in file %s\n", fname);

        /* loop over frames in input file */
        for (pos = 0; pos < nframe; ++pos) {
            LALFrameUFrameH *frame;

            frame = framecpy(input, pos);
            copydetectors(frame, input);
            copychannels(frame, input, pos, NULL);

            XLALFrameUFrameHWrite(output, frame);
            XLALFrameUFrameHFree(frame);
        }

        XLALFrameUFrFileClose(input);
    }

    XLALFrameUFrFileClose(output);
    return 0;
}