Skip to content
Snippets Groups Projects
Commit 0a8a5594 authored by 's avatar
Browse files

some upgrade

parent 31958fae
Branches
Tags
No related merge requests found
...@@ -168,35 +168,51 @@ classdef MatMust < handle ...@@ -168,35 +168,51 @@ classdef MatMust < handle
'mode', 'SIMPLE'}; 'mode', 'SIMPLE'};
try try
data = webread([obj.url,obj.urlsub, query], args{:} ,obj.GEToptions); response = webread([obj.url,obj.urlsub, query], args{:} ,obj.GEToptions);
catch ME catch ME
fprintf('+++ WARNING\n%s - %s\n', ME.identifier, ME.message) fprintf('+++ WARNING\n%s - %s\n', ME.identifier, ME.message)
return return
end end
if isa(response,'struct')
data{1} = response;
else
data = response;
end
%refine date string to adapt MATLAB date format %refine date string to adapt MATLAB date format
for i=1:numel(data) for i=1:numel(data{1})
data_par = data(i).data; if isempty(data{1}(i).data)
fprintf('+++ WARNING\n%s for %s\n', 'No Data existing in time span', data.name)
continue
end
data_par = data{1}(i).data;
t = num2cell(datenum(datetime('1970-01-01', 'TimeZone','utc'))+(str2num(str2mat(data_par.date))/1000/86400)); t = num2cell(datenum(datetime('1970-01-01', 'TimeZone','utc'))+(str2num(str2mat(data_par.date))/1000/86400));
[data(i).data.dateMAT] = deal(t{:}); [data{1}(i).data.dateMAT] = deal(t{:});
clear t clear t
end end
if nargin > 5 if nargin > 5
if any(ismember(varargin,'dump')) if any(ismember(varargin,'dump'))
fprintf('+++++++++++++ DATA RESULT LIST +++++++++++++\n'); fprintf('+++++++++++++ DATA RESULT LIST +++++++++++++\n');
for i=1:numel(data) for i=1:numel(data{1})
data_par = data(i).data; if isempty(data{i}(i).data)
fprintf('%s-%s: %s -> %s\n', data(i).subsystem, data(i).type, data(i).name, data(i).description ); continue
end
data_par = data{i}.data;
fprintf('%s-%s: %s -> %s\n', data{1}(i).subsystem, data{1}(i).type, data{1}(i).name, data{1}(i).description );
%TODO filter for several kind of dataType 'DOUBLE', %TODO filter for several kind of dataType 'DOUBLE',
%'SIGNED_SMALL_INT', 'STRING' %'SIGNED_SMALL_INT', 'STRING'
switch data(i).dataType switch data{1}(i).dataType
case 'DOUBLE' case 'DOUBLE'
format = '%f'; format = '%f';
case 'SIGNED_SMALL_INT' case {'SIGNED_SMALL_INT', 'UNSIGNED_INT'}
format = '%i'; format = '%i';
case 'STRING' case 'STRING'
format = '%s'; format = '%s';
otherwise
format = '%s';
end end
format = ['%s - ',format,'\n']; format = ['%s - ',format,'\n'];
for i = 1:numel(data_par) for i = 1:numel(data_par)
...@@ -208,19 +224,22 @@ classdef MatMust < handle ...@@ -208,19 +224,22 @@ classdef MatMust < handle
fprintf('+++++++++++++++++++++++++++++++++++++++++\n'); fprintf('+++++++++++++++++++++++++++++++++++++++++\n');
end end
if any(ismember(varargin,'plot')) if any(ismember(varargin,'plot'))
for i=1:numel(data) for i=1:numel(data{1})
data_par = data(i).data; if isempty(data{1}(i).data)
continue
end
data_par = data{1}(i).data;
figure figure
title(sprintf('%s-%s: %s -> %s\n', data(i).subsystem, data(i).type, data(i).name, data(i).description )) title(sprintf('%s-%s: %s -> %s\n', data{1}(i).subsystem, data{1}(i).type, data{1}(i).name, data{1}(i).description ))
if strcmp(calibrate,'true') if strcmp(calibrate,'true')
switch class(data_par(1).calibratedValue) switch class(data_par(1).calibratedValue)
case 'char' case 'char'
indx = [1,find(diff([data_par.value])~=0)]+1; indx = [1,find(diff([data_par.value])~=0)]+1;
[ylabels,charind ] = unique(replace({data_par(indx).calibratedValue},'_',' '),'stable'); ylabels = string;
ylabels([unique([data_par.value],'stable')]) = replace({data_par(indx).calibratedValue},'_',' ');
plot([data_par.dateMAT], [data_par.value], '-x' ); plot([data_par.dateMAT], [data_par.value], '-x' );
set(gca,'ytick',unique([data_par.value],'sorted')); set(gca,'ytick',unique([data_par.value],'sorted'))
[~,si] = sort([data_par(indx(charind)).value]); set(gca,'yticklabel',ylabels)
set(gca,'yticklabel', ylabels(si) );
if exist('dataFigShowUpdatefcn')==2 if exist('dataFigShowUpdatefcn')==2
set(datacursormode(gcf),'UpdateFcn',@dataFigShowUpdatefcn) set(datacursormode(gcf),'UpdateFcn',@dataFigShowUpdatefcn)
end end
...@@ -231,10 +250,10 @@ classdef MatMust < handle ...@@ -231,10 +250,10 @@ classdef MatMust < handle
plot([data_par.dateMAT], [data_par.value], '-x' ); plot([data_par.dateMAT], [data_par.value], '-x' );
end end
xlabel('time'); xlabel('time');
if isfield(data(i), 'unit') if isfield(data{1}(i), 'unit')
ylabel(data(i).unit); ylabel(data{1}(i).unit);
end end
title([data(i).description,' - ',data(i).name]); title([data{1}(i).description,' - ',data{1}(i).name]);
datetick('x'); datetick('x');
grid on grid on
end end
...@@ -249,11 +268,12 @@ classdef MatMust < handle ...@@ -249,11 +268,12 @@ classdef MatMust < handle
% MatMust_searchTMparFromName(obj, namequery, dataproviders, varargin) % MatMust_searchTMparFromName(obj, namequery, dataproviders, varargin)
% %
% dataproviders = dataprovider IdName. % dataproviders = dataprovider IdName.
% namequery = The query to perform (ex. '*HGA' or 'HGA+.+state' ) % namequery = The query to perform (ex. '*HGA' )
% varargin = You can specify several options in varagin: % varargin = You can specify several options in varagin:
% ex: 'dump' -> print to screen the parameters found % ex: 'dump' -> print to screen the parameters found
% 'Description' -> Extend search in Parameters Descriptions % 'Description' -> Extend search in Parameters Descriptions
% 'Id' -> Extend Search in Parameter Id % 'Id' -> Extend Search in Parameter Id
% 'Unit' -> Extend Search in Unit name space
% %
...@@ -264,10 +284,10 @@ classdef MatMust < handle ...@@ -264,10 +284,10 @@ classdef MatMust < handle
dataproviders = char(join(dataproviders,',')); dataproviders = char(join(dataproviders,','));
end end
try try
optindx = strcmp(varargin,'Description')+strcmp(varargin,'Id')+strcmp(dataproviders,'name'); optindx = strcmp(varargin,'Description')+strcmp(varargin,'Unit')+strcmp(varargin,'Id');
if any(find(optindx)) if any(find(optindx))
field = join(varargin(find(optindx)),','); field = join(varargin(find(optindx)),',');
response = webread([obj.url,obj.urlsub, query], 'field',[char(field)],'text',namequery,'dataproviders', dataproviders ,obj.GEToptions); response = webread([obj.url,obj.urlsub, query], 'field',['name,',char(field)],'text',namequery,'dataproviders', dataproviders ,obj.GEToptions);
else else
response = webread([obj.url,obj.urlsub, query], 'field','name','text',namequery,'dataproviders', dataproviders ,obj.GEToptions); response = webread([obj.url,obj.urlsub, query], 'field','name','text',namequery,'dataproviders', dataproviders ,obj.GEToptions);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment