Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libmseed for openSUSE:Factory checked in at 2026-04-05 18:24:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libmseed (Old) and /work/SRC/openSUSE:Factory/.libmseed.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmseed" Sun Apr 5 18:24:28 2026 rev:14 rq:1344636 version:3.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libmseed/libmseed.changes 2026-03-30 18:35:15.264979421 +0200 +++ /work/SRC/openSUSE:Factory/.libmseed.new.21863/libmseed.changes 2026-04-05 18:25:20.972854841 +0200 @@ -1,0 +2,6 @@ +Sun Apr 5 08:26:50 UTC 2026 - Andreas Stieger <[email protected]> + +- update to 3.4.0: + * Support writing header-only records + +------------------------------------------------------------------- Old: ---- libmseed-3.3.0.tar.gz New: ---- libmseed-3.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmseed.spec ++++++ --- /var/tmp/diff_new_pack.Q5l0hu/_old 2026-04-05 18:25:21.456874701 +0200 +++ /var/tmp/diff_new_pack.Q5l0hu/_new 2026-04-05 18:25:21.456874701 +0200 @@ -18,7 +18,7 @@ %define sover 3 Name: libmseed -Version: 3.3.0 +Version: 3.4.0 Release: 0 Summary: MiniSEED data format library License: Apache-2.0 ++++++ libmseed-3.3.0.tar.gz -> libmseed-3.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/ChangeLog new/libmseed-3.4.0/ChangeLog --- old/libmseed-3.3.0/ChangeLog 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/ChangeLog 2026-04-04 23:24:41.000000000 +0200 @@ -1,3 +1,6 @@ +2026.094: v3.4.0 + - Support writing header-only records and add tests for header-only records. + 2026.088: v3.3.0 - Add `ms3_msfp_init()` to initialized MS3FileParam with start/end offsets. - Avoid closing I/O streams not opened by the library when reading or diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/fileutils.c new/libmseed-3.4.0/fileutils.c --- old/libmseed-3.3.0/fileutils.c 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/fileutils.c 2026-04-04 23:24:41.000000000 +0200 @@ -958,6 +958,9 @@ * existing file. In either case, new files will be created if they * do not yet exist. * + * To write a header-only record with no data payload (i.e., no samples), set + * @ref MS3Record.numsamples to 0. + * * @param[in,out] msr ::MS3Record containing data to write * @param[in] mspath File for output records * @param[in] overwrite Flag to control overwriting versus appending diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/libmseed.h new/libmseed-3.4.0/libmseed.h --- old/libmseed-3.3.0/libmseed.h 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/libmseed.h 2026-04-04 23:24:41.000000000 +0200 @@ -29,8 +29,8 @@ { #endif -#define LIBMSEED_VERSION "3.3.0" //!< Library version -#define LIBMSEED_RELEASE "2026.088" //!< Library release date +#define LIBMSEED_VERSION "3.4.0" //!< Library version +#define LIBMSEED_RELEASE "2026.094" //!< Library release date /** @defgroup io-functions File and URL I/O */ /** @defgroup miniseed-record Record Handling */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/pack.c new/libmseed-3.4.0/pack.c --- old/libmseed-3.3.0/pack.c 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/pack.c 2026-04-04 23:24:41.000000000 +0200 @@ -87,6 +87,9 @@ * The defaults are triggered when @p msr.reclen and @p msr.encoding * are set to -1. * + * To create a header-only record with no data payload (i.e., no samples), set + * @ref MS3Record.numsamples to 0. + * * @param[in] msr ::MS3Record containing data to pack * @param[in] record_handler() Callback function called for each record * @param[in] handlerdata A pointer that will be provided to the @p record_handler() @@ -153,6 +156,9 @@ * Create and initialize an opaque ::MS3RecordPacker context for generating * miniSEED records one at a time from an ::MS3Record. * + * To create a header-only record with no data payload (i.e., no samples), set + * @ref MS3Record.numsamples to 0. + * * The packer should be freed with msr3_pack_free() when done. * * @param[in] msr ::MS3Record containing data to pack @@ -246,7 +252,7 @@ memset (packer->rawrec, 0, packer->maxreclen); - /* For records with samples, set up encoding buffers and parameters */ + /* For records with samples, validate sample type before packing */ if (msr->numsamples > 0) { packer->samplesize = ms_samplesize (msr->sampletype); @@ -257,39 +263,43 @@ libmseed_memory.free (packer); return NULL; } + } - /* Pack header to determine data offset */ - if (packer->formatversion == 3) - { - packer->dataoffset = msr3_pack_header3 (msr, packer->rawrec, packer->maxreclen, verbose); - } - else - { - packer->dataoffset = msr3_pack_header2_offsets (msr, packer->rawrec, packer->maxreclen, - &packer->blockette_1000_offset, - &packer->blockette_1001_offset, verbose); + /* Pack header (required for header-only and data-containing records) */ + if (packer->formatversion == 3) + { + packer->dataoffset = msr3_pack_header3 (msr, packer->rawrec, packer->maxreclen, verbose); + } + else + { + packer->dataoffset = msr3_pack_header2_offsets (msr, packer->rawrec, packer->maxreclen, + &packer->blockette_1000_offset, + &packer->blockette_1001_offset, verbose); - if (packer->dataoffset > 0) + if (packer->dataoffset > 0 && msr->numsamples > 0) + { + /* For Steim encodings, align data offset to 64-byte boundary */ + if (packer->encoding == DE_STEIM1 || packer->encoding == DE_STEIM2) { - /* For Steim encodings, align data offset to 64-byte boundary */ - if (packer->encoding == DE_STEIM1 || packer->encoding == DE_STEIM2) - { - packer->dataoffset = ((packer->dataoffset + 63) / 64) * 64; - } - - /* Set data offset in header */ - *pMS2FSDH_DATAOFFSET (packer->rawrec) = HO2u (packer->dataoffset, packer->swapflag); + packer->dataoffset = ((packer->dataoffset + 63) / 64) * 64; } - } - if (packer->dataoffset < 0) - { - ms_log (2, "%s: Cannot pack miniSEED header\n", msr->sid); - libmseed_memory.free (packer->rawrec); - libmseed_memory.free (packer); - return NULL; + /* Set data offset in header */ + *pMS2FSDH_DATAOFFSET (packer->rawrec) = HO2u (packer->dataoffset, packer->swapflag); } + } + + if (packer->dataoffset < 0) + { + ms_log (2, "%s: Cannot pack miniSEED header\n", msr->sid); + libmseed_memory.free (packer->rawrec); + libmseed_memory.free (packer); + return NULL; + } + /* For records with samples, set up encoding buffers and parameters */ + if (msr->numsamples > 0) + { /* Determine the max data bytes and sample count */ packer->maxdatabytes = packer->maxreclen - packer->dataoffset; @@ -383,6 +393,9 @@ /* Set encoding to text (value of 0) for consistency */ *pMS3FSDH_ENCODING (packer->rawrec) = DE_TEXT; + *pMS3FSDH_NUMSAMPLES (packer->rawrec) = HO4u (0, packer->swapflag); + *pMS3FSDH_DATALENGTH (packer->rawrec) = HO4u (0, packer->swapflag); + /* Calculate CRC and set */ memset (pMS3FSDH_CRC (packer->rawrec), 0, sizeof (uint32_t)); crc = ms_crc32c ((const uint8_t *)packer->rawrec, packer->dataoffset, 0); @@ -403,6 +416,11 @@ *pMS2B1000_ENCODING (packer->rawrec + packer->blockette_1000_offset) = DE_TEXT; } + /* Data segment is not used; clear it */ + if (packer->dataoffset > 0 && (uint32_t)packer->dataoffset < packer->maxreclen) + memset (packer->rawrec + packer->dataoffset, 0, + (size_t)(packer->maxreclen - (uint32_t)packer->dataoffset)); + if (packer->verbose >= 1) ms_log (0, "%s: Packed %u byte record with no payload\n", packer->msr->sid, packer->maxreclen); Binary files old/libmseed-3.3.0/test/data/reference-testdata-headeronly.mseed2 and new/libmseed-3.4.0/test/data/reference-testdata-headeronly.mseed2 differ Binary files old/libmseed-3.3.0/test/data/reference-testdata-headeronly.mseed3 and new/libmseed-3.4.0/test/data/reference-testdata-headeronly.mseed3 differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/test/test-read.c new/libmseed-3.4.0/test/test-read.c --- old/libmseed-3.3.0/test/test-read.c 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/test/test-read.c 2026-04-04 23:24:41.000000000 +0200 @@ -119,6 +119,51 @@ ms3_readmsr(&msr, NULL, flags, 0); } +TEST (read, headeronly_v2) +{ + MS3Record *msr = NULL; + uint32_t flags = 0; + int rv; + + rv = ms3_readmsr (&msr, "data/reference-testdata-headeronly.mseed2", flags, 0); + + // DEBUG + msr3_print (msr, 1); + + CHECK (rv == MS_NOERROR, "ms3_readmsr() did not return expected MS_NOERROR"); + REQUIRE (msr != NULL, "ms3_readmsr() did not populate 'msr'"); + REQUIRE (msr->datasamples == NULL, "ms3_readmsr() did not populate 'msr->datasamples'"); + CHECK (msr->numsamples == 0, "ms3_readmsr() returned unexpected value for 'msr->numsamples'"); + CHECK (msr->sampletype == 0, "ms3_readmsr() returned unexpected value for 'msr->sampletype'"); + CHECK (msr->datasize == 0, "ms3_readmsr() returned unexpected value for 'msr->datasize'"); + CHECK (msr->datalength == 0, "ms3_readmsr() returned unexpected value for 'msr->datalength'"); + CHECK (msr->extralength == 569, "ms3_readmsr() returned unexpected value for 'msr->extralength'"); + CHECK (msr->crc == 0, "ms3_readmsr() returned unexpected value for 'msr->crc'"); + + ms3_readmsr (&msr, NULL, flags, 0); +} + +TEST (read, headeronly_v3) +{ + MS3Record *msr = NULL; + uint32_t flags = 0; + int rv; + + rv = ms3_readmsr (&msr, "data/reference-testdata-headeronly.mseed3", flags, 0); + + CHECK (rv == MS_NOERROR, "ms3_readmsr() did not return expected MS_NOERROR"); + REQUIRE (msr != NULL, "ms3_readmsr() did not populate 'msr'"); + REQUIRE (msr->datasamples == NULL, "ms3_readmsr() did not populate 'msr->datasamples'"); + CHECK (msr->numsamples == 0, "ms3_readmsr() returned unexpected value for 'msr->numsamples'"); + CHECK (msr->sampletype == 0, "ms3_readmsr() returned unexpected value for 'msr->sampletype'"); + CHECK (msr->datasize == 0, "ms3_readmsr() returned unexpected value for 'msr->datasize'"); + CHECK (msr->datalength == 0, "ms3_readmsr() returned unexpected value for 'msr->datalength'"); + CHECK (msr->extralength == 730, "ms3_readmsr() returned unexpected value for 'msr->extralength'"); + CHECK (msr->crc == 0xC22273A9, "ms3_readmsr() returned unexpected value for 'msr->crc'"); + + ms3_readmsr (&msr, NULL, flags, 0); +} + TEST (read, v3_encodings) { MS3Record *msr = NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/test/test-tracelist.c new/libmseed-3.4.0/test/test-tracelist.c --- old/libmseed-3.3.0/test/test-tracelist.c 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/test/test-tracelist.c 2026-04-04 23:24:41.000000000 +0200 @@ -218,7 +218,7 @@ char *path = "data/testdata-oneseries-mixedlengths-mixedorder.mseed2"; - timeval = time(NULL); + timeval = time (NULL); /* Set bit flag to set segment prvtptr to nstime_t value of update time */ flags = MSF_PPUPDATETIME; @@ -239,7 +239,8 @@ /* Check that update time is within 10 seconds of system time */ difference = *(nstime_t *)id->first->prvtptr - (nstime_t)timeval * NSTMODULUS; - CHECK (difference < 10 * NSTMODULUS, "update time at id->first->prvtptr is not within 10 seconds of system time"); + CHECK (difference < (nstime_t)10 * (nstime_t)NSTMODULUS, + "update time at id->first->prvtptr is not within 10 seconds of system time"); mstl3_free (&mstl, 1); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/test/test-write.c new/libmseed-3.4.0/test/test-write.c --- old/libmseed-3.3.0/test/test-write.c 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/test/test-write.c 2026-04-04 23:24:41.000000000 +0200 @@ -14,6 +14,7 @@ #define TESTFILE_STEIM1_V2 "testdata-steim1.mseed2" #define TESTFILE_STEIM2_V2 "testdata-steim2.mseed2" #define TESTFILE_DEFAULTS_V2 "testdata-defaults.mseed2" +#define TESTFILE_HEADERONLY_V2 "testdata-headeronly.mseed2" #define TESTFILE_NSEC_V2 "testdata-nsec.mseed2" #define TESTFILE_OLDEN_V2 "testdata-olden.mseed2" #define TESTFILE_ODDRATE_V2 "testdata-oddrate.mseed2" @@ -28,6 +29,7 @@ #define TESTFILE_STEIM1_V3 "testdata-steim1.mseed3" #define TESTFILE_STEIM2_V3 "testdata-steim2.mseed3" #define TESTFILE_DEFAULTS_V3 "testdata-defaults.mseed3" +#define TESTFILE_HEADERONLY_V3 "testdata-headeronly.mseed3" #define TESTFILE_NSEC_V3 "testdata-nsec.mseed3" #define TESTFILE_OLDEN_V3 "testdata-olden.mseed3" #define TESTFILE_ODDRATE_V3 "testdata-oddrate.mseed3" @@ -250,6 +252,78 @@ msr3_free (&msr); } +/* Test packing v2 miniSEED records with only the header and no data. */ +TEST (write, msr3_writemseed_headeronly_v2) +{ + MS3Record *msr = NULL; + uint32_t flags = MSF_PACKVER2; /* write v2 format */ + int rv; + + msr = msr3_init (msr); + REQUIRE (msr != NULL, "msr3_init() returned unexpected NULL"); + + /* Set up record parameters */ + msr->reclen = 4096; + msr->pubversion = 1; + msr->starttime = ms_timestr2nstime ("2012-05-12T00:00:00"); + + strcpy (msr->sid, "FDSN:XX_TEST__S_O_H"); + msr->samprate = 0; + msr->pubversion = 1; + + msr->extra = soh_json_headers; + msr->extralength = strlen (msr->extra); + + msr->samplecnt = 0; + msr->numsamples = 0; + msr->datasamples = NULL; + + rv = msr3_writemseed (msr, TESTFILE_HEADERONLY_V2, 1, flags, 0); + REQUIRE (rv > 0, "msr3_writemseed() return unexpected value"); + CHECK (!cmpfiles (TESTFILE_HEADERONLY_V2, "data/reference-" TESTFILE_HEADERONLY_V2), + "Header only write mismatch"); + + msr->extra = NULL; + msr->extralength = 0; + msr3_free (&msr); +} + +/* Test packing v3 miniSEED records with only the header and no data. */ +TEST (write, msr3_writemseed_headeronly_v3) +{ + MS3Record *msr = NULL; + uint32_t flags = 0; + int rv; + + msr = msr3_init (msr); + REQUIRE (msr != NULL, "msr3_init() returned unexpected NULL"); + + /* Set up record parameters */ + msr->reclen = 4096; + msr->pubversion = 1; + msr->starttime = ms_timestr2nstime ("2012-05-12T00:00:00"); + + strcpy (msr->sid, "FDSN:XX_TEST__S_O_H"); + msr->samprate = 0; + msr->pubversion = 1; + + msr->extra = soh_json_headers; + msr->extralength = strlen (msr->extra); + + msr->samplecnt = 0; + msr->numsamples = 0; + msr->datasamples = NULL; + + rv = msr3_writemseed (msr, TESTFILE_HEADERONLY_V3, 1, flags, 0); + REQUIRE (rv > 0, "msr3_writemseed() return unexpected value"); + CHECK (!cmpfiles (TESTFILE_HEADERONLY_V3, "data/reference-" TESTFILE_HEADERONLY_V3), + "Header only write mismatch"); + + msr->extra = NULL; + msr->extralength = 0; + msr3_free (&msr); +} + /* Test writing miniSEED records to a file with nanosecond time resolution for * both the data sample payload and a timing exception and verifies the output * against reference files for both v2 and v3 miniSEED formats. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmseed-3.3.0/test/testdata.h new/libmseed-3.4.0/test/testdata.h --- old/libmseed-3.3.0/test/testdata.h 2026-03-29 21:55:41.000000000 +0200 +++ new/libmseed-3.4.0/test/testdata.h 2026-04-04 23:24:41.000000000 +0200 @@ -9,97 +9,158 @@ * Values 1 through up to 220 do not require more than 16-bits. ***************************************************************************/ #define SINE_DATA_SAMPLES 500 -static double dsinedata[SINE_DATA_SAMPLES] = - {0.000000,6.109208,10.246826,10.609957,6.764728,-0.075704,-7.409461,-12.346208, - -12.731430,-8.062958,0.182060,8.985442,14.875067,15.276420,9.609196,-0.328370, - -10.895428,-17.921131,-18.329336,-11.450576,0.526448,13.209973,21.590023,21.991385, - 13.643140,-0.791247,-16.014492,-26.008907,-26.383901,-16.253504,1.141655,19.412378, - 31.330871,31.652348,19.360848,-1.601465,-23.528777,-37.740204,-37.971107,-23.059260, - 2.200591,28.515156,45.458753,45.549217,27.460529,-2.976569,-34.554817,-54.753559, - -54.637244,-32.697448,3.976416,41.869576,65.946052,65.535525,38.927729,-5.258928, - -50.727832,-79.423116,-78.604029,-46.338644,6.897516,61.454325,95.650397,94.274177, - 55.152523,-8.983716,-74.441929,-115.188314,-113.063003,-65.633259,11.631511, - 90.165916,138.711322,135.590105,78.094013,-14.982665,-109.201193,-167.031082, - -162.597954,-92.906331,19.213290,132.243134,201.124338,194.976222,110.510935, - -24.541940,-160.132765,-242.166440,-233.790899,-131.430478,31.239561,193.887193, - 291.571675,280.319178,156.284630,-39.641741,-234.736391,-351.041770,-336.091216, - -185.807912,50.163757,284.167632,422.624233,402.940140,220.870763,-63.319072, - -343.979194,-508.782510,-483.061913,-262.504429,79.742042,416.345244,612.480366, - 579.087014,311.930343,-100.215795,-503.894220,-737.283353,-694.166245,-370.594813, - 125.706429,609.803540,887.480834,832.073438,440.209940,-157.404955,-737.913996, - -1068.232708,-997.328409,-522.801872,196.778712,892.867950,1285.745847,1195.344115, - 620.767701,-245.634371,-1080.276240,-1547.486227,-1432.602775,-736.942489, - 306.195102,1306.919790,1862.433994,1716.866654,874.678227,-381.195062,-1580.993078, - -2241.390126,-2057.430298,-1037.936774,473.995052,1912.398180,2697.345105,2465.422369, - 1231.399220,-588.724017,-2313.099844,-3245.922143,-2954.166800,-1460.594493, - 730.452133,2797.554253,3905.910007,3539.614901,1732.050527,-905.402443,-3383.226729, - -4699.903513,-4240.862333,-2053.471832,1121.209554,4091.216806,5655.073452, - 5080.767553,2433.947965,-1387.235765,-4947.012887,-6804.092030,-6086.691631, - -2884.198121,1714.957253,5981.403297,8186.245216,7291.383170,3416.857907,-2118.435721, - -7231.576094,-9848.769674,-8734.036728,-4046.815355,2614.894255,8742.446660, - 11848.459577,10461.558685,4791.604321,-3225.420222,-10568.260176,-14253.597692, - -12530.081077,-5671.864737,3975.823020,12774.525771,17146.276092,15006.771888, - 6711.880612,-4897.680529,-15440.350897,-20625.184991,-17971.999652,-7940.208402, - 6029.615451,18661.258563,24808.964001,21521.921578,9390.410233,-7418.851697, - -22552.587165,-29840.229074,-25771.577789,-11101.908663,9123.111793,27253.593143, - 35890.411153,30858.590420,13120.982075,-11212.929535,-32932.401520,-43165.569941, - -36947.585456,-15501.922592,13774.468128,39791.979238,51913.378983,44235.478131, - 18308.381438,-16912.953578,-48077.342225,-62431.517747,-52957.790070,-21614.930138, - 20756.856764,58084.250586,75077.753677,63396.198979,25508.869716,-25462.986446, - -70169.698634,-90282.054065,-75887.560674,-30092.324242,31222.690356,84764.569627, - 108561.135815,90834.689747,35484.659605,-38269.404043,-102388.901147,-130535.943080, - -108719.240618,-41825.273267,46887.838631,123670.298781,156952.641109,130117.096987, - 49276.805933,-57425.161274,-149366.146307,-188707.832667,-155716.756615,-58028.831480, - 70304.598043,180390.393831,226878.845103,186341.292651,68302.086980,-86041.981200, - -217845.865904,-272760.106197,-222974.585037,-80353.310040,105265.874749, - 263063.225186,327906.831053,266792.649626,94480.755768,-128742.047924,-317647.960457, - -394187.487304,-319201.052420,-111030.470003,157403.231090,383537.048821, - 473846.799900,381879.586964,130403.398591,-192385.288422,-463067.280664, - -569581.409624,-456835.620147,-153063.413757,235071.184227,559057.643966, - 684630.722900,546467.782541,179546.337116,-287144.413901,-674908.656359,-822885.998573, - -653642.002301,-210470.033463,350653.927224,814722.125712,989021.327043,781782.266485, - 246545.638548,-428093.004245,-983445.533844,-1188650.888674,-934978.952245, - -288589.965744,522495.068481,1187046.097893,1428517.756157,1118118.116795, - 337539.108116,-637550.058001,-1432720.599829,-1716720.558561,-1337035.786123, - -394463.210730,777745.745791,1729148.322568,2062985.588205,1598702.057951, - 460582.328770,-948539.335064,-2086795.934450,-2478993.447111,-1911440.758239, - -537283.204837,1156565.787585,2518284.974613,2978771.147961,2285191.490698, - 626136.686773,-1409890.715316,-3038834.772892,-3579162.765425,-2731822.228828, - -728915.356799,1718317.328563,3666796.264850,4300394.349825,3265502.159830, - 847610.742696,-2093758.948552,-4424295.326464,-5166751.952850,-3903146.346575, - -984449.218292,2550691.033230,5338008.063395,6207395.378498,4664945.984099, - 1141905.356234,-3106699.622013,-6440095.078674,-7457334.785992,-5575000.657492, - -1322711.048944,3783146.686785,7769327.268660,8958602.684417,6662072.138144, - 1529858.136359,-4605977.214406,-9372442.351616,-10761660.350202,-7960482.979376, - -1766591.537123,5606698.099533,11305779.346088,12927085.482769,9511187.602536, - 2036388.930375,-6823565.288237,-13637247.864482,-15527597.247686,-11363048.833756, - -2342921.824577,8303023.316062,16448700.704063,18650486.048610,13574359.117581, - 2689991.311114,-10101450.710498,-19838792.204081,-22400528.788313,-16214653.084049, - -3081429.850680,12287276.018778,23926421.676653,26903486.467518,19366867.002831, - 3520957.976311,-14943542.889821,-28854881.491245,-32310300.258257,-23129911.185536, - -4011981.690190,18171019.183242,34796853.797034,38802125.311214,27621733.908111, - 4557312.422997,-22091965.102165,-41960429.245394,-46596369.274924,-32982970.290335, - -5158786.517383,26854699.579994,50596356.438136,55953935.730766,39381287.228525, - 5816755.047390,-32639133.476996,-61006773.393892,-67187912.573574,-47016556.451947, - -6529407.091211,39663473.627686,73555723.560159,80673993.102082,56127012.680548, - 7291879.963058,-48192344.715084,-88681820.564997,-96862974.793882,-66996583.433046, - -8095097.920129,58546627.892657,106913500.120816,116295749.303753,79963612.136585, - 8924265.924556,-71115377.915425,-128887386.814358,-139621279.391140, - -95431237.847443,-9756926.457174,86370256.557591,155370411.011265,167618156.945886, - 113879744.320966,10560464.285645,-104883012.041142,-187286440.462195, - -201220454.267134,-135881249.803956,-11288915.420918,127346645.407973, - 225748346.861610,241548722.121826,162117178.463787,11878900.943144, - -154601039.263161,-272096614.921471,-289947157.492990,-193399036.824020, - -12244462.331299,187663986.962885,327945826.905572,348028166.863781, - 230693116.321629,12270520.408649,-227768756.995135,-395240626.753420, - -417725794.004062,-275149858.943091,-11804612.586023,276409565.108355, - 476323094.198962,501359772.474058,328138760.150134,10646479.758475, - -335396614.264246,-574013851.836865,-601712311.942546,-391289845.886545, - -8534971.317913,406922710.094078,691709700.348455,722120145.317499, - 466542952.987464,5131609.783276,-493643879.751773,-833501145.234545, - -866584864.231526,-556206270.243475,0.00000}; +static double dsinedata[SINE_DATA_SAMPLES] = { + 0.000000, 6.109208, 10.246826, 10.609957, 6.764728, + -0.075704, -7.409461, -12.346208, -12.731430, -8.062958, + 0.182060, 8.985442, 14.875067, 15.276420, 9.609196, + -0.328370, -10.895428, -17.921131, -18.329336, -11.450576, + 0.526448, 13.209973, 21.590023, 21.991385, 13.643140, + -0.791247, -16.014492, -26.008907, -26.383901, -16.253504, + 1.141655, 19.412378, 31.330871, 31.652348, 19.360848, + -1.601465, -23.528777, -37.740204, -37.971107, -23.059260, + 2.200591, 28.515156, 45.458753, 45.549217, 27.460529, + -2.976569, -34.554817, -54.753559, -54.637244, -32.697448, + 3.976416, 41.869576, 65.946052, 65.535525, 38.927729, + -5.258928, -50.727832, -79.423116, -78.604029, -46.338644, + 6.897516, 61.454325, 95.650397, 94.274177, 55.152523, + -8.983716, -74.441929, -115.188314, -113.063003, -65.633259, + 11.631511, 90.165916, 138.711322, 135.590105, 78.094013, + -14.982665, -109.201193, -167.031082, -162.597954, -92.906331, + 19.213290, 132.243134, 201.124338, 194.976222, 110.510935, + -24.541940, -160.132765, -242.166440, -233.790899, -131.430478, + 31.239561, 193.887193, 291.571675, 280.319178, 156.284630, + -39.641741, -234.736391, -351.041770, -336.091216, -185.807912, + 50.163757, 284.167632, 422.624233, 402.940140, 220.870763, + -63.319072, -343.979194, -508.782510, -483.061913, -262.504429, + 79.742042, 416.345244, 612.480366, 579.087014, 311.930343, + -100.215795, -503.894220, -737.283353, -694.166245, -370.594813, + 125.706429, 609.803540, 887.480834, 832.073438, 440.209940, + -157.404955, -737.913996, -1068.232708, -997.328409, -522.801872, + 196.778712, 892.867950, 1285.745847, 1195.344115, 620.767701, + -245.634371, -1080.276240, -1547.486227, -1432.602775, -736.942489, + 306.195102, 1306.919790, 1862.433994, 1716.866654, 874.678227, + -381.195062, -1580.993078, -2241.390126, -2057.430298, -1037.936774, + 473.995052, 1912.398180, 2697.345105, 2465.422369, 1231.399220, + -588.724017, -2313.099844, -3245.922143, -2954.166800, -1460.594493, + 730.452133, 2797.554253, 3905.910007, 3539.614901, 1732.050527, + -905.402443, -3383.226729, -4699.903513, -4240.862333, -2053.471832, + 1121.209554, 4091.216806, 5655.073452, 5080.767553, 2433.947965, + -1387.235765, -4947.012887, -6804.092030, -6086.691631, -2884.198121, + 1714.957253, 5981.403297, 8186.245216, 7291.383170, 3416.857907, + -2118.435721, -7231.576094, -9848.769674, -8734.036728, -4046.815355, + 2614.894255, 8742.446660, 11848.459577, 10461.558685, 4791.604321, + -3225.420222, -10568.260176, -14253.597692, -12530.081077, -5671.864737, + 3975.823020, 12774.525771, 17146.276092, 15006.771888, 6711.880612, + -4897.680529, -15440.350897, -20625.184991, -17971.999652, -7940.208402, + 6029.615451, 18661.258563, 24808.964001, 21521.921578, 9390.410233, + -7418.851697, -22552.587165, -29840.229074, -25771.577789, -11101.908663, + 9123.111793, 27253.593143, 35890.411153, 30858.590420, 13120.982075, + -11212.929535, -32932.401520, -43165.569941, -36947.585456, -15501.922592, + 13774.468128, 39791.979238, 51913.378983, 44235.478131, 18308.381438, + -16912.953578, -48077.342225, -62431.517747, -52957.790070, -21614.930138, + 20756.856764, 58084.250586, 75077.753677, 63396.198979, 25508.869716, + -25462.986446, -70169.698634, -90282.054065, -75887.560674, -30092.324242, + 31222.690356, 84764.569627, 108561.135815, 90834.689747, 35484.659605, + -38269.404043, -102388.901147, -130535.943080, -108719.240618, -41825.273267, + 46887.838631, 123670.298781, 156952.641109, 130117.096987, 49276.805933, + -57425.161274, -149366.146307, -188707.832667, -155716.756615, -58028.831480, + 70304.598043, 180390.393831, 226878.845103, 186341.292651, 68302.086980, + -86041.981200, -217845.865904, -272760.106197, -222974.585037, -80353.310040, + 105265.874749, 263063.225186, 327906.831053, 266792.649626, 94480.755768, + -128742.047924, -317647.960457, -394187.487304, -319201.052420, -111030.470003, + 157403.231090, 383537.048821, 473846.799900, 381879.586964, 130403.398591, + -192385.288422, -463067.280664, -569581.409624, -456835.620147, -153063.413757, + 235071.184227, 559057.643966, 684630.722900, 546467.782541, 179546.337116, + -287144.413901, -674908.656359, -822885.998573, -653642.002301, -210470.033463, + 350653.927224, 814722.125712, 989021.327043, 781782.266485, 246545.638548, + -428093.004245, -983445.533844, -1188650.888674, -934978.952245, -288589.965744, + 522495.068481, 1187046.097893, 1428517.756157, 1118118.116795, 337539.108116, + -637550.058001, -1432720.599829, -1716720.558561, -1337035.786123, -394463.210730, + 777745.745791, 1729148.322568, 2062985.588205, 1598702.057951, 460582.328770, + -948539.335064, -2086795.934450, -2478993.447111, -1911440.758239, -537283.204837, + 1156565.787585, 2518284.974613, 2978771.147961, 2285191.490698, 626136.686773, + -1409890.715316, -3038834.772892, -3579162.765425, -2731822.228828, -728915.356799, + 1718317.328563, 3666796.264850, 4300394.349825, 3265502.159830, 847610.742696, + -2093758.948552, -4424295.326464, -5166751.952850, -3903146.346575, -984449.218292, + 2550691.033230, 5338008.063395, 6207395.378498, 4664945.984099, 1141905.356234, + -3106699.622013, -6440095.078674, -7457334.785992, -5575000.657492, -1322711.048944, + 3783146.686785, 7769327.268660, 8958602.684417, 6662072.138144, 1529858.136359, + -4605977.214406, -9372442.351616, -10761660.350202, -7960482.979376, -1766591.537123, + 5606698.099533, 11305779.346088, 12927085.482769, 9511187.602536, 2036388.930375, + -6823565.288237, -13637247.864482, -15527597.247686, -11363048.833756, -2342921.824577, + 8303023.316062, 16448700.704063, 18650486.048610, 13574359.117581, 2689991.311114, + -10101450.710498, -19838792.204081, -22400528.788313, -16214653.084049, -3081429.850680, + 12287276.018778, 23926421.676653, 26903486.467518, 19366867.002831, 3520957.976311, + -14943542.889821, -28854881.491245, -32310300.258257, -23129911.185536, -4011981.690190, + 18171019.183242, 34796853.797034, 38802125.311214, 27621733.908111, 4557312.422997, + -22091965.102165, -41960429.245394, -46596369.274924, -32982970.290335, -5158786.517383, + 26854699.579994, 50596356.438136, 55953935.730766, 39381287.228525, 5816755.047390, + -32639133.476996, -61006773.393892, -67187912.573574, -47016556.451947, -6529407.091211, + 39663473.627686, 73555723.560159, 80673993.102082, 56127012.680548, 7291879.963058, + -48192344.715084, -88681820.564997, -96862974.793882, -66996583.433046, -8095097.920129, + 58546627.892657, 106913500.120816, 116295749.303753, 79963612.136585, 8924265.924556, + -71115377.915425, -128887386.814358, -139621279.391140, -95431237.847443, -9756926.457174, + 86370256.557591, 155370411.011265, 167618156.945886, 113879744.320966, 10560464.285645, + -104883012.041142, -187286440.462195, -201220454.267134, -135881249.803956, -11288915.420918, + 127346645.407973, 225748346.861610, 241548722.121826, 162117178.463787, 11878900.943144, + -154601039.263161, -272096614.921471, -289947157.492990, -193399036.824020, -12244462.331299, + 187663986.962885, 327945826.905572, 348028166.863781, 230693116.321629, 12270520.408649, + -227768756.995135, -395240626.753420, -417725794.004062, -275149858.943091, -11804612.586023, + 276409565.108355, 476323094.198962, 501359772.474058, 328138760.150134, 10646479.758475, + -335396614.264246, -574013851.836865, -601712311.942546, -391289845.886545, -8534971.317913, + 406922710.094078, 691709700.348455, 722120145.317499, 466542952.987464, 5131609.783276, + -493643879.751773, -833501145.234545, -866584864.231526, -556206270.243475, 0.00000}; static char *textdata = "I've seen things you people wouldn't believe. Attack ships on fire off the shoulder of Orion. " - "I watched C-beams glitter in the dark near the Tannhäuser Gate. All those moments will be lost " - "in time, like tears...in...rain. Time to die."; \ No newline at end of file + "I watched C-beams glitter in the dark near the Tannhäuser Gate. All those moments will be " + "lost " + "in time, like tears...in...rain. Time to die."; + +static char *soh_json_headers = "{" + "\"FDSN\":{" + "\"Time\":{" + "\"Exception\":[" + "{" + "\"Time\":\"2012-01-13T00:00:00Z\"," + "\"VCOCorrection\":51.51367," + "\"ReceptionQuality\":0," + "\"Count\":6829," + "\"Type\":\"Daily Timemark\"," + "\"ClockStatus\":\"SNR=48,49,48,47,51,48,51,50,47,48,46\"" + "}," + "{" + "\"Time\":\"2012-01-13T00:03:16.000001Z\"," + "\"VCOCorrection\":51.51367," + "\"ReceptionQuality\":0," + "\"Count\":196," + "\"Type\":\"UnExp Timemark\"," + "\"ClockStatus\":\"Jump of -0.999999 Seconds\"" + "}," + "{" + "\"Time\":\"2012-01-13T00:03:36.000004Z\"," + "\"VCOCorrection\":51.51367," + "\"ReceptionQuality\":90," + "\"Count\":21," + "\"Type\":\"Valid Timemark\"," + "\"ClockStatus\":\"SNR=47,50,47,49,50,48,52,49,48,46,46\"" + "}" + "]" + "}," + "\"Clock\":{" + "\"Model\":\"P273T11N16\"" + "}" + "}," + "\"Manufacturer123\":{" + "\"Metadata\":{" + "\"FilamentCurrent\":16.4," + "\"HyperCoordinates\":\"1.1789:965402:[email protected]\"" + "}" + "}," + "\"OperatorXYZ\":{" + "\"DSP\":{" + "\"PeakRMS\":2067," + "\"RMSWindow\":10.5" + "}" + "}" + "}";
