⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled.m

📁 matlab环境下的多路串口数据实时绘图显示
💻 M
📖 第 1 页 / 共 5 页
字号:
        
                                       switch  s
                                                                            case 1 
                                                                                       set(allaxes(1),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);                                                                                      
                                                                                   
                                                                                           
                                                                                      
                                                                              case 2
                  
                
                                                                                       set(allaxes(2),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);                                                                                        
                                                                                
                                                                                      
                                                                              case 3
                   
                                                                                       set(allaxes(3),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);                                                                                      
                                                                                   
                                                                                      
                                                                               case 4
                    
                                                                                        set(allaxes(4),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);    
                                                                                    
                                                                               case 5
                  
                                                                                        set(allaxes(5),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);     
                                                                                    
                                                                               case 6
                     
                       
                                                                                         set(allaxes(6),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);                                                                                      
                                                                                        
                                                                               case 7                    
                
                                                                                        set(allaxes(7),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);    
                                                                                   
                                                                               case 8                    
                 
                                                                                         set(allaxes(8),'xlim',[Xmin,Xmax],'ylim',[Ymin,Ymax]);                                                                                      
                                       end
                                 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%         
 %这个子函数是用来对测量对象进行放大,会弹出一个输入框,让用户输入8个通道的倍数。
      function   equationdlg(hobject,eventdata,handles)
     global  hinput2;
prompt2={'请输入第一通道倍数:',...
                  '请输入第二通道倍数:',...
                  '请输入第三通道倍数:',...
                  '请输入第四通道倍数:',...
                  '请输入第五通道倍数:',...
                  '请输入第六通道倍数:',...
                  '请输入第七通道倍数:',...
                    '请输入第八通道倍数:'};
               
              
def2={'1','1','1','1','1','1','1','1'};

fields2={'equation1','equation2','equation3','equation4',...
            'equation5','equation6','equation7','equation8'};
           
hinput2=inputdlg(prompt2,'Setup for equation',1,def2);

if    ~isempty(hinput2)
      hinput2=cell2struct(hinput2,fields2);
else
       return;
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%这个子函数是用来对测量单位进行设置,用户在弹出的对话框中输入8个通道的测量单位。
 function   measureunits(hobject,eventdata,handles)
 global  hinput1;
prompt1={'请输入第一通道的测量单位:',...
                  '请输入第二通道的测量单位:',...
                  '请输入第三通道的测量单位:',...
                  '请输入第四通道的测量单位:',...
                   '请输入第五通道的测量单位:',...
                   '请输入第六通道的测量单位:',...
                   '请输入第七通道的测量单位:',...
                    '请输入第八通道的测量单位:'};
def1={'mV','mA','mV','mA','mV','mA','mV','mA'};
fields1={'ch1units','ch2units','ch3units','ch4uits','ch5units','ch6units','ch7units','ch8units'};
hinput1=inputdlg(prompt1,'Setup for measure units',1,def1);
if  ~isempty(hinput1);
        hinput1=cell2struct(hinput1,fields1);
else 
       return;
end
 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%设置采样时间间隔,默认情况下该值为1。
  function  sampletimedlg(hobject ,eventdata,handles)
global sampletime;
prompt={'请输入数据采样间隔时间'};
def={'1'};
dlgtitle='Setup for sample time';
answer=inputdlg(prompt,dlgtitle,1,def);
if  ~isempty(answer)
     
      sampletime=str2num(char(answer));
  
end
        
      
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%这个子函数是用来对当前的线进行设置线宽的。
    function   slider_callback(hobject,eventdata,handles)
    global  hmainfig hinput1 hinput2  hcurrent  sampletime;
   global  hresult;
    allaxes=getappdata(hmainfig,'allaxes');
    allline=getappdata(hmainfig,'allline');
   
  h2=figure('position',[250 250 200 200],'menubar','none','numbertitle','off','name','修改线宽','windowstyle','modal','visible','off');
hslider=uicontrol('style','slider','units','normalized','position',[0.4,0.1,0.1,0.6],'value',0.5,'max',5,'min',0);
set(hslider,'sliderstep',[0.02 0.05]);
 movegui(h2,'center');
              
    
 str1='当前的线宽是:';                           
ht1=uicontrol('style','text','position',[10 160 110 20],'string',str1,'backgroundcolor',[0.8,0.8,0.8]);
set(ht1,'fontsize',11);
set(ht1,'units','normalized');

ht2=uicontrol('style','text','position',[110 160 20 20],'string',0.5,'backgroundcolor',[0.8 0.8 0.8],'fontsize',11);
set(ht2,'units','normalized','foregroundcolor','b');
setappdata(hmainfig,'ht2',ht2);
setappdata(hmainfig,'hslider',hslider);

uicontrol('style','text','position',[105 120 10 20 ],'string',5,'backgroundcolor',[0.8,0.8,0.8],'foregroundcolor','k','fontsize',12);

uicontrol('style','text','position',[105,16,10,20],'string',0,'backgroundcolor',[0.8,0.8,0.8],'foregroundcolor','k','fontsize',12);
set(hslider,'callback',...   
                ['global  hresult;',...
                 'global  hmainfig;',...
                 'ht2=getappdata(hmainfig,''ht2'');',...
                 'hslider=getappdata(hmainfig,''hslider'');',...
                'a=get(hslider,''value'');',...               
                'set(hresult,''linewidth'',a);',...
                'set(ht2,''string'',sprintf(''%1.4g'',a));']);
   set(h2,'visible','on');
            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%这个函数是用来添加一个新的通道。
%  bijiao  function
 function  bijiao(hobject,eventdata,handles)
global  hinput1 hinput2 sampletime;
global  hmainfig  hcurrent  hresult;

hsubfig=figure('menubar','none','numbertitle','off','position',[100,100,400,300],'name','双轴显示');
set(hsubfig,'defaultuicontrolfontsize',13,'resize','off');
set(hsubfig,'visible','off');

hsubtext=uicontrol(hsubfig,'position',[100,250,180,20],'style','text',...
                               'foregroundcolor',[0 0 1],...
                              'string','请您再选择一个通道:','backgroundcolor',[0.8 0.8 0.8]);
                          
hsublist=uicontrol(hsubfig,'position',[110,120,150,100],'style','listbox',...
                                'foregroundcolor',[0 0 1],...
                                'backgroundcolor',[1 1 1],...
                                'string','channel1|channel2|channel3|channel4|channel5|channel6|channel7|channel8');
                            
 hsubpush=uicontrol(hsubfig,'position',[125,50,80,30],'style','push',...
                                 'backgroundcolor',[0.8,0.8,0.8],...
                                 'string','OK');
  setappdata(hmainfig,'hsubfig',hsubfig);     
  setappdata(hmainfig,'hsublist',hsublist);
                                 
    set(hsubpush,'callback',...
                                                ['global  hmainfig;',...
                                                 'global  hinput1;',...
                                                 'global  hcurrent;',...
                                               'allaxes=getappdata(hmainfig,''allaxes'');',...
                                               'allline=getappdata(hmainfig,''allline'');',...
                                               'hsubfig=getappdata(hmainfig,''hsubfig'');',...
                                               'hsublist=getappdata(hmainfig,''hsublist'');',...
                                               'haxes1=allaxes(1);',...
                                               'haxes2=allaxes(2);',...
                                               'haxes3=allaxes(3);',...
                                               'haxes4=allaxes(4);',...
                                               'haxes5=allaxes(5);',...
                                               'haxes6=allaxes(6);',...
                                               'haxes7=allaxes(7);',...
                                               'haxes8=allaxes(8);',...
                                               'htext2=getappdata(hmainfig,''htext2'');',...
                                               'htext5=getappdata(hmainfig,''htext5'');',...
                                               'htext6=getappdata(hmainfig,''htext6'');',...
                                               'htext55=getappdata(hmainfig,''htext55'');',...
                                               'htext66=getappdata(hmainfig,''htext66'');',...
                                               'htext41=getappdata(hmainfig,''htext41'');',...
                                               'htext42=getappdata(hmainfig,''htext42'');',...
                                               'htext43=getappdata(hmainfig,''htext43'');',...
                                               'channelnum=get(hsublist,''value'');',...
                                           'if   channelnum==1',...
                                                'hnewaxes=haxes1;',...
                                                 'newunits=hinput1.ch1units;',...
                                          'elseif   channelnum==2',...
                                               'hnewaxes=haxes2;',...
                                               'newunits=hinput1.ch2units;',...
                                         'elseif      channelnum==3',...
                                                'hnewaxes=haxes3;',...
                                                'newunits=hinput1.ch3units;',...
                                         'elseif       channelnum==4',...
                                                 'hnewaxes=haxes4;',...
                                                 'newunits=hinput1.ch4units;',...
                                         'elseif        channelnum==5',...
                                                 'hnewaxes=haxes5;',...
                                                 'newunits=hinput1.ch5units;',...
                                         'elseif        channelnum==6',...
                                                 'hnewaxes=haxes6;',...
                                                 'newunits=hinput1.ch6units;',...
                                         'elseif        channelnum==7',...
                                                 'hnewaxes=haxes7;',...
                                                 'newunits=hinput1.ch7units;',...
                                         'elseif        channelnum==8',...
                                                 'hnewaxes=haxes8;',...
                                                 'hnewunits=hinput1.ch8units;',...
                                                 'end;'...     
                                                  'close(hsubfig);',...
                                          'if  (hnewaxes==hcurrent)',...         
                                               'hwarndlg=warndlg(''此通道已经被显示,请你选一个其它的通道!'',''抱歉!!!'');',...                                               
                                              'set(hwarndlg,''position'',[285,300,250,80]);',...   
                                            'else;',...                                           % hx,hy是hcurrent,hnewaxes下的子对象。分别代表相应的线。
                                                'cc=get(hcurrent,''xlim'');',...
                                                'dd=get(hnewaxes,''xlim'');',...
                                                'if cc<dd;',...
                                                    'set(hcurrent,''xlim'',dd);',...
                                                    'else;',...
                                                    'set(hnewaxes,''xlim'',cc);',...
                                                    'end;',...
                                                 'set(allaxes, ''visible'',''off'');',...
                                                 'set(allline,''visible'',''off'');',... 
                                                'hx=get(hcurrent,''children'');',...
                                                'hy=get(hnewaxes,''children'');',...

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -