199 lines
6.8 KiB
C

// The following ifdef block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the ICO1000_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// ICO1000_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
//#ifdef ICO1000_EXPORTS
//#define ICO1000_API __declspec(dllexport)
//#else
//#define AxHWInfo_API __declspec(dllimport)
//#endif
#ifndef AxHWInfo_H
#define AxHWInfo_H
#define ID_SBC86831 1
#define ID_SBC84620 2
#define ID_SBC86837 3
// Windows OS Version define
//32bit OS
#define OS_WIN95 0x0001
#define OS_WIN98 0x0002
#define OS_WINME 0x0003
#define OS_WIN2000 0x0004
#define OS_WINNT 0x0005
#define OS_WINXP 0x0006
#define OS_VISTA 0x0007
#define OS_SERVER2003 0x0008
#define OS_WINDOWS7 0x0009
//64bit OS
#define OS64_WINXP 0x0101
#define OS64_VISTA 0x0102
#define OS64_WINDOWS7 0x0103
//Digital IO pin define
#define DIO_PIN0 0x01
#define DIO_PIN1 0x02
#define DIO_PIN2 0x04
#define DIO_PIN3 0x08
#define DIO_PIN4 0x10
#define DIO_PIN5 0x20
#define DIO_PIN6 0x40
#define DIO_PIN7 0x80
// DIO Direction Setting
#define DIO0_OUTPUT 0x00
#define DIO0_INPUT 0x01
#define DIO1_OUTPUT 0x00
#define DIO1_INPUT 0x02
#define DIO2_OUTPUT 0x00
#define DIO2_INPUT 0x04
#define DIO3_OUTPUT 0x00
#define DIO3_INPUT 0x08
#define DIO4_OUTPUT 0x00
#define DIO4_INPUT 0x10
#define DIO5_OUTPUT 0x00
#define DIO5_INPUT 0x20
#define DIO6_OUTPUT 0x00
#define DIO6_INPUT 0x40
#define DIO7_OUTPUT 0x00
#define DIO7_INPUT 0x80
//Watch Dog Timer define
#define bWDT_MINUTE 0x0100
#define bWDT_SECOND 0x0000
#define bWDT_ENABLE 0x0001
#define bWDT_DISABLE 0x0002
#define bWDT_RELOAD 0x0003
#define bWDT_EVENT 0x0004
#define bWDT_EVENT_CLR 0x0005
//*******************************
//**** Smart Battery Kit define
//*******************************
//AxGetBatteryKitStatus
#define fExist_BatteryCharger 0x00000001 //bit 0~7 BatteryKit Exist
#define fExist_BatteryData 0x00000002
#define fExist_BatterySelector 0x00000004
#define fChargerInhibit 0x00000100 //bit 8~15 charger status
#define fAC_Present 0x00000200
#define fBattery_Present 0x00000400
#define fBatteryFullCharged 0x00010000 //bit 16~23 battery status
#define fBatteryDischarging 0x00020000
#define fBatteryOverTempAlarm 0x00040000
// //bit 24~31 selector status
//AxSetChargerMode
#define bInhibitCharge 0x0001
#define bEnablePolling 0x0002
#define bPowerOnDefault 0x0004
#define bChargingToZero 0x0008
//AxSetBatteryMode
#define bEnableInternalCharger 0x0100 //bit8
#define bPrimaryBattery 0x0200 //bit9
#define bDisableAlarmBroadcasts 0x2000 //bit13
#define bDisableBroadcastsCharging 0x4000 //bit14,disable charging vlotage and current broadcasts
#define bReportWattMode 0x8000 //bit15, set mA to mW
typedef struct BATTERY_MANUFACTURER {
wchar_t sManufacturerName[33];
wchar_t sDeviceName[33];
wchar_t sDeviceChemistry[33];
}AxBatteryManufacturer;
typedef struct BATTERY_CAPACITY {
unsigned short PercentageOfFull;
unsigned short PercentageOfDesign;
unsigned short RemainingCapacity;
unsigned short FullChargeCapacity;
unsigned short DesignCapacity;
}AxBatteryCapacity;
typedef struct BATTERY_RUNTIME {
short PercentageOfFull;
short BatteryCurrent;
short BatteryVoltage;
unsigned short RunTimeToEmpty;
unsigned short Temperature;
}AxBatteryRuntime;
typedef struct SBC_DS2401 {
long double dlBoardID;
unsigned char bBoardID[6];
unsigned char sBoardID[13];
}sbc_ds2401;
#ifdef AXuAPI_DLL
#define AXuAPI _declspec(dllexport)
#else
//#define AXuAPI _declspec(dllimport)
#define AXuAPI
#endif
extern "C"
{
/** Hardware Library Control Function **/
AXuAPI BOOL __stdcall AxBoardLoadLibrary(char *dllname);
AXuAPI BOOL __stdcall AxBoardReleaseLibrary(void);
/*************** Needs Boadr Level Library -Start- ***************/
/** Hardware Monitor Function ***/
AXuAPI BOOL __stdcall AxGetCPUTemp(float * fValue);
AXuAPI BOOL __stdcall AxGetSYSTemp(float * fValue);
AXuAPI BOOL __stdcall AxGetGMCHTemp(float * fValue);
AXuAPI BOOL __stdcall AxGetCPUFAN(float * fValue);
AXuAPI BOOL __stdcall AxGetSYSFAN(float * fValue);
AXuAPI BOOL __stdcall AxGetGMCHFAN(float * fValue);
AXuAPI BOOL __stdcall AxGetCPUVcore(float * fValue);
AXuAPI BOOL __stdcall AxGetNBVTT(float * fValue);
AXuAPI BOOL __stdcall AxGet3V(float * fValue);
AXuAPI BOOL __stdcall AxGet5V(float * fValue);
AXuAPI BOOL __stdcall AxGet12V(float * fValue);
AXuAPI BOOL __stdcall AxGetNeg5V(float * fValue);
AXuAPI BOOL __stdcall AxGetNeg12V(float * fValue);
AXuAPI BOOL __stdcall AxGetVbat(float * fValue);
/** Digital IO Function **/
AXuAPI BOOL __stdcall AxGetDI(int pin, int *pinData);
AXuAPI BOOL __stdcall AxGetDO(int pin, int *pinData);
AXuAPI BOOL __stdcall AxSetDO(int pin, int *pinData);
AXuAPI BOOL __stdcall AxGetDIOValidPin(int pin, int *pinData);
AXuAPI BOOL __stdcall AxSetDIODirection(int pin, int *pinData);
/** Watch dog Timer Function **/
AXuAPI BOOL __stdcall AxWDTSetCounter(int timeCounter);
AXuAPI BOOL __stdcall AxWDTexec(int subFunction);
AXuAPI BOOL __stdcall AxWDTOutputPin(int sunFunction);
AXuAPI BOOL __stdcall AxWDTEvent(int sunFunction, int *repData);
/*************** Needs Boadr Level Library -End- ******************/
/** Unique Board ID Function **/
AXuAPI BOOL __stdcall AxGetBoardID(SBC_DS2401 *sbc_bid);
/* Utilities Function **/
AXuAPI int __stdcall AxOS_Version(void);
AXuAPI BOOL __stdcall AxSystemReboot(void);
AXuAPI BOOL __stdcall AxSystemShutdown(void);
AXuAPI BOOL __stdcall AxSBC_BIOSID(char *biosid);
/* SMBus I2C Function */
AXuAPI BOOL __stdcall AxQueryI2CDevice(UCHAR I2CAddress);
AXuAPI BOOL __stdcall AxReadI2CByte(UCHAR I2CAddress, UCHAR I2CRegister, LPBYTE pDataBuffer);
AXuAPI BOOL __stdcall AxReadI2CWord(UCHAR I2CAddress, UCHAR I2CRegister, LPBYTE pDataBuffer);
AXuAPI BOOL __stdcall AxWriteI2CByte(UCHAR I2CAddress, UCHAR I2CRegister, LPBYTE pDataBuffer);
AXuAPI BOOL __stdcall AxWriteI2CWord(UCHAR I2CAddress, UCHAR I2CRegister, LPBYTE pDataBuffer);
AXuAPI BOOL __stdcall AxGetSMBusAddress(USHORT * pSMBusAddress);
AXuAPI BOOL __stdcall AxReadI2CBlock(UCHAR I2CAddress, UCHAR I2CRegister, LPBYTE pDataBuffer);
/* Smart Battery Kit Function */
AXuAPI BOOL __stdcall AxGetBatteryKitStatus(ULONG * plBatteryKitStatus);
AXuAPI BOOL __stdcall AxGetBatteryManufacturer(AxBatteryManufacturer * pBatteryManufacturer);
AXuAPI BOOL __stdcall AxGetBatteryCapacity(AxBatteryCapacity * pBatteryCapacity);
AXuAPI BOOL __stdcall AxGetBatteryRuntime(AxBatteryRuntime * pBatteryRuntime);
AXuAPI BOOL __stdcall AxSetChargerMode(USHORT wChargerMode);
AXuAPI BOOL __stdcall AxSetBatteryMode(USHORT wBatteryMode);
AXuAPI BOOL __stdcall AxGetBatteryMode(USHORT * pwBatteryMode);
}
#endif