Scilab Function
eng


setscicosparam

File content


function [ok]=setscicosparam(dt,fic)
// setscicosparam : write binary data in rdnom_params.dat
// file generated by Scicos CodeGeneration.
//
// input : dt : a list that encloses the name and the values
//         of the scicos variables to be written in the parameters
//         file
//
//         fic : path+name of the data file
//
// output : ok : a flag to say if the operation is succesfull

   ok=%f;

   if typeof(dt)<>'SicosParam' then
     error('Type of data list doesn''t match.');
   end

   if fileinfo(fic)==[] then
     error('File doesn''t exists.');
   end

   [path,fname,extension]=fileparts(fic)
   fic_xml=path+fname+'.xml';

   if fileinfo(fic_xml)==[] then
     error('Xml file doesn''t exists.');
   end

   [dt_old,data]=getscicosparam(fic);

   if lstsize(dt)<>lstsize(dt_old) then
     error('Bad size for data list.');
   end

   for i=2:lstsize(dt)
     if dt(1)(i)<>dt_old(1)(i) then
       error('Bad name for component of data list : '+dt(1)(i)+'.');
     end
     if ~isequal(size(dt(i)),size(dt_old(i))) then
       error('Bad size for component of data list : '+dt(1)(i)+'. Must be '+sci2exp(size(dt_old(i)))+'.');
     end
     if ~isequal(typeof(dt(i)),typeof(dt_old(i))) then
       error('Bad type for component of data list : '+dt(1)(i)+'. Must be '+typeof(dt_old(i))+'.');
     end
   end

   fd=mopen(fic,'wb');

   for i=2:lstsize(dt)
     select evstr(data(i-1,4))
       case 10 then typ='dl';
       case 11 then typ='dl';
       case 84 then typ='ll';
       case 82 then typ='sl';
       case 81 then typ='cl';
       case 814 then typ='ull';
       case 812 then typ='usl';
       case 811 then typ='ucl';
     end
     mput(dt(i),typ,fd)
   end

   mclose(fd);
   ok=%t

endfunction