📄 vfd_tool.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <mem.h>
/************************************************************************
For compatibility issue
************************************************************************/
typedef unsigned char BOOL;
typedef unsigned char BIT;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWRD;
typedef signed char CHAR;
typedef signed int INT;
typedef signed long LONG;
typedef float FLOAT;
typedef double DOUBLE;
typedef long double LDOUBLE;
#define TRUE 1
#define FALSE 0
#define assert(a)
/************************************************************************
************************************************************************/
#include "vfd_comm.h"
/************************************************************************
Offline use only data, VFD independent
************************************************************************/
#define VFD_TRACK 0 /* Track high, track low */
#define VFD_MINUTE 2 /* Minute high, minute low */
#define VFD_SECOND 4 /* Second high, second low */
#define VFD_MIN100 6 /* 100+ minutes */
#define VFD_TITLE 7 /* Title high, title low */
#define VFD_CHAP100 9 /* 100+ chapters */
#define VFD_MACRO_LENGTH 10
typedef struct structVfdIconMacro {
char * pcName;
WORD pwOn[VFD_MACRO_LENGTH];
WORD pwOff[VFD_MACRO_LENGTH];
} strucVfdIconMacro;
/************************************************************************
************************************************************************/
#define ANODE_G1P1 GET_NODE_WORD(0x00, 0x01)
#define ANODE_G1P2 GET_NODE_WORD(0x00, 0x02)
#define ANODE_G1P3 GET_NODE_WORD(0x00, 0x04)
#define ANODE_G1P4 GET_NODE_WORD(0x00, 0x08)
#define ANODE_G1P5 GET_NODE_WORD(0x00, 0x10)
#define ANODE_G1P6 GET_NODE_WORD(0x00, 0x20)
#define ANODE_G1P7 GET_NODE_WORD(0x00, 0x40)
#define ANODE_G1P8 GET_NODE_WORD(0x00, 0x80)
#define ANODE_G1P9 GET_NODE_WORD(0x01, 0x01)
#define ANODE_G1P10 GET_NODE_WORD(0x01, 0x02)
#define ANODE_G1P11 GET_NODE_WORD(0x01, 0x04)
#define ANODE_G1P12 GET_NODE_WORD(0x01, 0x08)
#define ANODE_G1P13 GET_NODE_WORD(0x01, 0x10)
#define ANODE_G1P14 GET_NODE_WORD(0x01, 0x20)
#define ANODE_G1P15 GET_NODE_WORD(0x01, 0x40)
#define ANODE_G1P16 GET_NODE_WORD(0x01, 0x80)
#define ANODE_G2P1 GET_NODE_WORD(0x02, 0x01)
#define ANODE_G2P2 GET_NODE_WORD(0x02, 0x02)
#define ANODE_G2P3 GET_NODE_WORD(0x02, 0x04)
#define ANODE_G2P4 GET_NODE_WORD(0x02, 0x08)
#define ANODE_G2P5 GET_NODE_WORD(0x02, 0x10)
#define ANODE_G2P6 GET_NODE_WORD(0x02, 0x20)
#define ANODE_G2P7 GET_NODE_WORD(0x02, 0x40)
#define ANODE_G2P8 GET_NODE_WORD(0x02, 0x80)
#define ANODE_G2P9 GET_NODE_WORD(0x03, 0x01)
#define ANODE_G2P10 GET_NODE_WORD(0x03, 0x02)
#define ANODE_G2P11 GET_NODE_WORD(0x03, 0x04)
#define ANODE_G2P12 GET_NODE_WORD(0x03, 0x08)
#define ANODE_G2P13 GET_NODE_WORD(0x03, 0x10)
#define ANODE_G2P14 GET_NODE_WORD(0x03, 0x20)
#define ANODE_G2P15 GET_NODE_WORD(0x03, 0x40)
#define ANODE_G2P16 GET_NODE_WORD(0x03, 0x80)
#define ANODE_G3P1 GET_NODE_WORD(0x04, 0x01)
#define ANODE_G3P2 GET_NODE_WORD(0x04, 0x02)
#define ANODE_G3P3 GET_NODE_WORD(0x04, 0x04)
#define ANODE_G3P4 GET_NODE_WORD(0x04, 0x08)
#define ANODE_G3P5 GET_NODE_WORD(0x04, 0x10)
#define ANODE_G3P6 GET_NODE_WORD(0x04, 0x20)
#define ANODE_G3P7 GET_NODE_WORD(0x04, 0x40)
#define ANODE_G3P8 GET_NODE_WORD(0x04, 0x80)
#define ANODE_G3P9 GET_NODE_WORD(0x05, 0x01)
#define ANODE_G3P10 GET_NODE_WORD(0x05, 0x02)
#define ANODE_G3P11 GET_NODE_WORD(0x05, 0x04)
#define ANODE_G3P12 GET_NODE_WORD(0x05, 0x08)
#define ANODE_G3P13 GET_NODE_WORD(0x05, 0x10)
#define ANODE_G3P14 GET_NODE_WORD(0x05, 0x20)
#define ANODE_G3P15 GET_NODE_WORD(0x05, 0x40)
#define ANODE_G3P16 GET_NODE_WORD(0x05, 0x80)
#define ANODE_G4P1 GET_NODE_WORD(0x06, 0x01)
#define ANODE_G4P2 GET_NODE_WORD(0x06, 0x02)
#define ANODE_G4P3 GET_NODE_WORD(0x06, 0x04)
#define ANODE_G4P4 GET_NODE_WORD(0x06, 0x08)
#define ANODE_G4P5 GET_NODE_WORD(0x06, 0x10)
#define ANODE_G4P6 GET_NODE_WORD(0x06, 0x20)
#define ANODE_G4P7 GET_NODE_WORD(0x06, 0x40)
#define ANODE_G4P8 GET_NODE_WORD(0x06, 0x80)
#define ANODE_G4P9 GET_NODE_WORD(0x07, 0x01)
#define ANODE_G4P10 GET_NODE_WORD(0x07, 0x02)
#define ANODE_G4P11 GET_NODE_WORD(0x07, 0x04)
#define ANODE_G4P12 GET_NODE_WORD(0x07, 0x08)
#define ANODE_G4P13 GET_NODE_WORD(0x07, 0x10)
#define ANODE_G4P14 GET_NODE_WORD(0x07, 0x20)
#define ANODE_G4P15 GET_NODE_WORD(0x07, 0x40)
#define ANODE_G4P16 GET_NODE_WORD(0x07, 0x80)
#define ANODE_G5P1 GET_NODE_WORD(0x08, 0x01)
#define ANODE_G5P2 GET_NODE_WORD(0x08, 0x02)
#define ANODE_G5P3 GET_NODE_WORD(0x08, 0x04)
#define ANODE_G5P4 GET_NODE_WORD(0x08, 0x08)
#define ANODE_G5P5 GET_NODE_WORD(0x08, 0x10)
#define ANODE_G5P6 GET_NODE_WORD(0x08, 0x20)
#define ANODE_G5P7 GET_NODE_WORD(0x08, 0x40)
#define ANODE_G5P8 GET_NODE_WORD(0x08, 0x80)
#define ANODE_G5P9 GET_NODE_WORD(0x09, 0x01)
#define ANODE_G5P10 GET_NODE_WORD(0x09, 0x02)
#define ANODE_G5P11 GET_NODE_WORD(0x09, 0x04)
#define ANODE_G5P12 GET_NODE_WORD(0x09, 0x08)
#define ANODE_G5P13 GET_NODE_WORD(0x09, 0x10)
#define ANODE_G5P14 GET_NODE_WORD(0x09, 0x20)
#define ANODE_G5P15 GET_NODE_WORD(0x09, 0x40)
#define ANODE_G5P16 GET_NODE_WORD(0x09, 0x80)
#define ANODE_G6P1 GET_NODE_WORD(0x0a, 0x01)
#define ANODE_G6P2 GET_NODE_WORD(0x0a, 0x02)
#define ANODE_G6P3 GET_NODE_WORD(0x0a, 0x04)
#define ANODE_G6P4 GET_NODE_WORD(0x0a, 0x08)
#define ANODE_G6P5 GET_NODE_WORD(0x0a, 0x10)
#define ANODE_G6P6 GET_NODE_WORD(0x0a, 0x20)
#define ANODE_G6P7 GET_NODE_WORD(0x0a, 0x40)
#define ANODE_G6P8 GET_NODE_WORD(0x0a, 0x80)
#define ANODE_G6P9 GET_NODE_WORD(0x0b, 0x01)
#define ANODE_G6P10 GET_NODE_WORD(0x0b, 0x02)
#define ANODE_G6P11 GET_NODE_WORD(0x0b, 0x04)
#define ANODE_G6P12 GET_NODE_WORD(0x0b, 0x08)
#define ANODE_G6P13 GET_NODE_WORD(0x0b, 0x10)
#define ANODE_G6P14 GET_NODE_WORD(0x0b, 0x20)
#define ANODE_G6P15 GET_NODE_WORD(0x0b, 0x40)
#define ANODE_G6P16 GET_NODE_WORD(0x0b, 0x80)
#define ANODE_G7P1 GET_NODE_WORD(0x0c, 0x01)
#define ANODE_G7P2 GET_NODE_WORD(0x0c, 0x02)
#define ANODE_G7P3 GET_NODE_WORD(0x0c, 0x04)
#define ANODE_G7P4 GET_NODE_WORD(0x0c, 0x08)
#define ANODE_G7P5 GET_NODE_WORD(0x0c, 0x10)
#define ANODE_G7P6 GET_NODE_WORD(0x0c, 0x20)
#define ANODE_G7P7 GET_NODE_WORD(0x0c, 0x40)
#define ANODE_G7P8 GET_NODE_WORD(0x0c, 0x80)
#define ANODE_G7P9 GET_NODE_WORD(0x0d, 0x01)
#define ANODE_G7P10 GET_NODE_WORD(0x0d, 0x02)
#define ANODE_G7P11 GET_NODE_WORD(0x0d, 0x04)
#define ANODE_G7P12 GET_NODE_WORD(0x0d, 0x08)
#define ANODE_G7P13 GET_NODE_WORD(0x0d, 0x10)
#define ANODE_G7P14 GET_NODE_WORD(0x0d, 0x20)
#define ANODE_G7P15 GET_NODE_WORD(0x0d, 0x40)
#define ANODE_G7P16 GET_NODE_WORD(0x0d, 0x80)
#define ANODE_G8P1 GET_NODE_WORD(0x0e, 0x01)
#define ANODE_G8P2 GET_NODE_WORD(0x0e, 0x02)
#define ANODE_G8P3 GET_NODE_WORD(0x0e, 0x04)
#define ANODE_G8P4 GET_NODE_WORD(0x0e, 0x08)
#define ANODE_G8P5 GET_NODE_WORD(0x0e, 0x10)
#define ANODE_G8P6 GET_NODE_WORD(0x0e, 0x20)
#define ANODE_G8P7 GET_NODE_WORD(0x0e, 0x40)
#define ANODE_G8P8 GET_NODE_WORD(0x0e, 0x80)
#define ANODE_G8P9 GET_NODE_WORD(0x0f, 0x01)
#define ANODE_G8P10 GET_NODE_WORD(0x0f, 0x02)
#define ANODE_G8P11 GET_NODE_WORD(0x0f, 0x04)
#define ANODE_G8P12 GET_NODE_WORD(0x0f, 0x08)
#define ANODE_G8P13 GET_NODE_WORD(0x0f, 0x10)
#define ANODE_G8P14 GET_NODE_WORD(0x0f, 0x20)
#define ANODE_G8P15 GET_NODE_WORD(0x0f, 0x40)
#define ANODE_G8P16 GET_NODE_WORD(0x0f, 0x80)
#define ANODE_G9P1 GET_NODE_WORD(0x10, 0x01)
#define ANODE_G9P2 GET_NODE_WORD(0x10, 0x02)
#define ANODE_G9P3 GET_NODE_WORD(0x10, 0x04)
#define ANODE_G9P4 GET_NODE_WORD(0x10, 0x08)
#define ANODE_G9P5 GET_NODE_WORD(0x10, 0x10)
#define ANODE_G9P6 GET_NODE_WORD(0x10, 0x20)
#define ANODE_G9P7 GET_NODE_WORD(0x10, 0x40)
#define ANODE_G9P8 GET_NODE_WORD(0x10, 0x80)
#define ANODE_G9P9 GET_NODE_WORD(0x11, 0x01)
#define ANODE_G9P10 GET_NODE_WORD(0x11, 0x02)
#define ANODE_G9P11 GET_NODE_WORD(0x11, 0x04)
#define ANODE_G9P12 GET_NODE_WORD(0x11, 0x08)
#define ANODE_G9P13 GET_NODE_WORD(0x11, 0x10)
#define ANODE_G9P14 GET_NODE_WORD(0x11, 0x20)
#define ANODE_G9P15 GET_NODE_WORD(0x11, 0x40)
#define ANODE_G9P16 GET_NODE_WORD(0x11, 0x80)
#define ANODE_G10P1 GET_NODE_WORD(0x12, 0x01)
#define ANODE_G10P2 GET_NODE_WORD(0x12, 0x02)
#define ANODE_G10P3 GET_NODE_WORD(0x12, 0x04)
#define ANODE_G10P4 GET_NODE_WORD(0x12, 0x08)
#define ANODE_G10P5 GET_NODE_WORD(0x12, 0x10)
#define ANODE_G10P6 GET_NODE_WORD(0x12, 0x20)
#define ANODE_G10P7 GET_NODE_WORD(0x12, 0x40)
#define ANODE_G10P8 GET_NODE_WORD(0x12, 0x80)
#define ANODE_G10P9 GET_NODE_WORD(0x13, 0x01)
#define ANODE_G10P10 GET_NODE_WORD(0x13, 0x02)
#define ANODE_G10P11 GET_NODE_WORD(0x13, 0x04)
#define ANODE_G10P12 GET_NODE_WORD(0x13, 0x08)
#define ANODE_G10P13 GET_NODE_WORD(0x13, 0x10)
#define ANODE_G10P14 GET_NODE_WORD(0x13, 0x20)
#define ANODE_G10P15 GET_NODE_WORD(0x13, 0x40)
#define ANODE_G10P16 GET_NODE_WORD(0x13, 0x80)
#define ANODE_G11P1 GET_NODE_WORD(0x14, 0x01)
#define ANODE_G11P2 GET_NODE_WORD(0x14, 0x02)
#define ANODE_G11P3 GET_NODE_WORD(0x14, 0x04)
#define ANODE_G11P4 GET_NODE_WORD(0x14, 0x08)
#define ANODE_G11P5 GET_NODE_WORD(0x14, 0x10)
#define ANODE_G11P6 GET_NODE_WORD(0x14, 0x20)
#define ANODE_G11P7 GET_NODE_WORD(0x14, 0x40)
#define ANODE_G11P8 GET_NODE_WORD(0x14, 0x80)
#define ANODE_G11P9 GET_NODE_WORD(0x15, 0x01)
#define ANODE_G11P10 GET_NODE_WORD(0x15, 0x02)
#define ANODE_G11P11 GET_NODE_WORD(0x15, 0x04)
#define ANODE_G11P12 GET_NODE_WORD(0x15, 0x08)
#define ANODE_G11P13 GET_NODE_WORD(0x15, 0x10)
#define ANODE_G11P14 GET_NODE_WORD(0x15, 0x20)
#define ANODE_G11P15 GET_NODE_WORD(0x15, 0x40)
#define ANODE_G11P16 GET_NODE_WORD(0x15, 0x80)
#define ANODE_G12P1 GET_NODE_WORD(0x16, 0x01)
#define ANODE_G12P2 GET_NODE_WORD(0x16, 0x02)
#define ANODE_G12P3 GET_NODE_WORD(0x16, 0x04)
#define ANODE_G12P4 GET_NODE_WORD(0x16, 0x08)
#define ANODE_G12P5 GET_NODE_WORD(0x16, 0x10)
#define ANODE_G12P6 GET_NODE_WORD(0x16, 0x20)
#define ANODE_G12P7 GET_NODE_WORD(0x16, 0x40)
#define ANODE_G12P8 GET_NODE_WORD(0x16, 0x80)
#define ANODE_G12P9 GET_NODE_WORD(0x17, 0x01)
#define ANODE_G12P10 GET_NODE_WORD(0x17, 0x02)
#define ANODE_G12P11 GET_NODE_WORD(0x17, 0x04)
#define ANODE_G12P12 GET_NODE_WORD(0x17, 0x08)
#define ANODE_G12P13 GET_NODE_WORD(0x17, 0x10)
#define ANODE_G12P14 GET_NODE_WORD(0x17, 0x20)
#define ANODE_G12P15 GET_NODE_WORD(0x17, 0x40)
#define ANODE_G12P16 GET_NODE_WORD(0x17, 0x80)
#define ANODE_G13P1 GET_NODE_WORD(0x18, 0x01)
#define ANODE_G13P2 GET_NODE_WORD(0x18, 0x02)
#define ANODE_G13P3 GET_NODE_WORD(0x18, 0x04)
#define ANODE_G13P4 GET_NODE_WORD(0x18, 0x08)
#define ANODE_G13P5 GET_NODE_WORD(0x18, 0x10)
#define ANODE_G13P6 GET_NODE_WORD(0x18, 0x20)
#define ANODE_G13P7 GET_NODE_WORD(0x18, 0x40)
#define ANODE_G13P8 GET_NODE_WORD(0x18, 0x80)
#define ANODE_G13P9 GET_NODE_WORD(0x19, 0x01)
#define ANODE_G13P10 GET_NODE_WORD(0x19, 0x02)
#define ANODE_G13P11 GET_NODE_WORD(0x19, 0x04)
#define ANODE_G13P12 GET_NODE_WORD(0x19, 0x08)
#define ANODE_G13P13 GET_NODE_WORD(0x19, 0x10)
#define ANODE_G13P14 GET_NODE_WORD(0x19, 0x20)
#define ANODE_G13P15 GET_NODE_WORD(0x19, 0x40)
#define ANODE_G13P16 GET_NODE_WORD(0x19, 0x80)
#define ANODE_G14P1 GET_NODE_WORD(0x1a, 0x01)
#define ANODE_G14P2 GET_NODE_WORD(0x1a, 0x02)
#define ANODE_G14P3 GET_NODE_WORD(0x1a, 0x04)
#define ANODE_G14P4 GET_NODE_WORD(0x1a, 0x08)
#define ANODE_G14P5 GET_NODE_WORD(0x1a, 0x10)
#define ANODE_G14P6 GET_NODE_WORD(0x1a, 0x20)
#define ANODE_G14P7 GET_NODE_WORD(0x1a, 0x40)
#define ANODE_G14P8 GET_NODE_WORD(0x1a, 0x80)
#define ANODE_G14P9 GET_NODE_WORD(0x1b, 0x01)
#define ANODE_G14P10 GET_NODE_WORD(0x1b, 0x02)
#define ANODE_G14P11 GET_NODE_WORD(0x1b, 0x04)
#define ANODE_G14P12 GET_NODE_WORD(0x1b, 0x08)
#define ANODE_G14P13 GET_NODE_WORD(0x1b, 0x10)
#define ANODE_G14P14 GET_NODE_WORD(0x1b, 0x20)
#define ANODE_G14P15 GET_NODE_WORD(0x1b, 0x40)
#define ANODE_G14P16 GET_NODE_WORD(0x1b, 0x80)
#define ANODE_G15P1 GET_NODE_WORD(0x1c, 0x01)
#define ANODE_G15P2 GET_NODE_WORD(0x1c, 0x02)
#define ANODE_G15P3 GET_NODE_WORD(0x1c, 0x04)
#define ANODE_G15P4 GET_NODE_WORD(0x1c, 0x08)
#define ANODE_G15P5 GET_NODE_WORD(0x1c, 0x10)
#define ANODE_G15P6 GET_NODE_WORD(0x1c, 0x20)
#define ANODE_G15P7 GET_NODE_WORD(0x1c, 0x40)
#define ANODE_G15P8 GET_NODE_WORD(0x1c, 0x80)
#define ANODE_G15P9 GET_NODE_WORD(0x1d, 0x01)
#define ANODE_G15P10 GET_NODE_WORD(0x1d, 0x02)
#define ANODE_G15P11 GET_NODE_WORD(0x1d, 0x04)
#define ANODE_G15P12 GET_NODE_WORD(0x1d, 0x08)
#define ANODE_G15P13 GET_NODE_WORD(0x1d, 0x10)
#define ANODE_G15P14 GET_NODE_WORD(0x1d, 0x20)
#define ANODE_G15P15 GET_NODE_WORD(0x1d, 0x40)
#define ANODE_G15P16 GET_NODE_WORD(0x1d, 0x80)
#define ICON_G16P1 {0x1e, 0x01}
#define ICON_G16P2 {0x1e, 0x02}
#define ICON_G16P3 {0x1e, 0x04}
#define ICON_G16P4 {0x1e, 0x08}
#define ICON_G16P5 {0x1e, 0x10}
#define ICON_G16P6 {0x1e, 0x20}
#define ICON_G16P7 {0x1e, 0x40}
#define ICON_G16P8 {0x1e, 0x80}
#define ICON_G16P9 {0x1f, 0x01}
#define ICON_G16P10 {0x1f, 0x02}
#define ICON_G16P11 {0x1f, 0x04}
#define ICON_G16P12 {0x1f, 0x08}
#define ICON_G16P13 {0x1f, 0x10}
#define ICON_G16P14 {0x1f, 0x20}
#define ICON_G16P15 {0x1f, 0x40}
#define ICON_G16P16 {0x1f, 0x80}
#define ICON_G1P1 {0x00, 0x01}
#define ICON_G1P2 {0x00, 0x02}
#define ICON_G1P3 {0x00, 0x04}
#define ICON_G1P4 {0x00, 0x08}
#define ICON_G1P5 {0x00, 0x10}
#define ICON_G1P6 {0x00, 0x20}
#define ICON_G1P7 {0x00, 0x40}
#define ICON_G1P8 {0x00, 0x80}
#define ICON_G1P9 {0x01, 0x01}
#define ICON_G1P10 {0x01, 0x02}
#define ICON_G1P11 {0x01, 0x04}
#define ICON_G1P12 {0x01, 0x08}
#define ICON_G1P13 {0x01, 0x10}
#define ICON_G1P14 {0x01, 0x20}
#define ICON_G1P15 {0x01, 0x40}
#define ICON_G1P16 {0x01, 0x80}
#define ICON_G2P1 {0x02, 0x01}
#define ICON_G2P2 {0x02, 0x02}
#define ICON_G2P3 {0x02, 0x04}
#define ICON_G2P4 {0x02, 0x08}
#define ICON_G2P5 {0x02, 0x10}
#define ICON_G2P6 {0x02, 0x20}
#define ICON_G2P7 {0x02, 0x40}
#define ICON_G2P8 {0x02, 0x80}
#define ICON_G2P9 {0x03, 0x01}
#define ICON_G2P10 {0x03, 0x02}
#define ICON_G2P11 {0x03, 0x04}
#define ICON_G2P12 {0x03, 0x08}
#define ICON_G2P13 {0x03, 0x10}
#define ICON_G2P14 {0x03, 0x20}
#define ICON_G2P15 {0x03, 0x40}
#define ICON_G2P16 {0x03, 0x80}
#define ICON_G3P1 {0x04, 0x01}
#define ICON_G3P2 {0x04, 0x02}
#define ICON_G3P3 {0x04, 0x04}
#define ICON_G3P4 {0x04, 0x08}
#define ICON_G3P5 {0x04, 0x10}
#define ICON_G3P6 {0x04, 0x20}
#define ICON_G3P7 {0x04, 0x40}
#define ICON_G3P8 {0x04, 0x80}
#define ICON_G3P9 {0x05, 0x01}
#define ICON_G3P10 {0x05, 0x02}
#define ICON_G3P11 {0x05, 0x04}
#define ICON_G3P12 {0x05, 0x08}
#define ICON_G3P13 {0x05, 0x10}
#define ICON_G3P14 {0x05, 0x20}
#define ICON_G3P15 {0x05, 0x40}
#define ICON_G3P16 {0x05, 0x80}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -