Initial commit based on common repo commit ffeb9c9b
This commit is contained in:
131
libs/gempa/caps/mseed/slink.h
Normal file
131
libs/gempa/caps/mseed/slink.h
Normal file
@@ -0,0 +1,131 @@
|
||||
/*****************************************************************************
|
||||
* slink.h
|
||||
*
|
||||
* SeedLink protocol constants
|
||||
*
|
||||
* Token from libslink
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2, or (at your option) any later
|
||||
* version. For more information, see http://www.gnu.org/
|
||||
*
|
||||
* ================
|
||||
* Change log
|
||||
* ===============
|
||||
*
|
||||
* 01.01.2013 Adapted code to CAPS client library requirements (gempa GmbH)
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef CAPS_MSEED_SLINK_H
|
||||
#define CAPS_MSEED_SLINK_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/* Portability to the XScale (ARM) architecture
|
||||
* requires a packed attribute in certain places
|
||||
* but this only works with GCC for now.
|
||||
*/
|
||||
#if defined (__GNUC__)
|
||||
#define SLP_PACKED __attribute__ ((packed))
|
||||
#else
|
||||
#define SLP_PACKED
|
||||
#endif
|
||||
|
||||
#define SIGNATURE "SL" /* SeedLink header signature */
|
||||
#define INFOSIGNATURE "SLINFO" /* SeedLink INFO packet signature */
|
||||
|
||||
|
||||
/* SeedLink packet types */
|
||||
#define SLDATA 0 /* waveform data record */
|
||||
#define SLDET 1 /* detection record */
|
||||
#define SLCAL 2 /* calibration record */
|
||||
#define SLTIM 3 /* timing record */
|
||||
#define SLMSG 4 /* message record */
|
||||
#define SLBLK 5 /* general record */
|
||||
#define SLNUM 6 /* used as the error indicator (same as SLCHA) */
|
||||
#define SLCHA 6 /* for requesting channel info or detectors */
|
||||
#define SLINF 7 /* a non-terminating XML formatted message in a miniSEED
|
||||
log record, used for INFO responses */
|
||||
#define SLINFT 8 /* a terminating XML formatted message in a miniSEED log
|
||||
record, used for INFO responses */
|
||||
#define SLKEEP 9 /* an XML formatted message in a miniSEED log
|
||||
record, used for keepalive/heartbeat responses */
|
||||
|
||||
|
||||
/* SEED binary time (10 bytes) */
|
||||
struct sl_btime_s
|
||||
{
|
||||
uint16_t year;
|
||||
uint16_t day;
|
||||
uint8_t hour;
|
||||
uint8_t min;
|
||||
uint8_t sec;
|
||||
uint8_t unused;
|
||||
uint16_t fract;
|
||||
} SLP_PACKED;
|
||||
|
||||
|
||||
/* Fixed section data of header (48 bytes) */
|
||||
struct sl_fsdh_s
|
||||
{
|
||||
char sequence_number[6];
|
||||
char dhq_indicator;
|
||||
char reserved;
|
||||
char station[5];
|
||||
char location[2];
|
||||
char channel[3];
|
||||
char network[2];
|
||||
struct sl_btime_s start_time;
|
||||
uint16_t num_samples;
|
||||
int16_t samprate_fact;
|
||||
int16_t samprate_mult;
|
||||
uint8_t act_flags;
|
||||
uint8_t io_flags;
|
||||
uint8_t dq_flags;
|
||||
uint8_t num_blockettes;
|
||||
int32_t time_correct;
|
||||
uint16_t begin_data;
|
||||
uint16_t begin_blockette;
|
||||
} SLP_PACKED;
|
||||
|
||||
|
||||
/* 1000 Blockette (8 bytes) */
|
||||
struct sl_blkt_1000_s
|
||||
{
|
||||
uint16_t blkt_type;
|
||||
uint16_t next_blkt;
|
||||
uint8_t encoding;
|
||||
uint8_t word_swap;
|
||||
uint8_t rec_len;
|
||||
uint8_t reserved;
|
||||
} SLP_PACKED;
|
||||
|
||||
/* 1001 Blockette (8 bytes) */
|
||||
struct sl_blkt_1001_s
|
||||
{
|
||||
uint16_t blkt_type;
|
||||
uint16_t next_blkt;
|
||||
int8_t timing_qual;
|
||||
int8_t usec;
|
||||
uint8_t reserved;
|
||||
int8_t frame_cnt;
|
||||
} SLP_PACKED;
|
||||
|
||||
/* Generic struct for head of blockettes */
|
||||
struct sl_blkt_head_s
|
||||
{
|
||||
uint16_t blkt_type;
|
||||
uint16_t next_blkt;
|
||||
} SLP_PACKED;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user