Exemple #1
0
        private ECLib.ErrorCode setCPParams(ref ECLib.EccParams parameters, ref string file)
        {
            ECLib.ErrorCode err        = ECLib.ErrorCode.ERR_NOERROR;
            int             structsize = Marshal.SizeOf(typeof(ECLib.EccParam)); // size of a parameter

            file = ECLib.is_vmp4(infos.DeviceCode) ? "cp4.ecc" : "cp.ecc";

            // allocate N parameters in memory for the unmanaged call.
            parameters.len     = 16;
            parameters.pparams = Marshal.AllocHGlobal(parameters.len * structsize);

            ECLib.BL_DefineSglParameter("Current_step", 0.002f, 0, parameters.pparams + structsize * 0);                                 // {I0 (A)}
            ECLib.BL_DefineBoolParameter("vs_initial", false, 0, parameters.pparams + structsize * 1);                                   // {vs. init}
            ECLib.BL_DefineSglParameter("Duration_step", 0.1f, 0, parameters.pparams + structsize * 2);                                  //{Step duration (s)}
            //{Step #1}
            ECLib.BL_DefineSglParameter("Current_step", -0.001f, 1, parameters.pparams + structsize * 3);                                // {I1 (A)}
            ECLib.BL_DefineBoolParameter("vs_initial", false, 1, parameters.pparams + structsize * 4);                                   //  {scan to E1 s. init}
            ECLib.BL_DefineSglParameter("Duration_step", 0.2f, 1, parameters.pparams + structsize * 5);                                  //  {Step duration (s)
            //{Step #2}
            ECLib.BL_DefineSglParameter("Current_step", 0.004f, 2, parameters.pparams + structsize * 6);                                 //  {I2 (A)}
            ECLib.BL_DefineBoolParameter("vs_initial", false, 2, parameters.pparams + structsize * 7);                                   //  {vs. init}
            ECLib.BL_DefineSglParameter("Duration_step", 0.1f, 2, parameters.pparams + structsize * 8);                                  // {Step duration (s)}
            //{others}
            ECLib.BL_DefineIntParameter("Step_number", 2, 0, parameters.pparams + structsize * 9);                                       // {step number}
            ECLib.BL_DefineIntParameter("N_Cycles", 0, 0, parameters.pparams + structsize * 10);                                         // {cycle Nc time}
            ECLib.BL_DefineSglParameter("Record_every_dE", 0.1f, 0, parameters.pparams + structsize * 11);                               //  {record every dE (V)}
            ECLib.BL_DefineSglParameter("Record_every_dT", 0.01f, 0, parameters.pparams + structsize * 12);                              //  {or every dT (s)}
            ECLib.BL_DefineIntParameter("I_Range", (int)ECLib.IntensityRange.KBIO_IRANGE_10mA, 0, parameters.pparams + structsize * 13); // {I Range}
            ECLib.BL_DefineIntParameter("E_Range", (int)ECLib.VoltageRange.KBIO_ERANGE_AUTO, 0, parameters.pparams + structsize * 14);   //{E Range}
            ECLib.BL_DefineIntParameter("Bandwidth", (int)ECLib.Bandwidth.KBIO_BW_5, 0, parameters.pparams + structsize * 15);           //{bandwidth}

            return(err);
        }
Exemple #2
0
        private ECLib.ErrorCode setCAParams(ref ECLib.EccParams parameters, ref string file)
        {
            ECLib.ErrorCode err        = ECLib.ErrorCode.ERR_NOERROR;
            int             structsize = Marshal.SizeOf(typeof(ECLib.EccParam)); // size of a parameter

            file = ECLib.is_vmp4(infos.DeviceCode) ? "ca4.ecc" : "ca.ecc";

            // allocate parameters in memory for the unmanaged call.
            parameters.len     = 16;
            parameters.pparams = Marshal.AllocHGlobal(parameters.len * structsize);

            err |= ECLib.BL_DefineSglParameter("Voltage_step", 1.5f, 0, parameters.pparams + structsize * 0);                                   // E0 (V)
            err |= ECLib.BL_DefineBoolParameter("vs_initial", false, 0, parameters.pparams + structsize * 1);                                   // vs. init
            err |= ECLib.BL_DefineSglParameter("Duration_step", 0.1f, 0, parameters.pparams + structsize * 2);                                  // Step duration (s)
            // Step #1
            err |= ECLib.BL_DefineSglParameter("Voltage_step", -1.0f, 1, parameters.pparams + structsize * 3);                                  // E1 (V)
            err |= ECLib.BL_DefineBoolParameter("vs_initial", false, 1, parameters.pparams + structsize * 4);                                   // scan to E1 s. init
            err |= ECLib.BL_DefineSglParameter("Duration_step", 0.2f, 1, parameters.pparams + structsize * 5);                                  // Step duration (s)
            // Step #2
            err |= ECLib.BL_DefineSglParameter("Voltage_step", 2.0f, 2, parameters.pparams + structsize * 6);                                   // E2 (V)
            err |= ECLib.BL_DefineBoolParameter("vs_initial", false, 2, parameters.pparams + structsize * 7);                                   // vs. init
            err |= ECLib.BL_DefineSglParameter("Duration_step", 0.1f, 2, parameters.pparams + structsize * 8);                                  // Step duration (s)
            // others
            err |= ECLib.BL_DefineIntParameter("Step_number", 2, 0, parameters.pparams + structsize * 9);                                       // step number
            err |= ECLib.BL_DefineIntParameter("N_Cycles", 0, 0, parameters.pparams + structsize * 10);                                         // cycle Nc time
            err |= ECLib.BL_DefineSglParameter("Record_every_dI", 0.1f, 0, parameters.pparams + structsize * 11);                               // record every dI (A)
            err |= ECLib.BL_DefineSglParameter("Record_every_dT", 0.01f, 0, parameters.pparams + structsize * 12);                              // or every dT (s)
            err |= ECLib.BL_DefineIntParameter("I_Range", (int)ECLib.IntensityRange.KBIO_IRANGE_AUTO, 0, parameters.pparams + structsize * 13); // I Range
            err |= ECLib.BL_DefineIntParameter("E_Range", (int)ECLib.VoltageRange.KBIO_ERANGE_AUTO, 0, parameters.pparams + structsize * 14);   // E Range
            err |= ECLib.BL_DefineIntParameter("Bandwidth", (int)ECLib.Bandwidth.KBIO_BW_5, 0, parameters.pparams + structsize * 15);           // bandwidth

            return(err);
        }