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

adc load task for node 07 added, ready for sim

parent 75987a01
No related branches found
No related tags found
No related merge requests found
......@@ -16,7 +16,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
function obj=SCDclass_taskmdsloadprevADC(id, varargin)
obj@SCDclass_task(id, varargin);
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.modelbus=obj.cparser.Results.modelbus;
obj.node=obj.cparser.Results.node;
......@@ -25,6 +25,8 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
obj.workspacedatabasestructure='SCDsimdata.SCDnode01simdata.adc';
case 2
obj.workspacedatabasestructure='SCDsimdata.SCDnode02simdata.adc';
case 7
obj.workspacedatabasestructure='SCDsimdata.SCDnode07simdata.adc';
otherwise
obj.workspacedatabasestructure='';
end
......@@ -36,17 +38,19 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
mdsconnect(obj.mdsserver);
mdsopen(obj.mdstree, shot);
try
%try
switch(obj.node)
case 1
obj.actualizeNode(shot, 96);
obj.actualizeNode(shot, 96, false);
case 2
obj.actualizeNode(shot, 192);
obj.actualizeNode(shot, 192, false);
case 7
obj.actualizeNode(shot, 96, true);
end
catch
fprintf('\n');
warning('SCDclass_taskmdsloadprevADC:init','Error initializing ADC bus for node %d.',obj.node);
end
%catch
% fprintf('\n');
% warning('SCDclass_taskmdsloadprevADC:init','Error initializing ADC bus for node %d.',obj.node);
%end
end
function [obj, value] = getdata(obj,shot)
......@@ -63,7 +67,10 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
[~,value]=obj.getdataNode02ACQ196(shot);
else
[~,value]=obj.getdataNode02ACQ2106(shot);
end
end
case 7
% TODO: differentiate old and new system here ?
[~,value]=obj.getdataNode07(shot, 256);
end
end
......@@ -80,9 +87,11 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
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);
adcbus=dd.getEntry(obj.modelbus).getValue;
[~,data]=obj.getdata(shot);
......@@ -91,11 +100,15 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
fprintf('Actualizing data for bus: ''%s'' (%s, shot %d) 0%% ', obj.modelbus, obj.classname, shot);
end
for ii=1:nadcs
T.Time=data.Time;
T.Data=int16(data.Data(:,ii));
if ~packetized
T.Time=data.Time;
T.Data=int16(data.Data(:,ii));
else
T=data.get(['adc' num2str(ii)]);
end
assignin('base','temp',T);
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
fprintf('%.0f%% ', ii/nadcs*100);
end
......@@ -106,8 +119,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
end
end
%%
% Node 01 loading functions
%% Node 01 loading functions
function [obj, value] = getdataNode01ACQ196(obj, shot)
T=timeseries;
......@@ -138,8 +150,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
end
end
%%
% Node 02 loading functions
%% Node 02 loading functions
function [obj, value] = getdataNode02ACQ196(obj, shot)
T=timeseries;
......@@ -212,6 +223,59 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
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),[numel(timebase),samppck]);
else
datamatrix=int16(zeros(numel(timebase),samppck));
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
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