New project File-->New-->Workspace (Ctrl+Shift+N) File-->New-->User Interface Callback function PanelFunc Code-->Generate-->All Code (Alt,d,g,a) Yes Ok Program Termination V PanelFunc Ok Ok PanelTitle C projectname.c projectname.cws projectname.h projectname.prj projectname.uir CVI Page 1 C Headers h #include <> #include <cvirte.h> ansi_c.h cvirte.h <windows.h> utility.h rs232.h CVI Page 2 C CVI Variable type bytes 127 -128 1 char 255 0 1 unsigned char 4 int 4 unsigned int 8 double 2147483647 -2147483648 4294967295 0 1.7*10^308 1.7*10^-308 static char a; static int b; CVI Page 3 Operators sum = a+b; total = a-b; mult = a*b; average = sum/total; module = num % 10; counter++; counter--; >= <= != || && CVI Page 4 define #define Compiler copy-paste #include #define #define MAX_SIZE 100 MAX_SIZE CVI Page 5 Condition if if(state) { } if-else if(state) { else } else { if else } if - else if if(state1) { } else if(state2) { else } else if(state3) { { else { } switch(charcter) { case ('a'): { switch char break; break; } case ('b'): { break; } default: { } } switch(number) { switch int CVI Page 6 { int case (x): { break; break; } double case (y): { break; } default: { } } CVI Page 7 switch Loops while(counter < n) { while() counter++; } do{ do-while { while(state); for(i=0 ; i<n ; i++) { for() } CVI Page 8 Panel input/Output SetCtrlVal(panelHandle, PANEL_NUMERIC, x); x x int SetCtrlVal(panelHandle, PANEL_TEXTBOX, text); char text text[100] String GetCtrlVal(panelHandle, PANEL_NUMERIC, &x); x NUMERIC int & GetCtrlVal x & x x x x DeleteListItem (panelHandle, PANEL_RING_LEDCOLOR, 3, 1); & Ring CVI Page 9 Attribute SetCtrlAttribute(panelHandle, PANEL_NUMERIC, ATTR_TEXT_POINT_SIZE, size); SetCtrlAttribute Ctrl+P Ctrl+RMB Enter Control ID Control Attribute Insert function call Replace insert Insert Replace SetCtrlAttribute(panelHandle, PANEL_LED, ATTR_FRAME_COLOR, MakeColor(red,green,blue)); MakeColor() MakeColor(255,255,255 ) MakeColor(255,0,0) MakeColor(0,255,0) SetCtrlAttribute(panelHandle, PANEL_NUMERIC_FREQ, ATTR_DIMMED,1); SetCtrlAttribute(panelHandle, PANEL_NUMERIC_FREQ, ATTR_VISIBLE,0); DisplayImageFile(); image icon DisplayImageFile (panelHandle, PANEL_LED, "images\\LED\\48\\LEDRED 48.png"); CVI Page 10 String char \n char string[100]; sprintf(string, "Type text here"); EOF \n sprintf(text, "Hello %s your name is %d letters long",name ,nameLength); sprintf() int nameLength sprintf(tx,"7"); sprintf(tx,"%d,%d,%d,%d,%d,", mode,numOfSteps,spinDirection,typeOfSteps,stepperMot orRpm ); strlen(string); int strcmp("Guy",myName) CVI Page 11 text %d Event CVI EVENT_COMMIT EVENT_MOUSE_POINTER_MOVE EVENT_LEFT_CLICK EVENT_LEFT_DOUBLE_CLICK EVENT_TIMER_TICK EVENt_KEYPRESS EVENT_GOT_FOCUS EVENT_LOST_FOCUS CVI Page 12 Timer Callback function Interval Enabled ON/OFF toggle int CVICALLBACK timerBoss (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: GetCtrlVal(panelHandle, PANEL_TOGGLEBUTTON, &state); SetCtrlAttribute(panelHandle, PANEL_TIMER, CVI Page 13 SetCtrlAttribute(panelHandle, PANEL_TIMER, ATTR_ENABLED, state); break; } return 0; } SetCtrlAttribute(panelHandle, PANEL_TIMER, ATTR_INTERVAL, dt); CVI Page 14 dt Time&Date SetCtrlVal(panelHandle, PANEL_TIME, TimeStr()); TIME SetCtrlVal(panelHandle, PANEL_DATE, DateStr()); DATE CVI Page 15 Multi Panels Panel Contant name PANEL2 Callback function PanelFunc2 static int panelHandle2; panelHandle main if ((panelHandle = LoadPanel (0, "Test2.uir", PANEL)) < 0) return -1; if ((panelHandle2 = LoadPanel (0, "Test2.uir", PANEL2)) < 0) return -1; DiscardPanel (panelHandle); DiscardPanel (panelHandle2); Panel Callback CVI Page 16 Generate Code CVICALLBACK int CVICALLBACK PanelFunc2 (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: break; } return 0; } int CVICALLBACK PanelFunc2 (int panel, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_GOT_FOCUS: EVENT_CLOSE break; case EVENT_LOST_FOCUS: break; case EVENT_CLOSE: HidePanel(panelHandle2); break; } return 0; } int CVICALLBACK showPanel2 (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DisplayPanel(panelHandle2); break; } return 0; } CVI Page 17 uir LoadPanel(); uir panelHandle2 = LoadPanel (0, "Demo9.uir", PANEL_2); RunUserInterface(); CVI DiscardPanel(); HidePanel(panelHandle2); CVI Page 18 CVI Graph PlotXY (panelHandle2, PANEL_GRAPH, time_arr, temp1_arr, counter, VAL_DOUBLE, VAL_DOUBLE, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED); PlotPoint (panelHandle, PANEL_GRAPH, x, y, VAL_SOLID_CIRCLE, VAL_YELLOW); PlotLine (panelHandle, PANEL_GRAPH, j, 0, j, studentGrade, VAL_RED); SetPlotAttribute (panelHandle, PANEL_GRAPH, plothandle, ATTR_PLOT_THICKNESS, 5); DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW); InsertAxisItem (panelHandle, PANEL_GRAPH, VAL_BOTTOM_XAXIS, -1, axisMarkString, j); Bottom X-axis Axis label Strings Enable Label Strings Edit label strings SetCtrlAttribute (panelHandle2, PANEL2_GRAPH2, ATTR_YNAME, "Wheel Speed"); CVI Page 19 Files FILE *fp; #include <ansi_c.h> SavePanelState (panelHandle, "data.txt", 0); RecallPanelState(); FileSelectPopup(); Argument Type 1 char Defualt director Description 2 char Default file spec 3 char 4 char Title 5 int Button label 6 int Restrict directory 7 int Restrict extansion 8 int Allow cancel 9 int Allow make directory 10 char 11 int int Path name Selction status FILE *fp; case EVENT_COMMIT: fp=fopen("myData.txt","w"); fprintf(fp,"Hello Test 1"); fclose(fp); write w a OpenDocumentInDefaultViewer ("myData.txt", VAL_NO_ZOOM); break; fp=fopen("myData.csv","w"); fprintf(fp,"Input,Output\n"); CSV \n fclose(fp); OpenDocumentInDefaultViewer ("myData.csv", VAL_NO_ZOOM); fgets (line, 99, fp); char remove("filename"); remove("folder\\filename"); CopyFile ("Data.csv", "UserSavedData\\SavedData.csv"); CVI Page 20 Line 99 Fp Functions Prototype #include void guyFunc(int a); void autoSave(void); int doCableTensionVerfication(void); CVI Callback int CVICALLBACK onLedToggle (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: doLedToggle(); break; } return 0; } doLedToggle(); CALLBACK CVICALLBACK CVICALLBACK doLedToggle() CVI Page 21 CVI Pop up MessagePopup(title,message); title message MessagePopup("Eror","File not selected"); CVI Page 22 Menu bar Menu-Bar Menu-Bar UIR Edit--> Menu bar--> Create Code--->Generate-->Menu Callback MENUBAR CVI Page 23 Menu Bar Tables List&Table Table Control Apperance Scroll bars None Auto Edit table Edit Column Use label text Label Type Cell Numberic, String, Picture,Ring Edit Cell Center Center Text style Copy row Copy column Callback function Auto Edit table CVI Page 24 Random seed srand(time(0)) srand 1/1/1900 x=rand()%2; int x=rand()%6; int x=1+rand()%6; int -1,0,1 x=-1+rand()%3; y=( (double)rand()/RAND_MAX ); double y=( (double)rand()/RAND_MAX )*2; double CVI Page 25 Canvas (0,0) CanvasDrawPoint (panelHandle, PANEL_CANVAS, MakePoint(10,7)); (10,7) CanvasStartBatchDraw (panelHandle, PANEL_CANVAS); CanvasEndBatchDraw(panelHandle, PANEL_CANVAS); SetCtrlAttribute (panelHandle, PANEL_CANVAS, ATTR_PEN_WIDTH, 5); CanvasClear(panelHandle, PANEL_CANVAS, VAL_ENTIRE_OBJECT); GetCtrlAttribute(panelHandle, PANEL_CANVAS, ATTR_HEIGHT, &h); h GetCtrlAttribute(panelHandle, PANEL_CANVAS, ATTR_WIDTH, &w); w GetBitmapFromFile ("images\\GuyarosLogoGold100x65.png", &bitmapID1); CanvasDrawBitmap (panelHandle, PANEL_CANVAS, bitmapID1, VAL_ENTIRE_OBJECT, MakeRect(top,left,height,width)); MakeRect(); int GetRelativeMouseState (panelHandle, PANEL_CANVAS, &mx, &my, 0, 0, 0); CVI Page 26 Distribution Installer Debug CVI Build--> Configoration--> Release Build--> Target settings-->Embed project .UIRs Build-->Distributions--> Menage Distributions New Ok Type 32 bit 64bit 64bit ok files Program.exe Drive&Components CVI Page 27 Serial communication OpenComConfig(COM_PORT,"COM7", 9600, 0, 8, 1, 0, 0); Port number int Device name char Baud rate int COM6 COM7 9600 Arduino Pairty int Data bits int Stop bits int Input queue size int Output queue size int portNum=7; sprintf(portString, "COM%d", portNum); baudRate=115200; OpenComConfig (portNum, portString, baudRate, 0, 8, 1, 512, -1); ComWrt(ArduinoPortNumber, string, stringLength); COM7 Arduino portNum=7; sprintf(tx,"7"); ComWrt(portNum,tx,strlen(tx)); strlen() FlushOutQ(portNum); buffer CloseCom(portNum); CVI Page 28 Icon Build-->Target settings Application Icon file Tools-->Icon Editor CVI CVI Page 29 Help Ctrl+Space Ctrl+P 036393737 National Instruments CVI Page 30 Misc GetCtrlDisplayBitmap (panelHandle, PANEL_TITLE, 0, &image_id); InetLaunchDefaultWebBrowser("www.guyaros.com"); SetMouseCursor (VAL_CROSS_HAIR_CURSOR); PlotStripChartPoint (panelHandle, PANEL_STRIPCHART, value); ReFFT (array, EmptyArryOutput, 5000); CVI Page 31
© Copyright 2025