/* Title: inductor.h
 * Author: Jed Marti KI7NNP
 * Description: Prototypes and data structures for inductor creation program.
 * Revision History: (Created Sat Jan 27 12:27:07 2024)
 */

#ifndef inductor_h
#define inductor_h

#define VERSION 1
#define RELEASE 0
#define PATCH   4


// For Windows.
#ifdef _MBCS
  #define strcasecmp(a, b) _stricmp(a, b)
  #define strncasecmp(a, b, n) _strnicmp(a, b, n)

  #define M_PI 3.14159265358979323846
#endif

 

// For wire size table in wire.c
typedef struct {
  char    *msg;                 // ASCII text on wire size.
  double  diameter;             // Inches measured.
  double  nominal;              // Nominal measure - size we use for a channel.
  int32_t gauge;                // Gauge number.
  double  weight;               // Pounds/1000'.
  double  ohms;                 // Ohms/1000'.
  double  maxA;                 // Maximum current.
} WireSize_t;


// Enumeration of equations. See equations.c
enum {
     eqARRLOriginal,
     eqARRLTurns,
     eqARRLcspacing,
     eqARRLall22,
     eqARRLall,
     eqSimple,
     eqEquation8,
     eqEquationA,
     eqEquationD,
     eqEquationF,
     eqEquationG,
     eqEquationH,
     eqEquationI,
     eqRFC,
     eqRF1,
     eqLundin,
     eqMiller};


// See cmdline.c
void cmdline(int32_t argc, char *argv[]);

// See bestind.c
void findBest(void);

// See wire.c
extern double gaugeDiameter(int32_t g);
#endif
 

// EOF
