You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

307 lines
10 KiB
C

2 years ago
/*********************************************************************
*<EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD>: ר<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: logos
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2016/10/19
*<EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>־: 2016/10/19 logos <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2017/02/24 logos <EFBFBD>޸<EFBFBD>
*PS: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľӿڹ<EFBFBD>Ӧ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ǵ<EFBFBD><EFBFBD><EFBFBD>def<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD>ӿ<EFBFBD>
<EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int wlog(string keyword, int err, string errmsg, string msg);
*Function: <EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>־
*Intput: keyword <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>
err <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
errmsg <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
msg <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
int vlog(string desc, string msg);
*Function: <EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>־
*Intput: desc <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
msg <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>Ϣ
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
2.1.12 update
1. <EFBFBD>޸<EFBFBD>aabģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug
2. <EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD>ξ߷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>/T1/R1/R2
3. <EFBFBD>޸<EFBFBD><EFBFBD>Ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>WaitM1/WaitM2
***********************************************************************/
#pragma once
#ifndef DLL_INCLUDE_SDK_COREWORK_H
#define DLL_INCLUDE_SDK_COREWORK_H
#ifndef WINAPI
#define WINAPI __stdcall
#endif
#ifndef EXPORT_C
#define EXPORT_C extern "C"
#endif
#ifndef MAX_BUF_LEN
#define MAX_BUF_LEN 256
#endif
#ifndef MAX_NAME_LEN
#define MAX_NAME_LEN 32
#endif
#ifndef MAX_IP_LEN
#define MAX_IP_LEN 16
#endif
struct CoreConfig
{//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char Config[MAX_NAME_LEN]; //<2F><><EFBFBD>ã<EFBFBD>
char ConfigD[MAX_NAME_LEN]; //<2F><><EFBFBD>ã<EFBFBD>
char lot[MAX_NAME_LEN]; //<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>/<2F>Ϻ<EFBFBD>
char machine[MAX_NAME_LEN]; //<2F>豸ID
char sitel[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
char project[MAX_NAME_LEN]; //<2F><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
char sublotname[MAX_NAME_LEN]; //<2F>Ӳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>/<2F>Ϻ<EFBFBD>
char BinA[MAX_NAME_LEN]; //BinA<6E><41>Ϣ<EFBFBD>趨ֵ
char serverip[MAX_IP_LEN]; //<2F><><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
char visionip[MAX_IP_LEN]; //<2F>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
int bNodeLog; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>¼Breakdown<77><6E>־
int testType; //<2F><><EFBFBD><EFBFBD>ģʽ 0 Ĭ<><C4AC>ģʽ 1-AAB 2-ABC
int bUpMes; //<2F>Ƿ<EFBFBD><C7B7>ϴ<EFBFBD>MES <20>ξ<EFBFBD><CEBE><EFBFBD>
int bUpMTcp; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>MTCP <20>ξ<EFBFBD><CEBE><EFBFBD>
int bUpNoise; //<2F>Ƿ<EFBFBD><C7B7>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int bSingleTestFilter; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>
int bDirDate; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
int bFourPic; //<2F>Ƿ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>Ʒ, Ĭ<><C4AC><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>Ʒ
int bSavePos; //<2F>Ƿ񻺴<C7B7>λ<EFBFBD><CEBB> Ĭ<>ϻ<EFBFBD><CFBB><EFBFBD>
int uphFrequency; //ʵʱuphˢ<68><CBA2>Ƶ<EFBFBD><C6B5> 0-1min 1-2min 2-5min 3-6min 4-10min 5-20min
int b2nd; //<2F>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int bTestlog; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>־
int bVisionlog; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ӡ<EFBFBD>Ӿ<EFBFBD>ͨѶ<CDA8><D1B6>־
int idualindex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A<><41> 1~(3-6)
int bPassTestB; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>pass<73>Ž<EFBFBD><C5BD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int bBindB; //B<><42><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ģʽ TC1->TCB1 TC2->TCB2
int iSimYield; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [0-100] Ĭ<><C4AC>100
int iSimCT; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CT <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> Ĭ<><C4AC>30s
int bSimTest1; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>̨
int bSimTest2;
int bSimTest3;
int bSimTest4;
int bSimTest5;
int bSimTest6;
};
enum TestStatus
{//<2F>ξ<EFBFBD>״̬
TestNoConn = 0, //δ<><CEB4><EFBFBD><EFBFBD>
TestRunning, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TestIdle, //<2F><><EFBFBD><EFBFBD>
TestWarn, //<2F>ξ߱<CEBE><DFB1><EFBFBD>
TestHoming, //<2F>ξ߻<CEBE>ԭ
};
struct TestMachine
{//<2F><><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD>
char ate[MAX_NAME_LEN]; //<2F>ξ߱<CEBE><DFB1><EFBFBD>
int benable; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD>
TestStatus status; //<2F>ξ<EFBFBD>״̬
int lastct; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>CT
int total; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int pass; //pass<73><73><EFBFBD><EFBFBD>
float yield; //<2F><><EFBFBD><EFBFBD>
};
enum EMapPos
{//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>ʲôλ<C3B4>ã<EFBFBD>
LocationVacm = 0, //<2F><><EFBFBD><EFBFBD>
LocationInput, //<2F><><EFBFBD>ϲ<EFBFBD>
LocationOk, //ok<6F><6B>
LocationNg1, //NG1<47><31>
LocationNg2, //NG2<47><32>
LocationNg3, //NG3<47><33>
LocationTest, //<2F><><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD>
};
struct TProduct
{//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
char sn[MAX_NAME_LEN]; //<2F><>ά<EFBFBD><CEAC>
char lot[MAX_NAME_LEN]; //<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>/<2F>Ϻ<EFBFBD>
char ate1[MAX_NAME_LEN]; //<2F>ξ߱<CEBE><DFB1><EFBFBD>1
char ate2[MAX_NAME_LEN]; //<2F>ξ߱<CEBE><DFB1><EFBFBD>2 NG1<47>β<EFBFBD><CEB2>д˱<D0B4><CBB1><EFBFBD>
char ate3[MAX_NAME_LEN]; //<2F>ξ߱<CEBE><DFB1><EFBFBD>3 NG2<47>β<EFBFBD><CEB2>д˱<D0B4><CBB1><EFBFBD>
char start[MAX_NAME_LEN]; //ȡ<><C8A1>ʱ<EFBFBD><CAB1> YYYY/MM/DD HH:MM:SS
char end[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> YYYY/MM/DD HH:MM:SS
char level[MAX_NAME_LEN]; //<2F><>Ʒ<EFBFBD>ȼ<EFBFBD> -- <20><>binʹ<6E><CAB9>
char failItems[MAX_BUF_LEN]; //<2F><><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD>Ŀ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B>ָ<EFBFBD>
int status; //<2F><><EFBFBD><EFBFBD>״̬ 1pass 0ng
EMapPos pos; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>λ<EFBFBD><CEBB>
int index; //<2F><>Ӧλ<D3A6>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ξߵڼ<DFB5><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĵڼ<C4B5><DABC><EFBFBD><EFBFBD><EFBFBD>
int count; //<2F><><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><CBBC><EFBFBD>?
int takeIndex; //ȡ<><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>λ<EFBFBD><CEBB>
};
typedef void(*callback) (int mode, char* content);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum CORE_ERR_CODE
{
ERR_NO_PRODUCT = -599, //<2F>޲<EFBFBD>Ʒ
ERR_EXIST_PRODUCT, //<2F>Ѿ<EFBFBD><D1BE>в<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
};
/****************************************************
*Function: <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI core_init();
/****************************************************
*Function: <EFBFBD>ͷ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI core_deinit();
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>
*Intput: NULL
*Output: NULL
*Return: <EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>(4λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
******************************************************/
EXPORT_C int WINAPI core_version();
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>
*Intput: cfg <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI core_set_cfg(CoreConfig* cfg);
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: cfg <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI core_get_cfg(CoreConfig* cfg);
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ -- ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>û<EFBFBD><EFBFBD>ж<EFBFBD>
*Intput: NULL
*Output: NULL
*Return: <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>ģʽ <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C const char* WINAPI get_test_model();
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>Ϣ
*Intput: sn <EFBFBD><EFBFBD>ά<EFBFBD><EFBFBD>
pdata <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI get_product_info(const char* sn, TProduct* pdata);
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>û<EFBFBD>ȡ<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>Ϣ
*Intput: pos <EFBFBD>ϲ<EFBFBD>λ<EFBFBD><EFBFBD> EMapPos
index <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pdata <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>в<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
*PS: pdata<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL<EFBFBD><EFBFBD><EFBFBD>жϲ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C int WINAPI get_product_by_pos(EMapPos pos, int index, TProduct* pdata = 0);
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡij<EFBFBD><EFBFBD>λ<EFBFBD>õIJ<EFBFBD>Ʒ<EFBFBD>б<EFBFBD> -- <EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>ʱ<EFBFBD><EFBFBD>snΪnull
*Intput: pos <EFBFBD>ϲ<EFBFBD>λ<EFBFBD><EFBFBD> EMapPos
pdata <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nsize <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
*Output: NULL
*Return: <EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ǰ<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*PS:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>NULL<EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>ٴλ<EFBFBD>ȡ
******************************************************/
EXPORT_C int WINAPI get_product_list(EMapPos pos, TProduct* pdata = 0, int nsize = 0);
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>Ʒ<EFBFBD><EFBFBD>Ϣ
*Intput: pdata <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nsize <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
*Output: NULL
*Return: <EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ǰ<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C int WINAPI get_all_product_info(TProduct* pdata = 0, int nsize = 0);
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD>
*Intput: index <EFBFBD>ξ߱<EFBFBD><EFBFBD><EFBFBD> [1-6]
benable 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI test_enable(int index, int benable = 1);
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>Ϣ
*Intput: index <EFBFBD>ξ߱<EFBFBD><EFBFBD><EFBFBD> [1-6]
*Output: pdata <EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>Ϣ
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI get_test_data(int index, TestMachine* pdata);
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD>
*Intput: index <EFBFBD>ξ߱<EFBFBD><EFBFBD><EFBFBD> [1-6]
sn <EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>ά<EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
*PS: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>sn<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξߣ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C int WINAPI test_debug(int index, const char* sn);
/****************************************************
*Function: ֪ͨһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>ԭ
*Intput: index <EFBFBD>ξ߱<EFBFBD><EFBFBD><EFBFBD> [1-6]
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI test_home(int index);
/****************************************************
*Function: ֪ͨһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD>λ
*Intput: index <EFBFBD>ξ߱<EFBFBD><EFBFBD><EFBFBD> [1-6]
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI test_reset(int index);
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Breakdown<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>¼ -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>־
*Intput: pszt <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pszmsg <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI vlog(const char* pszt, const char* pszmsg);
/****************************************************
*Function: <EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>־
*Intput: keyword <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
errcode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD><EFBFBD>Ч
errmsg errcode!=0ʱ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
msg <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
EXPORT_C int WINAPI wlog(const char* keyword, int errcode, const char* errmsg, const char* msg);
EXPORT_C int WINAPI regist_callback(callback fun);
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>