Back
Virtual
Instrument Array of ActiveX for MATLAB
I want to extend MATLAB's functions by VC for a long time. For no pressure,
it is only a thought. These days, I wok with US students, most of them
use MATLAB. I have no selection except to fit them. I try to use DLL and
ActiveX to integrate VC to MATLAB. Both of them work, but ActiveX is more
reasonable.
I design a ActiveX of Virtual Instrument Array to integrate my work
into MATLAB. I work in VC, US students work in MATLAB, both of us are happy
now.
Below is a list of Virtual Instrument Controls that I designed:
:
Press here to download VI array ActiveX
with MATLAB Samples.(160KB)
.
Only four sentences are needed in MATLAB.
.
1. Insert VI Array ActiveX into MATLAB
VIHandle=actxcontrol('VIArrayMatlab.VIArrayMatlabCtrl.1', [x
y w h], figureHandle);
2. Insert VI Control into MATLAB
v = invoke (VIHandle, 'addIC2Container','ICName',ICID,'x,y,w,h','x,x,,...,x',x,x,....,x','','','','','');
3. Set Value of VI Control
invoke (VIHandle, 'setICValue',ICID,Line,Value);
3. Set Value of VI Control
value = invoke (VIHandle, 'getICValue',ICID,Line);
This is a sample of MATLAB, which shows how to integrate VI Array of
ActiveX into MATLAB:
Init Part
hl=actxcontrol('VIArrayMatlab.VIArrayMatlabCtrl.1', [0 0 550
160], fig);
v = invoke (hl, 'addIC2Container','RMeter',6000,'20,20,100,100','5,5,16777170,0,9,10','0,10,4,8,9,1,0','','','','','');
v = invoke (hl, 'addIC2Container','RMeter',6001,'160,20,100,100','5,5,15,0,9,10','0,100,4,8,9,1,1','','','','','');
v = invoke (hl, 'addIC2Container','DigitalMeter',6002,'300,40,160,60','10,10,10,25','7,15,4,0,10,1,1','0,100,0,1','','','','');
CallBack Part
v = invoke (hl, 'setICValue',6000,0,Amp);
v = invoke (hl, 'setICValue',6001,0,F);
v = invoke (hl, 'setICValue',6002,0,Pha);
Call Method of different VI Controls.
Label
Call:
addIC2GWVI("Font",ID,"x,y,w,h","s,c,e","Title","
type,bg, fg ,vc ","","","","");
Parameter:
"Font":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e: s=font
size, c=font position, e=font effect
Title: Text
Type,bg,fg,vc:
Dispaly Type, Background Color, Text Color, Gradient
Example:
addIC2Container("Font",7000,"10,10,100,24","11,1,0","ABCDE","0,2,14,1","","","","");
addIC2Container("Font",7000,"10,10,24,100","11,1,0","ABCDE","1,2,14,1","","","","");
addIC2Container("Font",7000,"10,10,24,100","11,1,0","ABCDE","2,2,14,1","","","","");
[back]
.
Arrorw
Call:
addIC2GWVI("Arrow",ID,"x,y,w,h
","c,t1,t2,t","","","","","","");
Parameter:
"Arrow":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
c,t1,t2£ºArrow
color, type of start point and end point
Example:
addIC2Container("Arrow",7000,"100,100,100,20","484286,1,1,0","","","","","","");
addIC2Container("Arrow",7000,"100,100,100,20","484286,1,1,1","","","","","","");
[back]
.
Border
Call:
addIC2GWVI("EdgeLine",ID,"x,y,w,h","type,
width","","","","","",¡±¡±);
Parameter:
"
EdgeLine": VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
type, width:
Border type, Width of border
Example:
addIC2Container("EdgeLine",7000,"10,10,200,120","0,3","","","","","","");
[back]
.
Line
Call:
addIC2Container("LineTracker",ID,"x1,y1,x2,y2,x3,y3,x4,y4","color","","","","","","");
Parameter:
"
LineTracker ": VI name
ID: Resourcer
ID
x1,y1,x2,y2,x3,y3,x4,y4:
Position on nodes
color: Line
color
Example:
addIC2Container("LineTracker",6000,"10,100,110,100,110,150,210,150","12","","","","","","");
[back]
.
Digital
Call:
addIC2GWVI("Digital",ID,"x,y,w,h","s,c,e","max,min,step,value","call","","","","");
Parameter:
"Digital":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e: s=font
size, c=font position, e=font effect
max,min,step,value:
Maximum Value, Minimun Value, Step, Display Value
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("Digital",7000,"200,100,100,22","11,1,0","10,0,0.1,5","","","","","");
[back]
.
EditBox
Call:
addIC2GWVI("EDIT",ID,"x,y,w,h","
s,c,e","value","type","call","","","");
Parameter:
"EDIT":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e: s=font
size, c=font position, e=font effect
value: Dispaly
value
type: Data
Type, 0=Data, 1=String
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("EDIT",6000,"20,20,100,24","12,0,0","100","0","","","","");
[back]
.
ChoiceBox
Call:
addIC2GWVI("Select",ID,"x,y,w,h","s,c,e","O1#O2#¡.#","t,bg,fg,vc,n,v","call","","","");
Parameter:
"Select":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e: s=font
size, c=font position, e=font effect
O1#O2#O3#O4#¡#:
Items of selection, separated by "#"
t,bg,fg,vc,n,v:
t=0Horiz/1Vert, Background Color, Text Color, Number of Boxs, Current selection
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("Select",6000,"10,40,80,100","11,1,0","Option1#Option2#Option3#Option4#","3,7,0,4,0","","","","");
addIC2Container("Select",6000,"10,80,300,28","11,1,0","Option1#Option2#Option3#Option4#","2,7,0,4,0","","","","");
[back]
.
Droplist
Call:
addIC2GWVI("COMBOX",ID,"x,y,w,h","size,center,effect,st","item1,¡,itemn
","","","","",¡±¡±);
Parameter:
"COMBOX":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e, st:
s=font size, c=font position, e=font effect, st=current item
item1,¡,itemn:
Data of items, separated by ","
Example:
addIC2Container("COMBOX",7000,"10,10,100,22","11,0,0,0","1,16,32,64","","","","","");
[back]
.
MultButton
Call:
addIC2GWVI("Xbutton",ID,"x,y,w,h","s,c,e","O1#O2#¡.#","t,bg,fg,vc,n,v
","call","","","");
Parameter:
"Xbutton":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e: s=font
size, c=font position, e=font effect
O1#O2#O3#O4#¡#:
Items of selection, separated by "#"
t,bg,fg,vc,n,v:
t=0Horiz/1Vert, Background Color, Text Color, Number of Boxs, Current selection
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("XButton",6000,"10,40,280,28","11,1,0","Option1#Option2#Option3#Option4#","0,11,0,1,4,0","","","","");
addIC2Container("XButton",6000,"10,80,100,120","11,1,0","Option1#Option2#Option3#Option4#","1,10,0,1,4,0","","","","");
[back]
.
Button
Call:
addIC2GWVI("Button",ID,"x,y,w,h","s,c,e","Title","
t,bg, fg ,vc ","call","","","");
Parameter:
"Button":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e: s=font
size, c=font position, e=font effect
t,bg,fg,vc:
Button type, Background Color, Text Color, Graident effect
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("Button",7000,"10,30,100,30","11,1,0","On/Off","0,4,14,1","","","","");
addIC2Container("Button",7000,"10,70,100,30","11,1,0","Run","1,1,14,1","","","","");
addIC2Container("Button",7000,"10,120,40,80","11,1,0","Run","2,2,2,1","","","","");
addIC2Container("Button",7000,"100,120,80,40","11,1,0","Run","3,2,2,1","","","","");
addIC2Container("Button",7000,"200,70,40,80","11,1,0","Run","4,12632256,2,1","","","","");
addIC2Container("Button",7000,"200,70,40,80","11,1,0","Run","5,7,2,1","","","","");
addIC2Container("Button",7001,"200,170,80,40","11,1,0","Run","6,7,1,1","","","","");
[back]
.
GeoButton
Call:
addIC2GWVI("GeoButton",ID,"x,y,w,h","s,c,e","Title","
type,bg, fg ,vc ","call","","","");
Parameter:
"GeoButton":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
s,c, e: s=font
size, c=font position, e=font effect
Title: Text
t,bg,fg,vc:
Button type, Background Color, Text Color, Graident effect
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("GeoButton",7000,"10,10,80,40","11,1,0","ABC","1,3,14,1","","","","");
[back]
.
ICONButton
Call:
addIC2GWVI("AppButton",ID,"x,y,w,h","pic",
"type,bg,fg,vc ","i1,i2,i3,i4,¡","call","",",¡±¡±);
Parameter:
"AppButton":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
pic: ICON
ID
Type,bg,fg,vc:
Button type, Background Color, Text Color, Graident effect
i1,i2,i3,i4,i4,i5,i6,i7:
ICON ID for RoundMultButton, or Char for MatrixButton
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("AppButton",7000,"10,40,40,28","0","0,7,1","","","","","");
addIC2Container("AppButton",7000,"40,80,130,100","0","1,7,4,1","1,16,15,5,6,7,8","","","","");
addIC2Container("AppButton",7001,"100,100,120,120","0","2,13828006,9680639,1","3,4,1,2,3,4,5,6,7,8,9,*,0,#","","","","");
[back]
.
Knob
Call:
addIC2GWVI("Knob",ID,"x,y,w,h","r1,r2,bg,fg,cp,n","min,max,d,step,amp,t","call","","","","");
Parameter:
"Knob":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
r1,r2, bg,fg,cp,n:
edge1 width,edge2 width, BackgroundColor, Foreground Color, Pin Color,
Scale number
max,min,d,step,amp,t:
Maximum Value, Minimun Value, Step, Display Value,Amplify Coef., Knob type
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("Knob",7000,"100,100,100,100","5,5,3,0,4,10","0,10,4,0.1,1,0","","","","","");
addIC2Container("Knob",7000,"280,100,120,120","5,5,3,0,4,10","0,10,4,0.1,1,2","","","","","");
[back]
.
Knob
Switch
Call:
addIC2GWVI("RSwitch
",ID,"x,y,w,h","r1,r2,bg,fg,cp,n","type,d","call","","","","");
Parameter:
"
RSwitch ": VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
r1,r2, bg,fg,cp,n:
edge1 width,edge2 width, BackgroundColor, Foreground Color, Pin Color,
Scale number
type,d: Switch
type, Display Value,
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("RSwitch",7000,"200,100,100,100","5,5,3,0,4,10","1,1","","","","","");
addIC2Container("RSwitch",7000,"200,100,100,100","5,5,3,0,4,10","3,1","","","","","");
[back]
.
Scroll
Call:
addIC2GWVI("ScrollBar",ID,"x,y,w,h","st,c0,c1,c2,c3,cbg,num,type","min,max,v1,v2,dt,amp","call","","","","");
Parameter:
"ScrollBar":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
st,c0,c1,c2,c3,cbg,num,type:
st=0Border/1NoBorder,"c0,c1,c2,c3,cbg"=color, num=scale, type=scroll type
min,max,v1,v2,dt,amp:
Maximum Value, Minimun Value, Display Value1, Display Value2,Step, Amplify
Coef., Knob type
call: Callback
function of MATLAB (MATLAB only)
Example:
addIC2Container("ScrollBar",7000,"20,80,180,60","0,2,4,0,12,14864291,10,1","0,10,4,6,0.1,2","","","","","");
addIC2Container("ScrollBar",7000,"20,20,60,160","0,2,4,0,12,14864291,10,0","0,10,4,6,0.1,1","","","","","");
addIC2Container("ScrollBar",7000,"20,80,180,60","0,2,4,0,12,14864291,10,2","0,10,4,6,0.1,1","","","","","");
addIC2Container("ScrollBar",7000,"20,80,180,60","0,2,4,0,12,14864291,10,3","0,10,4,6,0.1,1","","","","","");
addIC2Container("ScrollBar",7000,"20,20,60,160","0,2,4,0,12,14864291,10,4","0,10,4,6,0.1,1","","","","","");
addIC2Container("ScrollBar",7000,"20,80,180,20","0,7,4,0,12,14864291,10,5","0,10,4,6,0.1,2","","","","","");
addIC2Container("ScrollBar",7000,"20,40,20,160","0,7,4,0,12,14864291,10,6","0,10,4,6,0.1,1","","","","","");
[back]
.
Tempature
Call:
addIC2GWVI("Tempature",ID,"x,y,w,h","left,right,top,bottom","bg,bg1,rectg,cline,n,border,t","min,max,value,amp","","","","");
Parameter:
"
Tempature": VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
left,right,,top,bottom:
Distance to the border
bg,bg1,rectg,cline,n,border,t:
"bg,bg1,rectg,cline"=Color, n=scale, border=0show/1hide, t=Control type
min,max,value,amp:
Maximum Value, Minimun Value, Display Value, Amplify Coef.
Example:
addIC2Container("Tempature",7000,"40,40,60,120","30,10,10,10","7,1,4,0,10,1,1","0,10,4,2","","","","");
addIC2Container("Tempature",7000,"140,40,60,120","30,10,10,10","14864291,1,4,0,10,1,2","0,10,4,1","","","","");
addIC2Container("Tempature",7000,"200,100,120,60","10,10,10,30","14864291,1,4,0,10,1,3","0,10,4,1","","","","");
[back]
.
Digital
Meter
Call:
addIC2GWVI("DigitalMeter",ID,"x,y,w,h","left,right,top,bottom","bg,bg1,rectg,cline,n,border,t","min,max,value,amp","","","","");
Parameter:
"DigitalMeter":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
left,right,,top,bottom:
Distance to the border
bg,bg1,rectg,cline,n,border,t:
"bg,bg1,rectg,cline"=Color, n=scale, border=0show/1hide, t=Control type
min,max,value,amp:
Maximum Value, Minimun Value, Display Value, Amplify Coef.
Example:
addIC2Container("DigitalMeter",7000,"100,100,60,140","30,10,10,10","7,15,4,0,10,1,0","0,10,4,1","","","","");
addIC2Container("DigitalMeter",7000,"200,100,160,60","10,10,10,25","7,15,4,0,10,1,1","0,10,4,1","","","","");
[back]
.
RoundMeter
Call:
addIC2GWVI("RMeter",ID,"x,y,w,h","r1,r2,bg,fg,cp,dr","min,max,d,v1,v2,amp,type","","","","","");
Parameter:
"RMeter":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
r1,r2, bg,fg,cp,dr
edge1 width,edge2 width, BackgroundColor, Foreground Color, Pin Color,
Meter width
max,min,d,v1,v2,amp,type:
Maximum Value, Minimun Value, Display Value,Warnning value1,Warnning Value2,Amplify
Coef., Control type
Example:
addIC2Container("RMeter",7000,"20,80,100,100","5,5,16777170,0,9,10","0,10,4,8,9,1,0","","","","","");
addIC2Container("RMeter",7000,"180,80,100,100","5,5,15,0,9,10","0,10,4,8,9,1,1","","","","","");
[back]
.
Rectangle
Meter
Call:
addIC2GWVI("Meter",ID,"x,y,w,h","dx,dh,dr,bg,fg,cp,cm,t","min,max,d,ct1,ct2,tw,border,amp","","","","","");
Parameter:
"Meter":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
dx,dh,dr,bg,fg,cp,cm,t:
"dx,dh,dr"=edge, "bg,fg,cp,cm"=color, t=Control type
max,min,d:
Maximum Value, Minimun Value, Display Value
ct1,ct2,tw,border,amp:
"ct1,ct2"=Gradient color, tw=Meter width, Border=0show/1hide, amp=Amplify
Coef
Example:
addIC2Container("Meter",7000,"20,40,140,80","6,6,7,0,12,12,16757864","0,10,4,10,12,15,1,0","","","","","");
addIC2Container("Meter",7000,"220,40,80,140","10,10,7,0,12,12,16757864","0,10,4,10,12,15,1,1","","","","","");
addIC2Container("Meter",7000,"360,40,80,140","10,10,7,0,12,12,16757864","0,10,4,10,12,15,1,2","","","","","");
addIC2Container("Meter",7000,"20,240,140,80","10,10,14080689,0,12,12,16757864","0,10,4,10,12,15,1,3","","","","","");
addIC2Container("Meter",7000,"20,240,140,80","24,24,14080689,0,12,12,16757864","0,10,4,10,12,15,3,4","","","","","");
addIC2Container("Meter",7000,"220,40,80,160","24,24,14080689,0,12,12,16757864","0,10,4,10,12,15,3,5","","","","","");
addIC2Container("Meter",7000,"360,40,80,160","24,24,7,0,12,12,16757864","0,10,4,10,12,15,3,6","","","","","");
[back]
.
Progress
Call:
addIC2GWVI("Progress",ID,"x,y,w,h","
type,bg,fg,tg","v","","","","","");
Parameter:
"
Progress": VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
type,bg,fg,tg:
type=Control type, "bg,fg,tg"=color
v: Dispaly
value
Example:
addIC2Container("Progress",7000,"200,100,120,50","1,1,14,5","50","","","","","");
addIC2Container("Progress",7000,"200,100,120,50","2,7,2,15593935","50","","","","","");
addIC2Container("Progress",7000,"200,100,54,120","3,7,2,15593935","50","","","","","");
[back]
.
LED
Call:
addIC2GWVI("LED",ID,"x,y,w,h","
bg,fg,n,t","v","","","","","");
Parameter:
"LED":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
bg,fg,n,t:
background color, digital color, number, alignment
v: Dispaly
value
Example:
addIC2Container("LED",7000,"200,100,120,50","1,14,5,1","20","","","","","");
[back]
.
Lamp
Call:
addIC2GWVI("LAMP",ID,"x,y,w,h","
c1,c2,c3,c4,st,t","","","","","","");
Parameter:
"LAMP":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
c1,c2,c3,c4,st,t:
"c1,c2,c3,c4"=color, st=current statu, t=contol type
Example:
addIC2Container("LAMP",7000,"100,100,140,30","10,14,12,8,0,2","","","","","","");
addIC2Container("LAMP",7010,"100,200,60,60","10,14,12,3,0,0","","","","","","");
[back]
.
Gird
Call:
addIC2GWVI("Gird",ID,"x,y,w,h","scroll,row,wfirst,,cfirst,chigh,col,size","CTitle","RTitle","w1,w2,¡wn","","","");
Parameter:
"Gird":
VI name
ID: Resourcer
ID
x,y,w,h: Position
and size
scroll,row,wfirst,cfirst,chigh,col,size:scroll=0hide/1show,
row, first row width, first col hight, other col hight, col,font size
Ctitle: Items
of col
Rtitle: Items
of row
w1,w2,¡wn:
width of row
Example:
addIC2Container("Gird",7000,"10,10,300,100","1,5,40,22,18,10,10","A,B,C,D,E","1,2,3,4","80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80","","","");
SET and GET command
can be use to read or write a cell value. Such as:
setICString(6000,0,"2,1,SET,Hi");
char *s=getICString(6000,2*1000+1);
//Gird
[back]
.
.
.
.
.
.
.
.
.
.
.