public bool TTA_Collect_Data(short[,] data_out, int cycle) { uint error_Sum = 0; //Wurde ein Trigger Event gefunden (wenn nich Rückgabewert ist 263) if (Did_Trigger_Event_occured() == 263) { //Fehlermeldung //SetAsyncText(Spectrum_answer, "Kein Trigger gefunden"); error_Sum += 263; error_Sum += Force_Trigger(); } //4. Daten abholen********************************************************************************************** //WArten bis alle Daten vorhanden sind (unendlich lang möglich) error_Sum += WaitTime_for_Trigger_inf(); error_Sum += Wait_for_all_samples(); //Datentransfer einstellen (Datapointer enspricht der Stelle des ersten Samples im Array) //Bei weiteren Zyklen muss dieser Pointer geändert werden //DataPointer is [0,0] //anzahl_samples entspricht der Länge einer Zeile //2 ist notwendig für short (2byte) //i ist die aktuelle Zeile (Zyklus) IntPtr aktuellerPointer = new IntPtr(Daten_Pointer.ToInt64() + 2 * cycle * Samples); error_Sum += Send_Pointer_of_Array(aktuellerPointer, Samples); error_Sum += Get_Data(); //Auf Errors checken if (error_Sum != 0) { MessageBox.Show("An Error occured while measurment!\n Error Code: ." + error_Sum.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); //Speicher lösen H_BufferHandle.Free(); return(false); } else { return(true); } }
/// <summary> /// Retruns true if no error occured while sending the settings /// </summary> public override bool Measure_Sensitivity_DEMO(Sensitvity_Measurement mySensitivity) { //Mögliche Errors mitzählen uint error_Sum = 0; //Speicher definieren & Spreren mySensitivity.RawData = new short[mySensitivity.Nr_of_samples]; H_BufferHandle = GCHandle.Alloc(mySensitivity.RawData, GCHandleType.Pinned); Daten_Pointer = H_BufferHandle.AddrOfPinnedObject(); //Messung starten error_Sum += WaitTime_for_Trigger_inf(); error_Sum += Adopt_Settings(); error_Sum += Start_Card(); error_Sum += Force_Trigger(); //Daten abholen error_Sum += WaitTime_for_Trigger_inf(); error_Sum += Wait_for_all_samples(); //Datentransfer einstellen (Datapointer enspricht der Stelle des ersten Samples im Array) IntPtr aktuellerPointer = new IntPtr(Daten_Pointer.ToInt64()); error_Sum += Send_Pointer_of_Array(aktuellerPointer, mySensitivity.Nr_of_samples); error_Sum += Get_Data(); //Auf Errors checken if (error_Sum != 0) { MessageBox.Show("An Error occured while measurment!\n Look at LOG: .", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); } else { return(true); } }
/// <summary> /// Retruns true if no error occured while sending the settings /// </summary> public override bool Measure_Sensitivity(Sensitvity_Measurement mySensitivity, ATIM_MainWindow GUI) { //Mögliche Errors mitzählen uint error_Sum = 0; //Messung starten error_Sum += WaitTime_for_Trigger_inf(); error_Sum += Adopt_Settings(); error_Sum += Start_Card(); error_Sum += Force_Trigger(); //Daten abholen error_Sum += WaitTime_for_Trigger_inf(); error_Sum += Wait_for_all_samples(); //Datentransfer einstellen (Datapointer enspricht der Stelle des ersten Samples im Array) IntPtr aktuellerPointer = new IntPtr(Daten_Pointer.ToInt64()); error_Sum += Send_Pointer_of_Array(aktuellerPointer, mySensitivity.Nr_of_samples); error_Sum += Get_Data(); //Plot in Graph RAW GUI.Add_Series_to_RAW(mySensitivity); //Auf Errors checken if (error_Sum != 0) { MessageBox.Show("An Error occured while measurment!\n Look at LOG: .", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); } else { return(true); } }