Приложение 1. Формат файлов конфигурации ЦСС ============================================= Конфигурация ЦСС (SDAS V2.0 и выше) задается с помощью файлов %SDAS%.CFG и %SDAS%.INI, где %SDAS% - трехбуквенный код названия станции. Файл %SDAS%.CFG является управляющим для основной программы сбора и представляет собой двоичную структуру параметров, идентичную структуре параметров по умолчанию, включенную в программу на этапе компоновки. При старте программа пытается открыть этот файл в служебном каталоге и, в случае успешного открытия, замещает структуру параметров по умолчанию структурой, считанной из файла %SDAS%.CFG. В противном случае программа стартует с параметрами по умолчанию. Файл %SDAS%.INI является текстовым аналогом файла %SDAS%.CFG, оформленным в правилах конфигурационных файлов системы Windows. Он состоит из секций, в которых дается описание однотипных параметров. Название секций заключено в квадратные скобки. Тело секции начинается со следующей строки после названия и продолжается до названия следующей секции. Каждый параметр в секции описывается на отдельной строке и представляет собой тождество следующего вида: Название_параметра=Значение_параметра[,значение_параметра,..] , где часть строки, заключенная в квадратные скобки, является необязательной. Для преобразования текстового файла в двоичный используется программа Ini2cgf, входящая в состав ПО ЦСС (она располагается, как и остальное ПО, в каталоге C:\PROGRAM системного диска блока сбора - собственно ЦСС). Запуск программы осуществляется из командной строки со следующими параметрами: Ini2cfg %SDAS%.ini [%SDAS%.cfg] , где %SDAS% - трехбуквенный код названия станции, %SDAS%.ini - имя текстового конфигурационного файла, %SDAS%.cfg - имя двоичного конфигурационного файла (необязательный параметр). Программа производит считывание текстового файла, проверку всех его секций и параметров, корректирование их, если это необходимо, и запись в двоичный файл с соответствующим названием (если имя файла не задано, используется имя входного файла со сменой расширения на CFG). При обнаружении ошибки программа извещает об этом оператора. Размер двоичного файла конфигурации составляет 1025 байт. 1.1. Описание текстового файла конфигурации ЦСС Ниже (см. Рис. 11) приведен пример текстового файла конфигурации ЦСС. [HEADER] HEADER_SIZE=3072 OFFSET_TO_DATA=4608 TYPE=Seismic Digital Aquasition Station, V2.21 [SYSTEM] NAME=YA2 LAT=53.62 LON=142.90 ALT=11.00 FREQ=200 N_CHANNEL=16 N_GROUP=6 N_STREAM=2 N_SCEDULE=2 [ALGORITHM] TYPE=STA/LTA TIME_PRE=10 TIME_POST=30 TIME_LIMIT=180 N_FLAG=1 N_CH=4 CH#=4,5,2,3 [SCEDULE1] START=25/05/98,00:40:35 DURATION=60 REPEATE=0 DELAY=0 CALIBR=NONE ... [GROUP1] TYPE=Broad bend, Low Gain FREQ=20 N_CH=3 CH#=5,11,15 GAIN=0 [GROUP2] TYPE=Broad bend, High Gain FREQ=20 N_CH=3 CH#=4,10,14 GAIN=2 ... [STREAM1] TYPE=TRIGGER REC_SIZE_SEC=5 FILE_SIZE_SEC=0 N_CH=6 CH#=2,6,12,3,7,13 [STREAM2] TYPE=PERMANENT REC_SIZE_SEC=30 FILE_SIZE_SEC=300 N_CH=6 CH#=4,10,14,5,11,15 [CH1] STAT=OFF NAME=MLZ STA=0.60 LTA=5.00 K=5.50 W=1 [CH2] STAT=ON NAME=EHZ STA=0.20 LTA=3.00 K=3.50 W=1 ... [CH16] STAT=OFF NAME=AE STA=0.20 LTA=3.00 K=5.50 W=1 Рис. 11. Пример текстового файла конфигурации ЦСС 1.1.1. Секция [HEADER]. Начальная секция [HEADER] является описательной и содержит следующие параметры: НЕАDER_SIZE размеры заголовка в байтах, OFFSET_TO_DATA смещение от начала файла до данных в байтах, TYPE название системы сбора (ЦСС) и номер версии ПО. Размеры и смещение, приведенные в этой секции, имеют смысл только в случае использования этого файла в качестве заголовка в файлах данных. В файле данных, создаваемом системой сбора, эти значения описывают реальные значения размера текстового заголовка. и смещения от начала файла до начала первого отсчета. Изменение этих значений может привести к нарушению работы системы сбора! 1.1.2. Секция [SYSTEM] Секция [SYSTEM] описывает параметры системы: трехбуквенное обозначение имени станции NAME, ее географические координаты LAT, LON в градусах и сотых долях градусов и ALT в метрах. Пользователь может изменять все эти параметры при необходимости как в текстовом редакторе, так и с помощью процедур изменения названия станции и/или привязки ее к новым координатам. Остальные параметры этой секции являются служебными и описывают конфигурацию аппаратно-программного обеспечения ЦСС, отражающую текущую реализацию станции. Изменение этих значений может привести к нарушению работы системы сбора! 1.1.3. Секция [ALGORITHM] Секция [ALGORITHM] описывает параметры алгоритма выделения полезного события, который может быть включен для предварительного обнаружения сигналов, совпадающих по характеристикам с землетрясениями. TYPE - задает тип алгоритма. В текущей реализации значение этого Параметра может быть только STA/LTA, что соответствует Запрограммированному алгоритму выделения на основе превышения уровня среднего сигнала в коротком окне над уровнем среднего в длинном окне. Параметр описан для дальнейшего расширения системы. TIME_PRE - определяет время пред-записи (размер буфера, содержащий данные, предшествующие моменту обнаружения полезного события алгоритмом обнаружения) в секундах. Система сбора произведет сохранение этого буфера в выходном файле соответствующего потока перед записью первого блока данных, в котором произошло обнаружение. Значение этого параметра может быть в пределах от 0 до 15 секунд. TIME_POST - определяет время пост-записи (время удержания флага обнаружения события после того, как алгоритм обнаружения зафиксирует пропадание полезного сигнала) в секундах. В течение этого времени продолжается запись данных в выходной файл. Если до истечения этого промежутка времени алгоритм обнаружения вновь зафиксирует появление полезного сигнала, счетчик пост-записи сбрасывается и отсчет времени начнется вновь только после пропадания сигнала. Значение этого параметра может быть в пределах от 0 до 120 секунд. TIME_LIMIT - задает максимальный промежуток времени, в течение которого будет производиться запись в выходной файл при условии установленного флага обнаружения события. По истечении этого времени происходит принудительный сброс этого флага и закрытие выходного файла. На параметры алгоритма обнаружения сброс флага влияние не оказывает. Если в следующую секунду времени алгоритм обнаружения подтвердит наличие события, произойдет открытие нового файла с нулевым временем пред-записи. Значение этого параметра может быть в пределах от 0 до 240 секунд. N_FLAG - определяет количество каналов, в которых одновременно обнаружено событие, необходимое для того, чтобы алгоритм обнаружения установил флаг наличия события. Значение этого параметра может быть в пределах от 0 до 3. N_CH - определяет количество каналов, которые принимают участие в работе алгоритма обнаружения. Значение этого параметра может быть в пределах от 0 до значения, определяемого текущей конфигурацией аппаратно-программного обеспечения ЦСС и задаваемого параметром N_CHANNEL в секции [SYSTEM]. CH# - задает перечень каналов, которые будут участвовать в работе алгоритма обнаружения. Количество каналов должно быть равным значению, определяемому параметром N_CH. Установление алгоритмом обнаружения флага наличия события происходит по мажоритарной схеме N_FLAG из N_CH, то есть для принятия решения о наличии события требуется, чтобы из N_CH каналов, которые участвуют в работе алгоритма обнаружения, был установлен флаг не менее, чем по N_FLAG каналам. Если значение N_FLAG больше N_CH, алгоритм будет всегда выключен (хотя будет производиться расчет значений среднего сигнала по каждому каналу, включенному в алгоритм). 1.1.4. Секция [SCEDULE] Секции [SCEDULE1], [SCEDULE2] и т.д. задают расписания работы станции. Количество секций определяется текущей конфигурацией аппаратно-программного обеспечения ЦСС и задается параметром N_SCEDULE в секции [SYSTEM]. В текущей реализации ПО ЦСС имеет смысл только первая секция. К рассмотрению программой принимаются только первые два параметра, которые задают дату, время начала и продолжительность принудительной записи в выходной поток (триггерный) данных каналов, описываемых секцией [STREAM1]. Режим калибровки по расписанию не реализован. Для управления калибровкой необходимо использовать режим удаленного управления станции (подробнее см. "Описание и Инструкцию по эксплуатации ПО ЦСС"). START - параметр задает дату и время начала работы расписания. Формат dd/mo/yy,hh:mi:ss, где dd - день месяца, mo - месяц, yy - год (две цифры), hh - час, mi - минута, ss - секунда начала работы расписания. DURATION - определяет продолжительность работы расписания в секундах. REPEATE - задает количество повторов данного расписания. Если параметр равен 0, количество повторов не ограничено. DELAY - определяет задержку перед следующим повтором расписания после его окончания в секундах. Если параметр равен 0, расписание будет выполняться непрерывно. CALIBR - задает имя файла, который будет служить калибровочным сигналом для маятников. Файл должен представлять собой двоичные 12-ти разрядные данные, являющиеся отсчетами калибровочного сигнала. Подробнее о формате этого файла можно узнать в Приложении ???. Параметры REPEATE, DELAY и CALIBR описаны для дальнейшего развития системы и в текущей реализации не несут смысловой нагрузки. 1.1.5. Секция [GROUP] Секции [GROUP1], [GROUP2] и т.д. определяют объединение каналов ЦСС в группы по ряду признаков. Количество секций определяется текущей конфигурацией аппаратно-программного обеспечения ЦСС и задается параметром N_GROUP в секции [SYSTEM]. TYPE - параметр определяет текстовое описание данной группы (на английском языке в стандарте, определяемом в соответствии с рекомендациями Стандарта для Обмена Данными Землетрясений SEED V2.3, февраль 1993 г.) FREQ - задает частоту дискретизации для каналов данной группы в отсчетах/секунду. Значение параметра определяется текущей конфигурацией и не должно изменяться. GAIN - определяет коэффициент усиления для всех каналов этой группы. Текущая реализация ЦСС позволяет изменять коэффициент только для группы каналов. Соответствие значения коэффициента реальному усилению предусилителя приведено ниже (см. Таблица 6). Значение коэффициента может изменяться пользователем по своему усмотрению по мере необходимости. Эти же действия могут производиться с помощью процедуры удаленного управления станции (подробнее см. "Описание и Инструкцию по эксплуатации ПО ЦСС"). Таблица 6. Соответствие коэффициентов реальному усилению Коэффициент GAIN Усиление 0 1 1 2 2 4 3 8 4 16 5 32 6 64 7 128 8 256 N_CH - определяет количество каналов, входящих в состав данной группы. Значение этого параметра может быть в пределах от 0 до значения, определяемого текущей конфигурацией аппаратно-программного обеспечения ЦСС и задаваемого параметром N_CHANNEL в секции [SYSTEM]. CH# - задает перечень каналов, входящих в состав данной группы. Количество каналов должно быть равным значению, определяемому параметром N_CH. 1.1.6. Секция [STREAM] Секции [STREAM1], [STREAM2] и т.д. описывают выходные потоки, которые создает во время работы станция. Количество секций определяется текущей конфигурацией аппаратно-программного обеспечения ЦСС и задается параметром N_STREAM в секции [SYSTEM]. TYPE - параметр задает тип потока, формируемого системой сбора. Определены два типа - непрерывный (PERMANENT) и триггерный(TRIGGER). Первый поток формирует выходные данные в файловом кольцевом буфере непрерывно, второй поток - по результатам работы алгоритма выделения. Файловый кольцевой буфер представляет собой множество файлов, имеющих одинаковые признаки для одного потока. Количество файлов зависит от текущей конфигурации аппаратно-программных средств и предустановленно в системе. По мере заполнения дискового пространства наиболее старые файлы автоматически удаляются. Размер файлов определяется значением параметра FILE_SIZE_SEC, описываемого далее, но может отличаться от него (в сторону уменьшения) по причине работы алгоритма выделения или перезагрузок станции. REC_SIZE_SEC - определяет размер порции данных в секундах, которая накапливается в системе сбора перед записью в выходной поток. Значение параметра определяется текущей конфигурацией и не должно изменяться. FILE_SIZE_SEC - задает максимальный размер файла кольцевого буфера в секундах. По достижении заданного размера система закрывает текущий файл, проверяет наличие свободного места на диске, наличие свободного входа в список файлов данного потока и делает вывод о удалении наиболее старого файла этого потока. После этого происходит открытие нового файла. Параметр может изменяться пользователем в зависимости от необходимости. N_CH - определяет количество каналов, входящих в состав данного потока. Значение этого параметра может быть в пределах от 0 до значения, определяемого текущей конфигурацией аппаратно-программного обеспечения ЦСС и задаваемого параметром N_CHANNEL в секции [SYSTEM]. CH# - задает перечень каналов, входящих в состав данного потока. Количество каналов должно быть равным значению, определяемому параметром N_CH. 1.1.7. Секция [CH] Секции [CH1], [CH2] и т.д. определят параметры каждого из каналов, входящих в состав ЦСС. Количество секций определяется текущей конфигурацией аппаратно-программного обеспечения ЦСС и задается параметром N_CHANNEL в секции [SYSTEM]. Номер канала однозначно соответствует номерам, включаемым в описание потоков и групп. NAME - параметр задает трехсимвольное имя канала в соответствии с рекомендациями Стандарта для Обмена Данными Землетрясений SEED V2.3, февраль 1993 г. Для ЦСС в именах каналов определены следующие позиции: первый символ имени канала задает тип прибора и может быть B, E, M, A, где B широкополосные приборы типа сейсмометр с частотой оцифровки от 10 до 80 отсчетов в секунду; E короткопериодные приборы типа сейсмометр с частотой оцифровки свыше 80 отсчетов в секунду; M среднепериодные приборы типа сейсмометр с частотой оцифровки от 1 до 10 отсчетов в секунду; A административные каналы (для контроля напряжения, температуры и др.). второй символ описывает физические характеристики определенного первым символом типа прибора и может быть H, L, E, где H сейсмометры с высоким усилением; L сейсмометры с низким усилением; E электронные измерения (определено для административных каналов). третий символ задает тип компоненты прибора или может отсутствовать. Для сейсмометров он определен как Z, N, E, где Z вертикальная компонента; N компонента север-юг; E компонента восток-запад. Другие значения для обозначения имен каналов в текущей версии ЦСС не реализованы. Названия каналов изменению не подлежат! STAT - параметр определяет состояние канала - включен/выключен. Если канал отключен, данные, поступающие от соответствующего аппаратного номера канала, игнорируются системой сбора (для него не выделяется буфер, данные не обрабатываются, не включаются в выходной поток). Состояния канала изменению не подлежат! STA - задает ширину короткого окна в секундах и сотых долях секунды, в котором идет измерение среднего уровня сигнала для работы алгоритма выделения. Значение должно изменяться пользователем при настройке алгоритма. LTA - определяет ширину длинного окна в секундах и сотых долях секунды, в котором идет измерение среднего уровня сигнала для работы алгоритма выделения. Значение должно изменяться пользователем при настройке алгоритма. K - задает в разах коэффициент превышения среднего уровня сигнала в коротком окне над уровнем среднего в длинном окне, при достижении которого алгоритм обнаружения делает вывод о наличии полезного сигнала по данному каналу. Значение должно изменяться пользователем при настройке алгоритма. W - определяет вес данного канала в суммарном анализе алгоритмом обнаружения. Параметр введен для расширения системы и текущем варианте не используется. Веса всех каналов считаются равными 1 (единице). Пользователь может производить изменение только тех параметров файла конфигурации, для которых в данном руководстве сделано соответствующее замечание. Остальные параметры изменению не подлежат! 1.2 . Описание двоичного файла конфигурации ЦСС Описание двоичного файла конфигурации приведено в формате файлов-описателей языка Си (h-файлов). Фрагмент текста файла приведен ниже (см. Рис. 12). В файл производится запись структуры CmnPrm с подсчетом контрольной суммы таким образом, чтобы после записи в поле CS этой контрольной суммы пословное суммирование содержимого CmnPrm равнялось нулю. #define NCHANNEL 16 #define NGROUP 6 #define NSTREAM 2 #define NSCEDULE 2 #include typedef struct date Date; typedef struct { unsigned char ti_min; unsigned char ti_hour; unsigned char ti_hund; unsigned char ti_sec; unsigned char ti_ms; unsigned char ti_hlth; } Time; typedef struct { /* Channel parameters */ char glob_stat; // Global status (1-Channel on,0-off) char name[8]; // Channel's Name char alg_stat; // Satus in algoritm ( 1-use, 0-not ) // Events algoritm parameters float STA, LTA, KOEF; short WEIGTH; } ChPrm; typedef struct { /* Stream Parameters */ char Type; // Type of Stream (P-Permanent,T-Trigger) char iRec_len; // Record length in second short iFile_size; // File size in sec (0 - limited SysPrm.Tlim) char N_ch; // Numbers of channel in Stream char chan[NCHANNEL]; // Channel's number } Stream; typedef struct { /* Group Parameters */ char Type[40]; // Type of Group (description) short Freq; // Group Frequency char Gain; // Group Gain char N_ch; // Numbers of channel in Group char chan[NCHANNEL]; // Channel's number } Group; typedef struct { /* Scedule parameter structure */ Date da_on; // Date of Scedule's start Time ti_on; // Time of Scedule's start short iDuration; // Duration in sec (if 0 - not limited) short iRepeate; // Repeate (if 0 - not limited) short iDelay; // Delay before Repeate (if 0 - not limited) char sCalib[40]; // Calibration file name (if 0 - not calib) } Scedule; typedef struct { /* System Parameters */ short Freq; // System Frequency of discretisation short Tpos, Tpre; // Time of Pre- and Pos-Events write(sec) short Ntrig, Tlim; // Number of triggers, MAX Time limits(sec) short Tset_h, Tset_m; // Time of Preset write to disk short Tset_s; // (every day) char N_ch; // Number of channel used in detection char chan[NCHANNEL]; // Channel's number } SysPrm; typedef struct { /* Common Parameters */ unsigned short CS; // Control Summ (summ all word must be 0) short hd_len; // Header Size short data_offs; // Offset to data char SysType[64]; // System description - ASCI text char SysName[8]; // System Name ( OBN, Telem, ... ) float lat, lon, alt; // System coordinate char N_ch; // Number of channel char N_grp; // Number of group char N_sced; // Number of sceduler char N_str; // Number of stream SysPrm sysprm; Group grp[NGROUP]; Stream str[NSTREAM]; Scedule sced[NSCEDULE]; ChPrm prm[NCHANNEL]; } CmnPrm; Рис. 12. Исходный текст структуры конфигурации ЦСС на языке Си Приложение 2. Формат файлов кольцевого буфера данных системы сбора ================================================================== Цифровые данные, собираемые системой сбора, накапливаются в файловом кольцевом буфере. Он представляет собой множество файлов, имеющих одинаковые признаки для одного из потоков - непрерывного (PERMANENT) и триггерного (TRIGGER). Для непрерывного потока данных файлы имеют название следующей структуры: PddMhhmm.%SDAS%, где P - признак непрерывных (Permanent) данных, dd - день начала регистрации (от начала месяца), M - месяц начала регистрации (в шестнадцатиричном (hexadecimal) коде), hh - час начала регистрации, mm - минуты начала регистрации, %SDAS% - трехбуквенное название станции (международный код). Для триггерного потока данных файлы кольцевого буфера имеют название следующей структуры: ddMhhmms.%SDAS%, где dd - день начала регистрации (от начала месяца), M - месяц начала регистрации (в шестнадцатиричном (hexadecimal) коде), hh - час начала регистрации, mm - минуты начала регистрации, s - десятки секунд начала регистрации, %SDAS% - трехбуквенное название станции (международный код). С января по сентябрь месяц задается обычной цифрой (от 1 до 9), а для остальных месяцев обозначение следующее: октябрь - a, ноябрь - b, декабрь - c. Количество файлов зависит от текущей конфигурации аппаратно-программных средств и предустановленно в системе. По мере заполнения дискового пространства наиболее старые файлы автоматически удаляются. Размер файлов определяется значением параметра FILE_SIZE_SEC, описываемого в конфигурационном файле в секции [STREAM] (см. Приложение 1), но может отличаться от него (в сторону уменьшения) по причине работы алгоритма выделения или перезагрузок станции. Формат файлов и для непрерывного, и для триггерного потоков данных одинаков. Файл данных состоит из текстового заголовка, двоичного заголовка и области данных: ---------------------------------------------------------------------- | Текстовый заголовок | Двоичный заголовок | Область данных -> | НЕАDER_SIZE=3072 байт |<-1025 байт->| | -> |<-------OFFSET_TO_DATA=4608 байт----------->| -> ---------------------------------------------------------------------- Рис. 13. Структура файла данных В соответствии с конфигурационным файлом вначале файла данных идет основной заголовок, размер которого задается параметром OFFSET_TO_DATA в секции [HEADER]. Далее следует область данных, содержащая последовательные записи мультиплексированных по-канально 16-ти разрядных отсчетов входного сигнала. 2.1. Текстовый заголовок Текстовый фрагмент предназначен для обеспечения наглядного доступа к параметрам системы сбора с помощью текстовых средств просмотра. Кроме того, он позволяет организовать считывание параметров ЦСС с помощью стандартных средств, так как оформлен в правилах конфигурационных файлов системы Windows. Текстовый заголовок состоит из двух фрагментов - фиксированного и изменяемого. Создание текстового заголовка происходит в 2 этапа: 1. запись фиксированного фрагмента и запись пустого буфера для изменяемого фрагмента текстового заголовка при открытии нового файла кольцевого буфера; 2. коррекция фиксированного фрагмента и запись изменяемого фрагмента текстового заголовка при закрытии файла кольцевого буфера. Фиксированный фрагмент полностью идентичен текстовому конфигурационному файлу %SDAS%.INI, где %SDAS% - трехбуквенный код названия станции. Он подробно описан в Приложении 1. Следует учесть, что изменяемые значения параметров в фиксированный фрагмент будут записаны те, которые были установлены в системе сбора с помощью программ удаленного управления на момент последней коррекции текстового заголовка. Изменяемый фрагмент текстового заголовка зависит от типа потока данных. 2.1.1. Изменяемый фрагмент текстового заголовка непрерывного потока данных Для непрерывного потока выходных данных формат изменяемой части приведен ниже. В нем определены две секции, описывающие данный выходной файл - [FILE] и [BINARY HEADER]. [FILE] STREAM=2 DATA_TYPE=UINT DATA_SEC=3600 DATE_INT=18-08-1998 TIME_INT=17:19:10.00 DATE_DOS=18-08-1998 TIME_DOS=17:19:10 DATE_EXT=18-08-1998 TIME_EXT=17:19:09 FILE_TYPE=PERMANENT ... [BINARY HEADER] Рис. 14. Формат изменяемой части текстового заголовка непрерывного потока данных Первая секция [FILE] описывает тип потока, данные которого составляют файл, и значения всех систем ведения времени, соответствующих первому отсчету данных. Значения параметров секции, не относящихся ко времени, приведены ниже. STREAM определяет, что данный файл принадлежит непрерывному (PERMANENT) потоку, описанному в секции [STREAM] с соответствующим номером (2). DATA_TYPE задает тип данных, помещаемых в файл. Для текущей версии ЦСС это значение фиксировано (UINT) и определяет, что данные представляют собой 16-ти разрядные беззнаковые целые слова в соответствии со стандартом для ЭВМ типа IBM/PC. DATA_SEC определяет реальный размер записанных в этот файл данных в секундах. На момент открытия файла значение этого параметра равно 0 и корректируется по мере реальной записи данных в файл. В штатном режиме это значение должно совпадать со значением параметра FILE_SIZE_SEC, описываемого в секции [STREAM], но может отличаться от него (в сторону уменьшения) по причине перезагрузок станции. FILE_TYPE значение этого параметра всегда определено как PERMANENT и включено для удобства работы программы-конвертора. Вторая секция [BINARY HEADER] предваряет собой начало двоичного заголовка. Сразу за строкой, описывающей эту секцию (включая символы перевода строки и возврата каретки \n и \r), начинаются данные двоичного заголовка. 2.1.2. Изменяемый фрагмент текстового заголовка триггерного потока данных Для триггерного потока выходных данных формат изменяемой части также содержит секции [FILE] и [BINARY HEADER]. Параметр STREAM определяет, что данный файл принадлежит непрерывному (FILE_TYPE=TRIGGER) потоку, описанному в секции [STREAM] с соответствующим номером (1). Остальные параметры аналогичны описанным в п. 2.1.1. Кроме того, секция [FILE] содержит дополнительные параметры (см. Рис. 15): FILE_OPEN - параметр описывает режим открытия файла. В текущей версии ПО ЦСС предопределены следующие типы открытия файла: USER_PRESS - по команде оператора, TIME_PRESET_BEGIN - по наступлению времени начала работы одного из расписаний, LTA_STA - по срабатыванию алгоритма обнаружения событий, EMPTY - режим открытия не определен (установлен по умолчанию). FILE_CLOSE - определяет режим закрытия файла. Определены следующие значения параметра: USER_PRESS - по команде оператора, TIME_PRESET_END - по наступлению времени окончания работы расписания, LONG FILE SIZE - по превышению размера выходного файла установленного размера (определяется значением параметра FILE_SIZE_SEC, описываемого в конфигурационном файле в секции [STREAM]), EVENT END - по окончанию события (работа алгоритма обнаружения), EMPTY - режим закрытия не определен (установлен по умолчанию). При открытии файла значения параметров FILE_OPEN и FILE_CLOSE устанавливаются равным значениям по умолчанию, а коррекция их производится в момент закрытия файла. [FILE] STREAM=1 DATA_TYPE=UINT DATA_SEC=85 DATE_INT=08-06-1998 TIME_INT=21:58:32.00 DATE_DOS=08-06-1998 TIME_DOS=21:58:32 DATE_EXT=08-06-1998 TIME_EXT=21:58:31 FILE_TYPE=TRIGGER FILE_OPEN=LTA/STA FILE_CLOSE=EVENT END [EVENT] N_TRIG=3 CH#=3,5,7 DATE_CH3=08-06-1998 TIME_CH3=21:56:33.00 DATE_CH5=08-06-1998 TIME_CH5=21:58:56.18 DATE_CH7=08-06-1998 TIME_CH7=21:58:56.00 ... [BINARY HEADER] Рис. 15. Формат изменяемой части текстового заголовка триггерного потока данных В изменяемой части текстового заголовка триггерного потока данных присутствует секция [EVENT], дающая описание времени начала процесса, повлекшего за собой открытие файла. Параметры секции приведены ниже. N_TRIG - определяет количество обнаружений событий по отдельным каналам, при котором алгоритм обнаружения установил флаг обнаружения события. CH# - задает перечень каналов, которые участвовали в работе алгоритма обнаружения. Количество каналов должно быть равным значению, определяемому параметром N_TRIG. DATE_CHn - определяет дату обнаружения события по каналу n. TIME_CHn - определяет время обнаружения события по каналу n. Пустые поля между последней значимой строкой текстового заголовка и названием секции [BINARY HEADER] заполняются пробелами так, чтобы сразу за строкой, описывающей эту секцию (включая символы перевода строки и возврата каретки \n и \r), начинались данные двоичного заголовка. 2.2. Двоичный заголовок Для удобства работы программ-конверторов на ЭВМ, совместимых с IBM/PC, в основной заголовок файлов кольцевого буфера включен двоичный заголовок, расположенный от начала файла по смещению, определяемому параметром НЕАDER_SIZE в секции [HEADER] (см. Рис. 13). Двоичный заголовок полностью идентичен конфигурационному файлу %SDAS%.CFG, где %SDAS% - трехбуквенный код названия станции. Он представляет собой двоичную структуру параметров, описанную подробно в Приложении 1. Размер структуры фиксирован и составляет 1025 байт. Размер двоичного заголовка составляет (OFFSET_TO_DATA-НЕАDER_SIZE) байт. Оставшиеся поля до этого значения заполняются значением 0х0 (шестнадцатеричное). 2.3. Область данных Область данных состоит из блоков данных (см. Рис. 16). Размер блока данных зависит от типа потока: количества включенных в него каналов, задаваемого параметром N_CH, их частот дискретизации (параметр FREQ в секции [GROUP]) и размера одной записи, задаваемой параметром REC_SIZE_SEC. -------------------------------------------------------------------- | Блок данных | Блок данных | Блок данных | . . . | Блок данных | -------------------------------------------------------------------- Рис. 16. Структура области данных Блок данных состоит из локального заголовка и нескольких фрагментов данных, количество которых определено параметром N_CH в секции [STREAM]. Каждый из фрагментов данных относится к одному из сейсмических каналов, входящих в поток (см. Рис. 17). -------------------------------------------------------------------------- | Локальный | Фрагмент данных | Фрагмент данных | | Фрагмент данных| | заголовок | для 1-го канала | для 2-го канала | | для N-го канала| -------------------------------------------------------------------------- | hd.hdsz= |<- REC_SIZE_SEC->|<- REC_SIZE_SEC->| . . . |<-REC_SIZE_SEC->| | HEADREC= |<--* FREQ слов-->|<--* FREQ слов-->| |<--*FREQ слов-->| | 256 байт |<------------------------hd.offs байт---------------------->| -------------------------------------------------------------------------- Рис. 17. Структура блока данных Длина локального заголовка фиксирована и имеет размер 256 байт. Длина фрагментов данных одинакова в пределах файла и может быть определена из текстового или двоичного заголовка (она равна REC_SIZE_SEC*FREQ целых беззнаковых слов). Число фрагментов данных одинаково в пределах файла и также может быть определено из текстового или двоичного заголовка (параметр N_CH в соответствующей секции [STREAM]). Формат локального заголовка приведен в формате файлов-описателей языка Си (h-файлов). Фрагмент текста файла приведен ниже (см. Рис. 18). Метка начала локального заголовка позволяет идентифицировать начало заголовка. Следующий блок данных расположен по смещению 256+ hd.offs байт от начала текущего блока. Слово hd.St побитно описывает количество групп, входящих в данный поток. Наличие 1 в соответствующем бите говорит о присутствии данной группы в потоке. Количество компонент в группах определяется параметром hd.Ncomp. Значение времени, соответствующего первому отсчету данных в каждом фрагменте, приведено для всех систем ведения времени в соответствующих полях (см. Рис. 18). Кроме того, заголовок содержит коэффициенты усиления для всех каналов, входящих в состав системы, установленные на момент записи данного блока. Дополнительно приводятся характеристики станции (ее название и координаты) и потока (размер записи в секундах и перечень каналов). #define NCHANNEL 16 #define HEADREC 256 unsigned short label[4]; // Head identify - 0xAAAA, 0xAAAA, short i_d,i_mo,i_y; // Internal date short i_h,i_mi,i_s; // Internal time short i_ms; // Internal time short St; // Stations presents word - in bits !!! short hdsz; // Header size in bytes <=> HEADREC short Ncomp; // Number of conponent in station short freq; // Frequency - Sample per second unsigned long offs; // Data block length short d_d,d_mo,d_y; // DOS(RealTimeClock) date short d_h,d_mi,d_s; // DOS(RTC) time short e_d,e_mo,e_y; // External date short e_h,e_mi,e_s; // External time short nch; // Number of channel in station <=> // NCHANNEL unsigned char gain[NCHANNEL]; // Gain for channel float lat, lon; // Station coordinates short alt; // --"- char Name[4]; // Station name char ch[NCHANNEL]; // Physical Number of channel in stream short secInBlock; // Size of block in sec <=> REC_SIZE_SEC // !!! Reserved !!! unsigned char misc[HEADREC-108]; } Head_rec; Рис. 18. Исходный текст структуры локального заголовка на языке Си Примечание. Порядок байт в целый двухбайтовых и целых четырехбайтовых числах соответствует структуре ЭВМ типа IBM/PC.