You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

316 lines
16 KiB
C

1 month ago
/* Copyright (c) Colorado School of Mines, 2003.*/
/* All rights reserved. */
/*-----------------------------------------------------------------------
* segd.h - include file for SEGD traces
* Version 2.1, 10/10/94, Marc Schaming
* Version 2.2, 17/08/95, Celine Girard et Marc Schaming
* Version 2.3, 04/1997, Marc Schaming
* Version 2.4, 02/1998, Stewart A. Levin (SEP)
* changed general_header_1.f to unsigned char[2]
* changed non-struct typedefs to struct typedefs
* to allow for uniform future expansion
* Version 2.5, 02/2001, Stewart A. Levin (SEP)
* Little endian fix up for channel_set_header.cs
* and dem_trace_header,tn
*
* declarations for: <EFBFBD>1 <EFBFBD>2
* typedef struct {} segd_tape_label : <EFBFBD><EFBFBD> tape label
* typedef struct {} segd_general_header_1 : general header <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ͬ
* typedef struct {} segd_general_header_2 : general header <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ͬ
* typedef struct {} segd_general_header_n : general header <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ͬ
* typedef struct {} segd_gen_head_sn358 : general header for sn358
* typedef struct {} segd_channel_set_header: channel set descriptor <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>29<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ
* typedef struct {} segd_sample_skew : sample skew block
* typedef struct {} segd_extended_header : extended header
* typedef struct {} segd_external_header : external header
* typedef struct {} segd_general_trailer : general trailer <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ͬ
* typedef struct {} segd_demux_trace_header: Demux trace header <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ͬ
* typedef struct {} segd_trace_header_ext : trace header extension <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ
* typedef struct {} segd_general_trailer : general trailer <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ͬ
*
*
* Reference:
* SEG Subcommitee on Digital Tape Formats, "Digital field tape format standards - SEG-D"
*
* Digital field tape format standards - SEG-D, REVISION 1 (1994) Geophysics, vol. 59, p.668-684
*
* <EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>ʼλ<EFBFBD>ñȰ1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>128<EFBFBD>ֽڵĴŴ<EFBFBD><EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>˸ôŴ<EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD>ʽ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>5~9<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>SD2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>ΪSegD<EFBFBD>2<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>
*
*---------------------------------------------------------------------*/
namespace NSegD
{
//////////////////////////////////////////////////////////////////////
//<2F>汾2<E6B1BE><32><EFBFBD>ӵĴŴ<C4B4>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><E5A3AC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʼ
/*---------------- Tape Label --------------------------------------*/
typedef struct stuSegDTapeLabel{
unsigned char susn[4]; /* 01-04 Storage unit sequence number */
unsigned char rev[5]; /* 05-09 SegD Revision <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪSD2.0<EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ2.0<EFBFBD><EFBFBD>ʽ */
unsigned char sus[6]; /* 10-15 Storage unit structure */
unsigned char ba[4]; /* 16-19 Binding addition */
unsigned char mbs[10]; /* 20-29 Maximum block size */
unsigned char acode[10];/* 30-39 API Producer organization code */
unsigned char cdate[11];/* 40-50 Creation date */
unsigned char sn[12]; /* 51-62 Serial number */
unsigned char res[6]; /* 63-68 Reserved */
//Storage set identifier 60<36><30><EFBFBD>ֽ<EFBFBD>
unsigned char eln[12]; /* 69-80 External Label Name */
unsigned char ren[24]; /* 81-104 Recording Entity Name */
unsigned char ud[14]; /* 105-118 User defined */
unsigned char msr[10]; /* 119-128 Max shot records per field record */
} SEGD_TAPE_LABEL;
//ͷ<>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>ͷ<EFBFBD>Σ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ѡ<EFBFBD><D1A1>
// <20><>չͷ<D5B9>Ρ<EFBFBD><CEA1>ⲿͷ<E2B2BF>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ϊ32<33>ֽ<EFBFBD>
//
//
// -----------------------------------------------------------------------------------
// | | | | | | | |
// | ͨ<><CDA8>ͷ1 | ͨ<><CDA8>ͷ2 | ͨ<><CDA8>ͷ | ͨ<><CDA8> | ͨ<><CDA8> | ͨ<><CDA8> | ... |
// | | | (<28><>ѡ) | <20><><EFBFBD><EFBFBD>1 | <20><><EFBFBD><EFBFBD>2 | <20><><EFBFBD><EFBFBD>3 | |
// -----------------------------------------------------------------------------------
// | 32<33>ֽ<EFBFBD> | 32B | 32 | 32 | 32 | 32 | ... |
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1
// <20>ж<EFBFBD><D0B6><EFBFBD>
/*---------------- General header block #1 -------------------------*/
typedef struct stuSegDGeneralHeader1{
unsigned char f[2]; /* 01-02 File number (0-9999) <20>ļ<EFBFBD><C4BC>ţ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9999<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD><EFBFBD>ɸô<EFBFBD>ΪFFFF<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>2<EFBFBD>ĵ<EFBFBD>1~3<EFBFBD>ֽڴ<EFBFBD> */
unsigned short fc; /* 03-04 Format code <09><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD> */
char k1_k2; /* 05 General constants */
char k3_k4; /* 06 General constants */
char k5_k6; /* 07 General constants */
char k7_k8; /* 08 General constants */
char k9_k10; /* 09 General constants */
char k11_k12; /* 10 General constants */
unsigned char year; /* 11 Year (0-99) */
unsigned char gh_day1;/* 12 Number blocks in general header ͷ<>ο<EFBFBD><CEBF>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>*/
/* 12 - day of year (x--) */
unsigned char day; /* 13 Day of year (xx) */
unsigned char hour; /* 14 Hour of day */
unsigned char minute; /* 15 Minute of hour */
unsigned char second; /* 16 Second of minute */
unsigned char m[3]; /* 17 Manufacturer's code <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>*/
/* 18-19 and serial number */
unsigned char b[3]; /* 20-22 Bytes per scan (multiplexed only) ÿ<><C3BF>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʱ*/
unsigned char i; /* 23 Base scan interval <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
unsigned char p_sbx; /* 24 Polarity */
/* 24 - Number of scans per block */
unsigned char sb; /* 25 Number of scans per block */
unsigned char z_r1; /* 26 Record type */
/* 26 - Record length <09><>¼<EFBFBD><C2BC><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>2<EFBFBD>е<EFBFBD>15~17<31>ֽ<EFBFBD>*/
unsigned char r; /* 27 Record length */
unsigned char str; /* 28 Scan types per record ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD> */
unsigned char cs; /* 29 Channels sets per scan type ÿ<><C3BF>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ΧΪ0~99<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>99ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>5<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>*/
unsigned char sk; /* 30 Sample Skew blocks <09><><EFBFBD><EFBFBD>ʱƫͷ<C6AB>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1>ʾû<CABE><C3BB>*/
unsigned char ec; /* 31 Extended header length <09><>չͷ<D5B9>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ΧΪ0~99<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>99<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFF<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>2<EFBFBD>ĵ<EFBFBD>6<EFBFBD><EFBFBD>7<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD> */
unsigned char ex; /* 32 External header length <09>ⲿͷ<E2B2BF><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>Χ0~99<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>9<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>*/
} SEGD_GENERAL_HEADER_1;
/*---------------- General header block #2 -------------------------*/
typedef struct stuSegDGeneralHeader2{
unsigned char ef[3]; /* 01-03 Extended file number */
unsigned char en[2]; /* 04-05 Extended channel sets and scan types */
unsigned char ecx[2]; /* 06-07 Extended header blocks <20><>չͷ<D5B9><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չͷ<D5B9><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>99ʱ<39><CAB1>ʹ<EFBFBD><CAB9>*/
unsigned char eh[2]; /* 08-09 external header blocks <20>ⲿͷ<E2B2BF><CDB7><EFBFBD><EFBFBD> */
char x1; /* 10 undefined */
unsigned char rev[2]; /* 11-12 SEG-D revision number */
unsigned short gt; /* 13-14 General trailer number */
unsigned char erl[3]; /* 15-17 Extended record length <20><>չ<EFBFBD><D5B9>¼<EFBFBD><C2BC><EFBFBD><EFBFBD> */
char x2; /* 18 undefined */
unsigned char bn; /* 19 General header block number ͨ<><CDA8>ͷ<EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD>*/
char x3[13]; /* 20-32 undefined */
} SEGD_GENERAL_HEADER_2;
/*---------------- General header block #n -------------------------*/
typedef struct stuSegDGeneralHeaderN{
char x1[3]; /* 01-03 undefined */
unsigned char sln[5]; /* 04-08 Source line number<65><72>4-5Ϊ<35><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>7-8ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
unsigned char spn[5]; /* 09-13 Source point number<65><72>9-11Ϊ<31><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>12-13ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
unsigned char spi; /* 14 Source point index */
unsigned char pc; /* 15 Phase control */
unsigned char v; /* 16 Type vibrator */
short pa; /* 17-18 Phase angle */
unsigned char bn; /* 19 General header block number */
unsigned char ss; /* 20 Source set number */
char x2[12]; /* 21-32 undefined */
} SEGD_GENERAL_HEADER_N;
/*---------------- General header extension (Sercel SN358) ---------*/
typedef struct stuSegDGeneralHeaderSN358{
unsigned char fc1; /* 01 first and last channel of seismic param 1 */
unsigned char lc1; /* 01-02 last channel of seismic param 1 */
unsigned char fc2; /* 03-04 first channel of seismic param 2 */
unsigned char f_lc2; /* 03-04 first and last channel of seismic param 2 */
unsigned char lc2; /* 04-05 last channel of seismic param 2 */
unsigned char fc3; /* 06-07 first channel of seismic param 3 */
unsigned char f_lc3; /* 07 fist and last channel of seismic param 3 */
unsigned char lc3; /* 07-08 last channel of seismic param 3 */
unsigned char fc4; /* 09-10 first channel of seismic param 4 */
unsigned char f_lc4; /* 10 first and last channel of seismic param 4 */
unsigned char lc4; /* 10-11 fist channel of seismic param 4 */
unsigned char f_lac1; /* 12 first and last aux channel of scan type 1 */
unsigned char fsc1; /* 13-14 first seismic channel of scan type 1 */
unsigned char f_lsc1; /* 14 first and last seismic channel of scan type 1 */
unsigned char lsc1; /* 14-15 last seismic channel of scan type 1 */
unsigned char sam_int1; /* 16 sample interval of scan type 1 */
unsigned char fac2; /* 17 first and last aux channel of scan type 2 */
unsigned char fsc2; /* 18-19 first seismic channel of scan type 2 */
unsigned char f_lsc2; /* 19 first and last seismic channel of scan type 2 */
unsigned char lsc2; /* 19-20 last seismic channel of scan type 2 */
unsigned char sam_int2; /* 21 sample interval of scan type 2 */
unsigned char bl_sig_le; /* 22 block signature length (n*0.1 s) */
unsigned char rec_length[2]; /* 23-24 record length n*0.1 s (00.0-99.9) s */
unsigned char dyn_swit_del[2]; /* 25-26 dynamically switching delay (00.0-99.9 s) */
unsigned char rec_del[2]; /* 27-28 recording delay (00.0-99.9s) */
unsigned char ty_a_cha12; /* 29 type of auxiliary channel 1, channel 2 */
unsigned char ty_a_cha34; /* 30 type of auxiliary channel 3, channel 4 */
unsigned char ty_a_cha56; /* 31 type of auxiliary channel 5, channel 6 */
unsigned char ty_a_cha78; /* 32 type of auxiliary channel 7, channel 8 */
unsigned char mode_num; /* 33 mode number */
unsigned char an_sys_co; /* 34 analog sys count (1-2), tape transport num */
unsigned char reel_num[2]; /* 35-36 reel number (0-9999) */
unsigned char file_num[2]; /* 37-38 file logical number */
unsigned char sp_num[2]; /* 39-40 shot point number */
unsigned char lc_nf; /* 41 lc=0 lowcut fi. out, nf=0 notch fi. out */
unsigned char fg_ic; /* 42 fg=1 fist fixed gain, ic=1 internal osc. */
unsigned char of1; /* 43-45 oscillator frequency (0-9999.9 Hz) */
unsigned char of2; /* 43-45 oscillator frequency (0-9999.9 Hz) */
unsigned char of3; /* 43-45 oscillator frequency (0-9999.9 Hz) */
unsigned char osc_att; /* 46 oscillator attenuator */
unsigned char t_sig_ph; /* 47 test signal phase (1:+,0:-) */
unsigned char m_gain; /* 48 main gain amplifier (0-15) 16: IFP */
unsigned char dum[16]; /* 49-64 additional information */
} SEGD_GEN_HEAD_SN358;
/*---------------- Scan type header (Channel set descriptor ) ------*/
typedef struct stdSegDChannelSetHeader{
unsigned char st; /* 01 Scan type ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
unsigned char cn; /* 02 Channel set number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
unsigned short tf; /* 03-04 Channel set start time <20><>ʼʱ<CABC><CAB1>*/
unsigned short te; /* 05-06 Channel set end time <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>*/
unsigned char mp[2]; /* 07-08 Descaling exponent <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
unsigned char cs[2]; /* 09-10 Channels in this channel set <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>*/
unsigned char c; /* 11 Channel type identification */
unsigned char sc_j; /* 12 Sample/channel gain <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/* 12 - Gain control method <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>ʽ*/
unsigned short af; /* 13-14 Alias filter frequency ȥ<><C8A5>Ƶ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>ֹƵ<D6B9><C6B5>*/
unsigned short as; /* 15-16 Alias filter slope ȥ<><C8A5>Ƶ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
unsigned short lc; /* 17-18 Low cut filter frequency <20><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>ֹƵ<D6B9><C6B5>*/
unsigned short ls; /* 19-20 Low cut filter slope <20><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
unsigned short nt[3]; /* 21-26 Notch filter frequency <20>ݲ<EFBFBD><DDB2>˲<EFBFBD><CBB2><EFBFBD>Ƶ<EFBFBD><C6B5>*/
unsigned short ecs; /* 27-28 Extended channel set number <20><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
unsigned char efh; /* 29 Extended header flag <20>ڰ汾2<E6B1BE><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ*/
unsigned char vs; /* 30 Vertical stack */
unsigned char cab; /* 31 Streamer number */
unsigned char ary; /* 32 Array forming */
} SEGD_CHANNEL_SET_HEADER;
/*---------------- Sample skew <20><><EFBFBD><EFBFBD>ʱƫ-------------------------------------*/
//<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>β<EFBFBD><CEB2><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>һ<EFBFBD><D2BB>ɨ<EFBFBD>ʼʱ<CABC>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD>֣<EFBFBD><D6A3><EFBFBD>ƫ<EFBFBD><C6AB>
typedef struct stuSegDSampleSkew {
unsigned char skew[32];
} SEGD_SAMPLE_SKEW;
/*---------------- Extended header <20><>չͷ---------------------------------*/
typedef struct stuSegDExtendedHeader {
unsigned char dummy[32];
} SEGD_EXTENDED_HEADER;
/*---------------- External header <20>ⲿͷ---------------------------------*/
typedef struct stuSegDExternalHeader {
unsigned char dummy[32];
} SEGD_EXTERNAL_HEADER;
//
// -----------------------------------------------------------------------------------
// | | | | | | | | |
// | <20><>ͷ | <20><>ͷ | <20><>ͷ | <20><>ͷ | <20><>ͷ | <20><>ͷ | ... | <20><><EFBFBD>ݵ<EFBFBD> |
// | | <20><>չ1 | <20><>չ2 | <20><>չ3 | <20><>չ4 | <20><>չ5 | | |
// -----------------------------------------------------------------------------------
// | 20<32>ֽ<EFBFBD> | 32B | 32 | 32 | 32 | 32 | ... | |
//
/*--------------- Demux trace header <20><>ͷ------------------------------*/
typedef struct stuSegDDemuxTraceHeader {
unsigned char f[2]; /* 01-02 file number <09>ļ<EFBFBD><C4BC><EFBFBD> */
unsigned char st; /* 03 scan type (1-2) ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
unsigned char cn; /* 04 channel set <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
unsigned char tn[2]; /* 05-06 trace number <09><><EFBFBD><EFBFBD> */
unsigned char t[3]; /* 07-09 timing word of the first sample if
the data were written in the multiplexed format */
unsigned char the; /* 10 trace header extensions <20><>չ<EFBFBD><D5B9>ͷ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD> */
unsigned char ss; /* 11 sample skew of the first sample
of the trace. It is a part of
the fractional part of the base scan interval.
Res :1/256 scan interval */
unsigned char tr; /* 12 trace edit */
unsigned char tw[3]; /* 13-15 time from time break to the end of
the internal time break window (binary
number, inc 1ms) */
unsigned char en[2]; /* 16-17 extended channel set number */
unsigned char efn[3]; /* 18-20 extended file number */
} SEGD_DEMUX_TRACE_HEADER;
/*---------------- Trace header extension <20><>ͷ<EFBFBD><CDB7>չ--------------------------*/
typedef struct stuSegDTraceHeaderExtension {
unsigned char rln[3]; /* 01-03 Receiver line number <09><><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD> */
unsigned char rpn[3]; /* 04-06 Receiver point number <09><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD> */
unsigned char rpi; /* 07 Receiver point index <09><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD> */
unsigned char nbs[3]; /* 08-10 Number of samples per traces ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
//<2F><>Rev1<76><31>11-32û<32>ж<EFBFBD><D0B6><EFBFBD>
//char x[22]; /* 11-32 undefined */
//<2F><>Rev2<76>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>
unsigned char erln[5]; /* 11-15 Extended Receiver Line Number */
unsigned char erpn[5]; /* 16-20 Extended Receiver Point Number */
unsigned char sen; /* Sensor Type recorded on this trace */
char x[11]; /* 22-32 undefined */
} SEGD_TRACE_HEADER_EXT;
/*---------------- General trailer ---------------------------------*/
typedef struct stuSegDGeneralTrailer {
unsigned short gt; /* 01-02 General trailer number */
char x1[8]; /* 03-10 undefined */
unsigned char c; /* 11 Channel type identification */
char x2[21]; /* 12-32 undefined */
} SEGD_GENERAL_TRAILER;
}//namespace
using namespace NSegD;