参考资料:https://download.csdn.net/download/Stark_/87424565?spm=1001.2014.3001.5501
转载注明出处:https://blog.csdn.net/Stark_/article/details/128929308
打印输出printf
printf("Hello,world!\n");
putchar();
参考:https://blog.csdn.net/sugarbliss/article/details/80230710
获取输入scanf
scanf();
getchar();
gets();
正弦波生成SinePattern
SinePattern函数产生一个正弦波型数组,该函数输出一个double型数组供使用。
SinePattern的原型:
AnalysisLibErrType SinePattern (ssize_t numberOfElements, double amplitude, double phaseDegrees, double numberOfCycles, double sinePattern[]);
输入参数:
输出参数
double sine[1000];
SinePattern(1000,1,0,2,sine);
//产生1000个数据点,幅值1,相位0,周期2,保存至数组sine
波形绘制YGraphPopup
绘图控件弹出菜单有四种图表显示格式:XGraphPopup 、 YGraphPopup、XYGraphPopup、WaveformGraphPopup
其中YGraphPopup画出以数组的索引为X轴坐标,数组元素作为Y轴坐标的一个曲线图
double sine[1000];
SinePattern(1000,1,0,2,sine);
YGraphPopup("sine wave",sine ,1000, VAL_DOUBLE);
//绘制窗口名称为sine wave,数据点为数据为sine ,数据点个数为1000,数据类型为VAL_DOUBLE
以上代码运行结果:
GUI界面主函数框架main
static int panelMain; //面板的全局句柄
//argc记录用户在运行程序的命令行的参数个数,在VS中默认为1,argv[0] 程序的全名。
//*argv[]是个指针数组,存放输入在命令行上的命令(字符串)
int main (int argc, char *argv[])
{if (InitCVIRTE (0, argv, 0) == 0) //CVI运行引擎初始化return -1; /* out of memory */if ((panelMain = LoadPanel (0, "Calculate.uir", PANEL_Main)) < 0) //加载主面板return -1; DisplayPanel (panelMain); //显示主面板RunUserInterface (); //开始消息队列循环,正常情况下死循环,直到用户主动关闭界面DiscardPanel (panelMain);return 0;
}
main 函数实现的功能分别是
CVI 运行引擎初始化(InitCVIRTE 函数)、
加载面板(LoadPanel 函数)、
显示面板(DisplayPanel 函数)、
开始消息队列循环(RunUserInterface 函数)。
其中,
RunUserInterface 会不断的检查面板的消息或者操作系统发送的消息,永远不会返回,除非用户主动调用 QuitUserInterface 函数中止消息循环。
所以,正常运行状态下,main 函数中的 DiscardPanel 永远不会被执行,main 函数永远不会退出,直到程序被关闭。
关闭程序QuitUserInterface
//主面板回调函数
int CVICALLBACK MainCallBack (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);//关闭面板0(主面板)break;}return 0;
}
获取控件参数值GetCtrlVal
int GetCtrlVal (int panelHandle, int controlID, void *value);
//其中value为控件的当前值变量的指针。panelHandle参数为函数面板的句柄,controlID为目标控件句柄
控件的句柄即[控件所在的面板的 Constant Name]_[控件
的 Constant Name]。
若控件所在面板的 Constant Name 为 PANEL,控件的 Constant Name 为 NAME,那么控件的句柄即为 PANEL_NAME。
double a;
GetCtrlVal(panelMain,PANEL_Main_PARA_A,&a);
//获取panelMain面板上,控件句柄为PANEL_Main_PARA_A的值,并存放至a的地址中
设置控件参数值SetCtrlVal
int SetCtrlVal (int panelHandle, int controlID, ...);
同 GetCtrlVal 一样,调用 SetCtrlVal 并填入面板、控件句柄之后即可设置控件的值
char ss[100];
sprintf(ss,"%f",a); //将double类型a的值转为字符串,存入char型数组ss
SetCtrlVal(panelMain,PANEL_Main_RESULT,ss);
//设置panelMain面板上,控件句柄为PANEL_Main_RESULT的值,设定值为ss地址中的数据
获取控件属性值GetCtrlAttribute
int GetCtrlAttribute (int panelHandle, int controlID, int controlAttribute, void *attributeValue);
输入参数:
controlID,控件 ID 号。
controlAttribute,控件属性标识符(参考 LabWindows/CVI 帮助)。
输出参数:
attributeValue,获取的控件属性值。
int ctrlAttr;/* 定义存储控件属性的变量*/
GetCtrlAttribute (mainpanel, MAINPANEL_QUIT,
ATTR_CMD_BUTTON_COLOR, &ctrlAttr);/*获得“Quit”控件的颜色*/
设置控件属性值SetCtrlAttribute
int SetCtrlAttribute (int panelHandle, int controlID, int controlAttribute, ...);
输入参数:
attributeValue,控件属性值
/*如果控件颜色不是红色,将其设置成红色*/
if(ctrlAttr!=VAL_RED)
SetCtrlAttribute (mainpanel, MAINPANEL_QUIT,
ATTR_CMD_BUTTON_COLOR, VAL_RED);
创建(打开)文件OpenFile
OpenFile 打开一个文件用以读或者写,函数返回文件句柄
int fileHandle;//文件句柄
fileHandle = OpenFile("FlieWriteRead.txt",VAL_READ_WRITE,VAL_TRUNCATE,VAL_ASCII);
//新建(如果有就打开)FlieWriteRead.txt文件
写文件WriteFile
WriteFile 将字符串缓冲区中指定字节数的内容写到文件中;
const char s2[] = "Flie Test";
WriteFile(fileHandle,s2,strlen(s2));
写文件WriteLine
WriteLine 将缓冲区中指定的字节数写入文件中,同时换行。
const char s1[] = "Hello,Word!";
WriteLine(fileHandle,s1,strlen(s1));
写文件ArrayToFile
ArrayToFile 将数组内容保存到文件中;
读文件ReadFile
ReadFile 从文件中读取指定字节数的内容到字符串缓冲区;
char ss[200];
ReadFile(fileHandle,ss+strlen(ss),100);
读文件ReadLine
ReadLine 从文件读取字节直到换行。
char ss[200];
ReadLine(fileHandle,ss,100);
读文件FileToArray
FileToArray 从文件中读取数据存储到数组中
关闭文件CloseFile
CloseFile 关闭指定的文件;
CloseFile(fileHandle);
删除文件DeleteFile
DeleteFile 删除文件
重命名文件RenameFile
RenameFile 重命名文件
复制文件CopyFile
CopyFile 复制文件
设置文件操作位置SetFilePtr
SetFilePtr(fileHandle,0,0); //将文件内部指针指向文件开头
另外,ANSI C 中对
文件的操作的函数如 fopen、fread、fputs 等函数在 CVI 中仍然可以使用