?? d12_ctl.c
字號:
#include <cvirte.h>
#include <userint.h>
#include "D12_ctl.h"
#include <ansi_c.h>
#include <windows.h>
#include <formatio.h>
static int panelHandle;
/*-------------------------------------------------------------------------------------------------------*/
typedef int DLLEXPORT (*DLLCdeclFunction)(int pipenum,unsigned char *recbuffer,int len,int waittime);//定義函數(shù)指針
/*-------------------------------------------------------------------------------------------------------*/
HMODULE EasyUsb_dll;
DLLCdeclFunction WriteData_f;
DLLCdeclFunction ReadData_f;
unsigned char led1_code[6] = {0x78,0x56,0x34,0x12,0xf1,0xf2};
unsigned char led2_code[6] = {0x78,0x56,0x34,0x12,0xf2,0xf2};
unsigned char led3_code[6] = {0x78,0x56,0x34,0x12,0xf3,0xf2};
unsigned char ledo_code[6] = {0x78,0x56,0x34,0x12,0xf4,0xf2};
unsigned char read_data[100] = {0,1,2,3,4,5,};
unsigned char disp_data[100];
unsigned char xmit_data[100];
unsigned char xmit_no = 0;
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "D12_ctl.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
/*-------------------------------------------------------------------------------------------------------*/
EasyUsb_dll = LoadLibrary("EasyUSB.dll"); //裝載動態(tài)鏈接庫mydll.dll
if (EasyUsb_dll != NULL) { //成功裝載動態(tài)鏈接庫mydll.dll
WriteData_f = (DLLCdeclFunction)GetProcAddress(EasyUsb_dll, (LPCSTR)"WriteData"); //取函數(shù)指針地址
ReadData_f = (DLLCdeclFunction)GetProcAddress(EasyUsb_dll, (LPCSTR)"ReadData"); //取函數(shù)指針地址
if (WriteData_f == NULL)
MessagePopup ("CVI MessagePopup ", "WriteData is not in the dll library");
if (ReadData_f == NULL)
MessagePopup ("CVI MessagePopup ", "ReadData is not in the dll library");
} else {
MessagePopup ("CVI MessagePopup ", "load EasyUSB.dll err,please cheak");
}
RunUserInterface ();
DiscardPanel (panelHandle);
if (EasyUsb_dll != NULL)
FreeLibrary(EasyUsb_dll);//卸載動態(tài)鏈接庫mydll.dll
return 0;
}
int CVICALLBACK PanelCallBack (int panel, int event, void *callbackData,
int eventData1, int eventData2)
{
switch (event)
{
case EVENT_GOT_FOCUS:
break;
case EVENT_LOST_FOCUS:
break;
case EVENT_CLOSE:
QuitUserInterface (0);
break;
}
return 0;
}
int CVICALLBACK LEDOffCallBack (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int ret;
switch (event)
{
case EVENT_COMMIT:
ret = WriteData_f(1, ledo_code, 6, 1000);//調(diào)用dll函數(shù)!!!
if(ret != 6 )
MessagePopup("D12_ctl", "Transmit err...");
break;
}
return 0;
}
int CVICALLBACK LED3CallBack (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int ret;
switch (event)
{
case EVENT_COMMIT:
ret = WriteData_f(1, led3_code, 6, 1000);//調(diào)用dll函數(shù)!!!
if(ret != 6 )
MessagePopup("D12_ctl", "Transmit err...");
break;
}
return 0;
}
int CVICALLBACK LED2CallBack (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int ret;
switch (event)
{
case EVENT_COMMIT:
ret = WriteData_f(1, led2_code, 6, 1000);//調(diào)用dll函數(shù)!!!
if(ret != 6 )
MessagePopup("D12_ctl", "Transmit err...");
break;
}
return 0;
}
int CVICALLBACK LED1CallBack (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int ret;
switch (event)
{
case EVENT_COMMIT:
ret = WriteData_f(1, led1_code, 6, 1000);//調(diào)用dll函數(shù)!!!
if(ret != 6 )
MessagePopup("D12_ctl", "Transmit err...");
break;
}
return 0;
}
int CVICALLBACK WREP2_CallBack (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int ret;
switch (event)
{
case EVENT_COMMIT:
ret = WriteData_f(1, xmit_data, 6, 1000);//調(diào)用dll函數(shù)!!!
if(ret != 6 )
MessagePopup("D12_ctl", "Transmit err...");
break;
}
return 0;
}
char msg[100];
int CVICALLBACK RDEP2_CallBack (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int i;
int k = 0;
int read_num;
int this_num;
switch (event)
{
case EVENT_COMMIT:
read_num = ReadData_f(0, read_data, 6, 1000);
if((read_num == 6) && (read_data[0] == 0x01) && (read_data[1] == 0x02) && (read_data[2] == 0x03) && (read_data[3] == 0x04)) {
this_num = read_data[5];
read_num = ReadData_f(2, read_data, this_num, 1000);
if(read_num <= 0)
MessagePopup("D12_ctl", "Read data err...");
else {
for(i = 0; i < read_num - 1; i++) {
if(k == 16) {
Fmt (msg, "%x \n", read_data[i]);
SetCtrlVal (PANEL, PANEL_RCV_BOX, msg);
k = 0;
} else {
Fmt (msg, "%x ", read_data[i]);
SetCtrlVal (PANEL, PANEL_RCV_BOX, msg);
k++;
}
}
Fmt (msg, "%x\n", read_data[i]);
SetCtrlVal (PANEL, PANEL_RCV_BOX, msg);
}
} else {
MessagePopup("D12_ctl", "no ack");
}
break;
}
return 0;
}
int CVICALLBACK XMITCallBack (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int key_vk;
int key_asc;
static unsigned char flag = 0;
static unsigned char tmp;
switch (event)
{
case EVENT_COMMIT:
break;
case EVENT_KEYPRESS:
key_asc = eventData1 & VAL_ASCII_KEY_MASK;
key_vk = eventData1 & VAL_VKEY_MASK;
if(flag) {
flag = 0;
xmit_data[xmit_no] = (tmp<<4) | key_asc;
Fmt (msg, "%x",xmit_data[xmit_no]);
MessagePopup("D12 message",msg);
xmit_no ++;
} else {
tmp = key_asc;
flag = 1;
}
break;
}
return 0;
}
int CVICALLBACK usb_timer_callback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int i;
int k = 0;
int read_num;
int this_num;
switch (event)
{
case EVENT_TIMER_TICK:
read_num = ReadData_f(0, read_data, 6, 1000);
if((read_num == 6) && (read_data[0] == 0x01) && (read_data[1] == 0x02) && (read_data[2] == 0x03) && (read_data[3] == 0x04)) {
this_num = read_data[5];
read_num = ReadData_f(2, read_data, this_num, 1000);
if(read_num <= 0)
MessagePopup("D12_ctl", "Read data err...");
else {
for(i = 0; i < read_num - 1; i++) {
if(k == 16) {
Fmt (msg, "%x \n", read_data[i]);
SetCtrlVal (PANEL, PANEL_RCV_BOX, msg);
k = 0;
} else {
Fmt (msg, "%x ", read_data[i]);
SetCtrlVal (PANEL, PANEL_RCV_BOX, msg);
k++;
}
}
Fmt (msg, "%x\n", read_data[i]);
SetCtrlVal (PANEL, PANEL_RCV_BOX, msg);
}
}
break;
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -