protected void fillLine(FrequencyData curFrq, SignalResponse curSignal, byte[] samples, byte component, int i) { // component - 0 для о-компоненты, 1 для х-компоненты // i - номер частоты (ось Х) int j, j_beg, k; if (!_contentInfo.read_error) { j_beg = (int)((curSignal.height_begin - _header.height_min) / _header.height_step); // j_beg - начальный номер высоты (ось Y) for (k = 0; k < curSignal.count_samples; k++) { j = (int)_header.count_height - 1 - (j_beg + k); switch (component) { case 0: // красным рисуем о-компоненту _image_o.SetPixel(i, j, MapRainbowColor(samples[k], _contentInfo.max_o, _contentInfo.min_o)); break; case 1: // зеленым рисуем х-компоненту _image_x.SetPixel(i, j, MapRainbowColor(samples[k], _contentInfo.max_x, _contentInfo.min_x)); break; } } } }
protected FrequencyData readFrequencyData(BinaryReader reader) { FrequencyData tmp = new FrequencyData(); tmp.frequency = reader.ReadUInt16(); //!< Частота зондирования, [кГц]. tmp.gain_control = reader.ReadUInt16(); // !< Значение ослабления входного аттенюатора дБ. tmp.pulse_time = reader.ReadUInt16(); //!< Время зондирования на одной частоте, [мс]. tmp.pulse_length = reader.ReadByte(); //!< Длительность зондирующего импульса, [мкc]. tmp.band = reader.ReadByte(); //!< Полоса сигнала, [кГц]. tmp.type = reader.ReadByte(); //!< Вид модуляции (0 - гладкий импульс, 1 - ФКМ). tmp.threshold_o = reader.ReadByte(); //!< Порог амплитуды обыкновенной волны, ниже которого отклики не будут записываться в файл, [Дб/ед. АЦП]. tmp.threshold_x = reader.ReadByte(); //!< Порог амплитуды необыкновенной волны, ниже которого отклики не будут записываться в файл, [Дб/ед. АЦП]. tmp.count_o = reader.ReadByte(); //!< Число сигналов компоненты O. tmp.count_x = reader.ReadByte(); //!< Число сигналов компоненты X. return(tmp); }