Skip to content
Snippets Groups Projects
Commit d635b574 authored by Cristian Galperti's avatar Cristian Galperti
Browse files

Merge branch 'feature/addrtmhd' into operation

parents 403d32a4 c9aafaad
No related branches found
No related tags found
No related merge requests found
...@@ -255,6 +255,8 @@ classdef SCDclass_expcode ...@@ -255,6 +255,8 @@ classdef SCDclass_expcode
obj.activecpus=[ {1}; ... obj.activecpus=[ {1}; ...
{1:4}; ... {1:4}; ...
{1:4}; ... {1:4}; ...
{1}; ...
{1}; ...
{1:4}; ... {1:4}; ...
{1:4}; ... {1:4}; ...
{1}]; {1}];
......
...@@ -16,7 +16,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -16,7 +16,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
function obj=SCDclass_taskmdsloadprevADC(id, varargin) function obj=SCDclass_taskmdsloadprevADC(id, varargin)
obj@SCDclass_task(id, varargin); obj@SCDclass_task(id, varargin);
obj.cparser.addRequired('modelbus',@(x) ischar(x)); obj.cparser.addRequired('modelbus',@(x) ischar(x));
obj.cparser.addParameter('node', 0, @(x) (isnumeric(x) && ((x==1) || x==2))); obj.cparser.addParameter('node', 0, @(x) (isnumeric(x) && ((x==1) || x==2 || x==7)));
obj=obj.parseconstructorcommon(id, varargin); obj=obj.parseconstructorcommon(id, varargin);
obj.modelbus=obj.cparser.Results.modelbus; obj.modelbus=obj.cparser.Results.modelbus;
obj.node=obj.cparser.Results.node; obj.node=obj.cparser.Results.node;
...@@ -25,6 +25,8 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -25,6 +25,8 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
obj.workspacedatabasestructure='SCDsimdata.SCDnode01simdata.adc'; obj.workspacedatabasestructure='SCDsimdata.SCDnode01simdata.adc';
case 2 case 2
obj.workspacedatabasestructure='SCDsimdata.SCDnode02simdata.adc'; obj.workspacedatabasestructure='SCDsimdata.SCDnode02simdata.adc';
case 7
obj.workspacedatabasestructure='SCDsimdata.SCDnode07simdata.adc';
otherwise otherwise
obj.workspacedatabasestructure=''; obj.workspacedatabasestructure='';
end end
...@@ -36,17 +38,19 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -36,17 +38,19 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
mdsconnect(obj.mdsserver); mdsconnect(obj.mdsserver);
mdsopen(obj.mdstree, shot); mdsopen(obj.mdstree, shot);
try %try
switch(obj.node) switch(obj.node)
case 1 case 1
obj.actualizeNode(shot, 96); obj.actualizeNode(shot, 96, false);
case 2 case 2
obj.actualizeNode(shot, 192); obj.actualizeNode(shot, 192, false);
case 7
obj.actualizeNode(shot, 96, true);
end end
catch %catch
fprintf('\n'); % fprintf('\n');
warning('SCDclass_taskmdsloadprevADC:init','Error initializing ADC bus for node %d.',obj.node); % warning('SCDclass_taskmdsloadprevADC:init','Error initializing ADC bus for node %d.',obj.node);
end %end
end end
function [obj, value] = getdata(obj,shot) function [obj, value] = getdata(obj,shot)
...@@ -63,7 +67,10 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -63,7 +67,10 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
[~,value]=obj.getdataNode02ACQ196(shot); [~,value]=obj.getdataNode02ACQ196(shot);
else else
[~,value]=obj.getdataNode02ACQ2106(shot); [~,value]=obj.getdataNode02ACQ2106(shot);
end end
case 7
% TODO: differentiate old and new system here ?
[~,value]=obj.getdataNode07(shot, 256);
end end
end end
...@@ -80,9 +87,11 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -80,9 +87,11 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
end end
methods(Access = private) %methods(Access = private)
methods
function obj = actualizeNode(obj, shot, nadcs) function obj = actualizeNode(obj, shot, nadcs, packetized)
dd=SCDconf_getdatadict(obj.datadictionary); dd=SCDconf_getdatadict(obj.datadictionary);
adcbus=dd.getEntry(obj.modelbus).getValue; adcbus=dd.getEntry(obj.modelbus).getValue;
[~,data]=obj.getdata(shot); [~,data]=obj.getdata(shot);
...@@ -91,11 +100,15 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -91,11 +100,15 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
fprintf('Actualizing data for bus: ''%s'' (%s, shot %d) 0%% ', obj.modelbus, obj.classname, shot); fprintf('Actualizing data for bus: ''%s'' (%s, shot %d) 0%% ', obj.modelbus, obj.classname, shot);
end end
for ii=1:nadcs for ii=1:nadcs
T.Time=data.Time; if ~packetized
T.Data=int16(data.Data(:,ii)); T.Time=data.Time;
T.Data=int16(data.Data(:,ii));
else
T=data.get(['adc' num2str(ii)]);
end
assignin('base','temp',T); assignin('base','temp',T);
assigncmd=sprintf('%s.%s=temp;',obj.workspacedatabasestructure, adcbus.Elements(ii).Name); assigncmd=sprintf('%s.%s=temp;',obj.workspacedatabasestructure, adcbus.Elements(ii).Name);
evalin('base',assigncmd); evalin('base',assigncmd);
if obj.verbose==1 && mod(ii,obj.logdecimate)==0 if obj.verbose==1 && mod(ii,obj.logdecimate)==0
fprintf('%.0f%% ', ii/nadcs*100); fprintf('%.0f%% ', ii/nadcs*100);
end end
...@@ -106,8 +119,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -106,8 +119,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
end end
end end
%% %% Node 01 loading functions
% Node 01 loading functions
function [obj, value] = getdataNode01ACQ196(obj, shot) function [obj, value] = getdataNode01ACQ196(obj, shot)
T=timeseries; T=timeseries;
...@@ -138,8 +150,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -138,8 +150,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
end end
end end
%% %% Node 02 loading functions
% Node 02 loading functions
function [obj, value] = getdataNode02ACQ196(obj, shot) function [obj, value] = getdataNode02ACQ196(obj, shot)
T=timeseries; T=timeseries;
...@@ -212,6 +223,61 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -212,6 +223,61 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
end end
end end
%% Node 07 loading functions
function [obj, value] = getdataNode07(obj, shot, samppck)
nch=96;
if shot>70100 % TODO, wrong shotno here
mdsnodename='node07';
else
mdsnodename='crpprt07';
end
mdsopen('rtc',shot);
%T=timeseries;
timebase=mdsvalue(['dim_of(\top.' mdsnodename '.board1.adc_01)']);
d_time = double(mdsvalueraw(['\top.' mdsnodename '.params:d_time']))*1.0e-6;
timebase = timebase(1:samppck:end); % TODO: is this safe against lost cycles ?
%timebase = round(timebase.*1/d_time)*d_time-d_time/2;
timebase = round(timebase.*1/d_time)*d_time-d_time/100;
%timebase = timebase + d_time; % this fits perfectly sim/rt data on 68072
%T.Time=timebase;
%T.Data=zeros(numel(timebase),nch);
value = tscollection(timebase);
if obj.verbose==1
fprintf('Getting data for bus: ''%s'' (%s, shot %d) 0%% ', obj.modelbus, obj.classname, shot);
end
for ii=1:nch
T=timeseries;
T.Time=timebase;
channelstr=sprintf(['\\top.' mdsnodename '.board1.adc_%02d.raw'],ii);
%T.Data(:,ii)=int16(mdsvalue(channelstr));
%T.Data(:,ii)=int16(mdsvalueraw(channelstr));
data=mdsvalueraw(channelstr);
if isnumeric(data)
datamatrix=reshape(int16(data),[samppck,numel(timebase)])';
%datamatrix=reshape(int16(data),[samppck,numel(timebase)]);
else
datamatrix=int16(zeros(numel(timebase),samppck));
%datamatrix=int16(zeros(samppck,numel(timebase)));
end
T.Data=datamatrix;
if obj.verbose==1 && mod(ii,obj.logdecimate)==0
fprintf('%.0f%% ', ii/nch*100);
end
T.Name=['adc' num2str(ii)];
value=addts(value,T);
end
%T.Data=datamatrix; % this speeds up a lot the loading
%value.addts;
if obj.verbose==1
fprintf('100%% \n');
end
end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment