PicoScope 7 Software
Available on Windows, Mac and Linux
Code: Select all
private short handle;
private short timebase;
private int no_of_samples = 1000;
private int time_interval_ns;
private short time_unit;
private short oversample = 2;
private int max_smaples;
public short GET_TIMEBASE()
{
fixed(int* TimeInterval = &time_interval_ns , MaxSamples = &max_smaples)
{
fixed (short* TimeUnit = &time_unit)
{
//short localTimeBase = timebase;
//int localNumSamples = Convert.ToInt32(no_of_samples);
//short localOversample = no_of_samples;
short finishStatus = ps3000_get_timebase(handle, timebase,no_of_samples, TimeInterval, TimeUnit, oversample, MaxSamples);
return finishStatus;
}
}
}
Code: Select all
[DllImport("ps3000.dll")]
private static extern short ps3000_get_timebase(
short handle,
short timebase,
int numSamples,
out int nsInterval,
out ReportedTimeUnits timeUnits,
short oversample,
out int maxSamples);
Code: Select all
private short handle;
private short timebase;
private int no_of_samples = 1000;
private int time_interval_ns;
private short time_unit;
private short oversample = 2;
private int max_smaples;
public short GET_TIMEBASE()
{
short finishStatus = ps3000_get_timebase(
handle,
timebase,
no_of_samples,
out time_interval_ns,
out time_unit,
oversample,
out max_smaples);
return finishStatus;
}
out int nsInterval,
out ReportedTimeUnits timeUnits,
Code: Select all
[DllImport("c://Program Files//Pico Technology//Pico Full//Examples//PS3000//ps3000.dll")]
private static extern short ps3000_get_timebase(short handle, short timebase, int no_of_samples, int* time_intervals_ns, short* time_units, short oversample, int* maxsamples);
public short GET_TIMEBASE()
{
fixed(int* TimeInterval = &time_interval_ns , MaxSamples = &max_smaples)
{
fixed (short* TimeUnit = &time_unit)
{
//short localTimeBase = timebase;
//int localNumSamples = Convert.ToInt32(no_of_samples);
//short localOversample = no_of_samples;
short finishStatus = ps3000_get_timebase(handle, timebase,no_of_samples, TimeInterval, TimeUnit, oversample, MaxSamples);
return finishStatus;
}
}
}
the relevant code is:An unhandled exception of type 'System.ArgumentException' occurred in PICOSCOPE.exe
Additional information: Method's type signature is not Interop compatible.
Code: Select all
[DllImport("c://Program Files//Pico Technology//Pico Full//Examples//PS3000//ps3000.dll")]
public static extern short ps3000_get_unit_info(short handle, out byte[] String, short stringLen, short Info);
void get_info()
{
string[] description = new string[6]{"Driver Version","USB Version","Hardware Version","Variant Info","Serial", "Error Code" };
byte[] line = new byte[20];
short i;
for (i = 0; i < 6; i++)
{
short check = ps3000_get_unit_info(handle, out line, 50, i);
Console.Write(description[i] + " ");
Console.Write(System.Text.Encoding.ASCII.GetString(line));
Console.WriteLine();
}
}
Code: Select all
PS3000 p = new PS3000();
try
{
short timebase = 0;
int no_of_samples = 1000;
int time_interval_ns;
PS3000.TimeUnits time_unit;
short oversample = 2;
int max_smaples;
p.Open();
bool ok = p.GetTimebase(
timebase,
no_of_samples,
out time_interval_ns,
out time_unit,
oversample,
out max_smaples);
}
catch (PS3000.PicoException e)
{
Console.WriteLine(e.Message);
}
p.Close();
Code: Select all
PS3000 p = new PS3000();
try
{
p.Open();
Console.WriteLine("Driver Version {0}", p.DriverVersion);
Console.WriteLine("USB Version {0}", p.UsbVersion);
Console.WriteLine("Hardware Version {0}", p.HardwareVersion);
Console.WriteLine("Variant Info {0}", p.VariantInfo);
Console.WriteLine("Serial {0}", p.Serial);
Console.WriteLine("Error Code {0}", p.Error);
}
catch(PS3000.PicoException e)
{
Console.WriteLine(e.Message);
}
p.Close();
}
Code: Select all
PS3000 PICO = new PS3000();
short timaBase = 2;
int NumOfSamples = 5000000;
int nsInterval;
short overSemple = 0;
PS3000.TimeUnits TimeUnit;
int MaxSamples;
PICO.GetTimebase(timaBase, NumOfSamples, out nsInterval, out TimeUnit, overSemple, out MaxSamples);
public bool GetTimebase(short timebase, int numSamples, out int nsInterval, out TimeUnits timeUnits, short oversample, out int maxSamples)
{
CheckOpened();
short ret = ps3000_get_timebase(_handle, timebase, numSamples, out nsInterval, out timeUnits, oversample, out maxSamples);
return ret > 0;
}
Code: Select all
SetChannel(PS3000.Channel.ChannelA, true, PS3000.Coupling.AC, PS3000.Range.Range1V);
SetChannel(PS3000.Channel.ChannelB, false, PS3000.Coupling.AC, PS3000.Range.Range1V);