#include <formatio.h>
#include <utility.h>
#include <ansi_c.h>
#include <rs232.h>
#include <cvirte.h>
#include <userint.h>
#include "RJDFS100200-1K.h"
#define COM_BUF_LEN 50
#define COM_STATE_OPEN 1
#define COM_STATE_CLOSE 2
static int panelHandle;
static char gEventChar[2];
char ValidCom[20];
char COM_State=COM_STATE_CLOSE;
char state[60]={0};
char AutoSaveDIR[1024];
char DISP[10] = {0};
int nFileHandle;
int COM_Port = 1;
long Baud_Rate = 9600;
int Parity = 0;
int Data_Bits = 8;
int Stop_Bits = 1;
int SendIsHex = 0,RecvIsHex = 0;
int nAutoSaveToFile = 0;
double RF_OUT , FTW , STEP ;
double REF ;
char DATA_TX[14] ;
char FTW_CODE[8] ;
int REFP ;
double REFP_DIS ;
char C_dis ;
void CVICALLBACK Event_Char_Detect_Func (int portNo,int eventMask,void *callbackData);
int ComDetect(char ValidCom[]);
int OpenCloseTheCom(void);
void FlashState(void);
int main (int argc, char *argv[])
{
int i , y ;
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "RJDFS100200-1K.uir", PANEL)) < 0)
return -1;
SetCtrlVal (PANEL, PANEL_PORT, COM_Port); /* Open and Configure Com port 1 */
SetCtrlVal (PANEL, PANEL_PORT_BR, Baud_Rate); //OpenComConfig (2, "", 9600, 0, 8, 1, 512, 512);
SetCtrlVal (PANEL, PANEL_PORT_TEST, Parity);
SetCtrlVal (PANEL, PANEL_PORT_DATA, Data_Bits);
SetCtrlVal (PANEL, PANEL_PORT_STOP, Stop_Bits);
FlashState();
SetCtrlVal (PANEL, PANEL_STRING,state);
GetDir (AutoSaveDIR);
y = ComDetect(ValidCom);
{
char ComName[5] = "COM\0\0";
for(i=0;i< y;i++)
{
Fmt(ComName,"COM%d",ValidCom[i]);
InsertListItem (PANEL,PANEL_PORT, i, ComName,(int)ValidCom[i]);
}
}
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK PORT_FRESH (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int i , y ;
switch (event)
{
case EVENT_COMMIT:
if(COM_State == COM_STATE_OPEN)
{
if( ConfirmPopup ("Warning!","当前串口已打开,确认先将其关闭?") == 1)
{
OpenCloseTheCom();
}
else
{
return 0;
}
}
DeleteListItem (PANEL, PANEL_PORT, 0, -1); //删除全部
y = ComDetect(ValidCom);
{
char ComName[5] = "COM\0\0";
for(i=0;i<y;i++)
{
Fmt(ComName,"COM%d",ValidCom[i]);
InsertListItem (PANEL, PANEL_PORT, i, ComName,(int)ValidCom[i]);
}
}
break;
}
return 0;
}
int CVICALLBACK PORT_ENTER (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
GetCtrlVal (PANEL, PANEL_PORT, &COM_Port);
GetCtrlVal (PANEL, PANEL_PORT_BR, &Baud_Rate);
GetCtrlVal (PANEL, PANEL_PORT_TEST, &Parity);
GetCtrlVal (PANEL, PANEL_PORT_DATA, &Data_Bits);
GetCtrlVal (PANEL, PANEL_PORT_STOP, &Stop_Bits);
//update COM State
FlashState();
SetCtrlVal (PANEL, PANEL_STRING,state);
SetCtrlAttribute (PANEL,PANEL_STRING , ATTR_TEXT_COLOR, VAL_BLUE);
OpenCloseTheCom();
break;
}
return 0;
}
int CVICALLBACK RF_ENTER (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
float Att_Val = 0.0 ;
int Att_Set_Val = 0 ;
switch (event)
{
case EVENT_COMMIT:
GetCtrlVal(PANEL,PANEL_RFOUT,&Att_Val);
Att_Set_Val = Att_Val * 10 ;
DATA_TX[0] = 0X10 ;
DATA_TX[1] = 0X01 ;
DATA_TX[2] = Att_Set_Val % 256 ;
DATA_TX[3] = Att_Set_Val / 256 ;
DATA_TX[4] = 0x20 ;
DATA_TX[5] = 0x02 ;
if( GetComStat(COM_Port) < 0)
{
MessagePopup ("Warning!","串口未打开"); //Port not Open
}
else
{
ComWrt (COM_Port, DATA_TX , 6);
}
break;
}
return 0;
}
int CVICALLBACK RF_DOWN (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
float Att_Val = 0.0 , Att_Step ,Att_Set_Val_temp ;
int Att_Set_Val = 0 ;
switch (event)
{
case EVENT_COMMIT:
GetCtrlVal(PANEL,PANEL_RFOUT,&Att_Val);
GetCtrlVal(PANEL , PANEL_RF_STEP,&Att_Step) ;
Att_Set_Val_temp = Att_Val - Att_Step ;
Att_Set_Val = Att_Set_Val_temp * 10 ;
if(Att_Set_Val < 0 )
{
Att_Set_Val = 0 ;
Att_Set_Val_temp = 0.0 ;
MessagePopup("Error!","It's out of the ATT range!");
}
SetCtrlVal(PANEL , PANEL_RFOUT , Att_Set_Val_temp);
DATA_TX[0] = 0X10 ;
DATA_TX[1] = 0X01 ;
DATA_TX[2] = Att_Set_Val % 256 ;
DATA_TX[3] = Att_Set_Val / 256 ;
DATA_TX[4] = 0x20 ;
DATA_TX[5] = 0x02 ;
if( GetComStat(COM_Port) < 0)
{
MessagePopup ("Warning!","串口未打开"); //Port not Open
}
else
{
ComWrt (COM_Port, DATA_TX , 6);
}
break;
}
return 0;
}
int CVICALLBACK RF_UP (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
float Att_Val = 0.0 , Att_Step , Att_Set_Val_temp = 0 ;
int Att_Set_Val = 0 ;
switch (event)
{
case EVENT_COMMIT:
GetCtrlVal(PANEL,PANEL_RFOUT,&Att_Val);
GetCtrlVal(PANEL , PANEL_RF_STEP,&Att_Step) ;
Att_Set_Val_temp = Att_Val + Att_Step ;
Att_Set_Val = Att_Set_Val_temp * 10 ;
if(Att_Set_Val > 550 )
{
Att_Set_Val = 550 ;
Att_Set_Val_temp = 55.0 ;
MessagePopup("Error!","It's out of the ATT range!");
}
SetCtrlVal(PANEL , PANEL_RFOUT , Att_Set_Val_temp);
DATA_TX[0] = 0X10 ;
DATA_TX[1] = 0X01 ;
DATA_TX[2] = Att_Set_Val % 256 ;
DATA_TX[3] = Att_Set_Val / 256 ;
DATA_TX[4] = 0x20 ;
DATA_TX[5] = 0x02 ;
if( GetComStat(COM_Port) < 0)
{
MessagePopup ("Warning!","串口未打开"); //Port not Open
}
else
{
ComWrt (COM_Port, DATA_TX , 6);
}
break;
}
return 0;
}
int CVICALLBACK QUIT (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
CloseCom(COM_Port) ;
QuitUserInterface (0);
break;
}
return 0;
}
int OpenCloseTheCom(void)
{
int Err;
if(COM_State==COM_STATE_CLOSE)
{
Err = OpenComConfig (COM_Port, "", Baud_Rate, Parity, Data_Bits, Stop_Bits, 512, 512);
if(Err >= 0)
{
COM_State=COM_STATE_OPEN;
SetCtrlVal (PANEL, PANEL_LED, 1); //ON LED
SetCtrlAttribute (PANEL, PANEL_PORT_ENTER, ATTR_LABEL_TEXT, "关闭串口"); //charage OPENCLOSE Button Txt
/* Turn off Hardware handshaking (loopback test will not function with it on) */
SetCTSMode (COM_Port, LWRS_HWHANDSHAKE_OFF);
/* Make sure Serial buffers are empty */
FlushInQ (COM_Port);
FlushOutQ (COM_Port);
InstallComCallback (COM_Port, LWRS_RECEIVE, 1, (int)gEventChar[0] , Event_Char_Detect_Func, 0);
}
else
{
switch(Err)
{
case -1:
MessagePopup ("Error!","未知系统错误"); //Unknown system error
break;
case -2:
MessagePopup ("Error!","不可用端口号"); //Invalid port number
break;
case -3:
MessagePopup ("Error!","未能打开该端口"); //Port is not open
break;
case -4:
MessagePopup ("Error!","未知IO错误"); //Unknown I/O error
break;
case -5:
MessagePopup ("Error!","意外内部错误"); //Unexpected internal error
break;
case -6:
MessagePopup ("Error!","未找到该端口"); //No serial port found
break;
case -7:
MessagePopup ("Error!","无法打开该端口,可能被其他程序使用"); //Cannot open port
break;
default:
MessagePopup ("Error!","无法打开该端口"); //Cannot open port
break;
}
}
}
else
{
Err=CloseCom(COM_Port);
if(Err<0)
{
MessagePopup ("Error!","无法关闭串口"); //Can not Close COM Port
}
else
{
COM_State=COM_STATE_CLOSE;
SetCtr
I2C.rar_IO口通信_i2c_mq9i2c_ourta3
版权申诉
97 浏览量
2022-09-20
11:00:47
上传
评论
收藏 293KB RAR 举报
刘良运
- 粉丝: 66
- 资源: 1万+