var C_SAMPLES_COUNT = 1000000; // times var min_time_step = min_time_step = 1 / Host.Frequency; var speedChannel = null; var averageData = {}; var deltaPos=200; function _debug(value, descr) { output_string = value + '\n'; if (descr != null) { output_string = descr + ": " + output_string } ReportOut(output_string); } function createConfiguration() { var Configuration1 = CreateConfigure("config1"); Configuration1.AddItem("speed", 4) Configuration1.Configure(); speedChannel = Configuration1.GetValue("speed"); } function prepareSpeedByABSGraphic() { var graphAccel = CreateGraphic("Speed by ABS", "Speed by ABS", 0xff00F0); for (var ii in averageData) { graphAccel.addPoint(ii * min_time_step, averageData[ii]); } return graphAccel; } function calc_peaks() { function get_current_pos(ii) { return ii * C_SAMPLES_COUNT; }; function check_condition(ii) { return (get_current_pos(ii) < NumberOfSamples) && CanContinue(); }; // get_current_pos(ii), prev_pos=deltaPos; for (var ii = 0, prev_pos = 0; prev_pos< NumberOfSamples+deltaPos; ii++) { peak_pos = SynchByEx( speedChannel, 1, 0.4, prev_pos+deltaPos, C_SAMPLES_COUNT,47, 0.0 ); if (peak_pos == -1) { break; } var value = 1 / (peak_pos - prev_pos) * min_time_step; averageData[peak_pos] = value; SetMarker(peak_pos, ''); prev_pos = peak_pos; } } if (DataType == "ANA") { createConfiguration(); calc_peaks(); var GraphicsView = CreateGraphicView("Accelerometr"); GraphicsView.SetDescription('graph of ..'); GraphicsView.AddGraphicEx(prepareSpeedByABSGraphic(), 2, 0xff00F0); GraphicsView.Update(); GraphicsView.Show(); ReportOut('Done'); }