Sync from remote server: 2025-10-12 18:56:41
This commit is contained in:
93
RSN/loadcell.m
Executable file
93
RSN/loadcell.m
Executable file
@@ -0,0 +1,93 @@
|
||||
%% Funzione che elabora i Load Link
|
||||
|
||||
function [LoadDef,ErrLoadLink,ARRAYdateLL] = loadcell(LoadDef,ErrLoadLink,...
|
||||
ARRAYdateLL,NuovoZeroLL,NdatiMedia,Ndatidespike,yesRSN,IDcentralina,DTcatena,FileName)
|
||||
|
||||
% Inizio del ciclo di elaborazione
|
||||
text = 'loadcell function started';
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
fprintf(fileID,fmt,text);
|
||||
fclose(fileID);
|
||||
|
||||
if NuovoZeroLL == 1
|
||||
if NdatiMedia > Ndatidespike
|
||||
Ndati = NdatiMedia;
|
||||
else
|
||||
Ndati = Ndatidespike;
|
||||
end
|
||||
ini = round(Ndati/2)+1;
|
||||
if rem(Ndati,2) == 0
|
||||
ini = ini+1;
|
||||
end
|
||||
clear NDati
|
||||
LoadDef = LoadDef(ini:end,:);
|
||||
ARRAYdateLL = ARRAYdateLL(ini:end,1);
|
||||
ErrLoadLink = ErrLoadLink(ini:end,:);
|
||||
end
|
||||
|
||||
if yesRSN == 1 % filtro SOLO le celle connesse a un modulo BPM
|
||||
newdata = 0; % n° dati filtrati
|
||||
[rLL,cLL]=size(LoadDef);
|
||||
CelleUpdate = ['' IDcentralina '-' DTcatena '-LoadCell.csv'];
|
||||
if isfile(CelleUpdate) == 1
|
||||
ValoriCelle = csvread(CelleUpdate);
|
||||
ValoriCelle(:,1) = ValoriCelle(:,1) + 730000;
|
||||
for n = 1:cLL % celle
|
||||
for d = 1:rLL %date
|
||||
if LoadDef(d,n) < -50 % kN
|
||||
if d == 1
|
||||
[~,cC] = size(ValoriCelle);
|
||||
if cC ~= 1
|
||||
LastData = find(ValoriCelle(:,1)<datenum(ARRAYdateLL(1,1)));
|
||||
if isempty(LastData) == 0
|
||||
LoadDef(d,n) = ValoriCelle(LastData(end),n+1);
|
||||
ErrLoadLink(d,n) = 1;
|
||||
newdata = newdata+1;
|
||||
end
|
||||
end
|
||||
else
|
||||
LoadDef(d,n) = LoadDef(d-1,n);
|
||||
ErrLoadLink(d,n) = 1;
|
||||
newdata = newdata + 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
text = ['--- Load Link elaboration: ' num2str(newdata) ' data filtered. ---'];
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
fprintf(fileID,fmt,text);
|
||||
fclose(fileID);
|
||||
|
||||
if isempty(LoadDef) == 0 && isfile(CelleUpdate) == 1
|
||||
Nuovedate = [ValoriCelle(:,1); ARRAYdateLL];
|
||||
Nuovivalori = [ValoriCelle(:,2); LoadDef];
|
||||
Nuovofile = [Nuovedate Nuovivalori];
|
||||
elseif isempty(LoadDef) == 0
|
||||
Nuovofile = [ARRAYdateLL LoadDef];
|
||||
else
|
||||
Nuovofile = [ValoriCelle(:,1) ValoriCelle(:,2)];
|
||||
end
|
||||
[rN,~] = size(Nuovofile);
|
||||
% scrivo sul csv solo dati compresi al massimo nei 30 gg precedenti
|
||||
Datimese = find(Nuovofile(:,1) < now-30);
|
||||
if isempty(Datimese) == 0 && Datimese(end) ~= rN
|
||||
Nuovofile = Nuovofile(Datimese(end)+1:end,:);
|
||||
end
|
||||
if isfile(CelleUpdate) == 1
|
||||
delete(CelleUpdate);
|
||||
end
|
||||
Nuovofile(:,1) = Nuovofile(:,1) - 730000;
|
||||
csvwrite(CelleUpdate,Nuovofile);
|
||||
end
|
||||
|
||||
text = 'Load Link elaborated correctly';
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
fprintf(fileID,fmt,text);
|
||||
fclose(fileID);
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user