Logo Search packages:      
Sourcecode: hamlib version File versions  Download package

testbcd.c

/* 
 * Very simple test program to check BCD convertion against some other --SF
 * This is mainly to test freq2bcd and bcd2freq functions.
 */

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <stdio.h>
#include <stdlib.h>
#include <hamlib/rig.h>
#include "misc.h"

#define MAXDIGITS 32

int main (int argc, char *argv[])
{
      unsigned char b[(MAXDIGITS+1)/2];
      freq_t f=0;
      int digits = 10;
      int i;

      if (argc != 2 && argc != 3) {
                  fprintf(stderr,"Usage: %s <freq> [digits]\n",argv[0]);
                  exit(1);
      }

      f = (freq_t)atoll(argv[1]);
      if (argc > 2) {
            digits = atoi(argv[2]);
            if (digits > MAXDIGITS)
                  exit(1);
      }
      
      printf("Little Endian mode\n");
      printf("Frequency: %"PRIfreq"\n",f);
      to_bcd(b, f, digits);
      printf("BCD: %2.2x",b[0]);
      for (i = 1; i < (digits+1)/2; i++)
            printf(",%2.2x",b[i]);
      printf("\nResult after recoding: %"SCNll"\n", from_bcd(b, digits));

      printf("\nBig Endian mode\n");
      printf("Frequency: %"PRIfreq"\n",f);
      to_bcd_be(b, f, digits);
      printf("BCD: %2.2x",b[0]);
      for (i = 1; i < (digits+1)/2; i++)
            printf(",%2.2x",b[i]);
      printf("\nResult after recoding: %"SCNll"\n", from_bcd_be(b, digits));

      return 0;
}

Generated by  Doxygen 1.6.0   Back to index