38 used += snprintf ( c + used, lmax - used,
"%s%s%s%s%s", b->
e.
YYYY, b->
e.
MM, b->
e.
DD, b->
e.
HH, b->
e.
mm );
41 used += snprintf ( c + used, lmax - used,
" %s%s", b->
s0.
MiMi, b->
s0.
MjMj );
45 used += snprintf ( c + used, lmax - used,
" %s%s%s", b->
s0.
A1, b->
s0.
bw, b->
s0.
nbnbnb );
47 else if ( b->
s0.
D_D[0] )
49 used += snprintf ( c + used, lmax - used,
" %s", b->
s0.
D_D );
53 used += snprintf ( c + used, lmax - used,
" %s%s%s", b->
s0.
YY, b->
s0.
MM, b->
s0.
J );
57 used += snprintf ( c + used, lmax - used,
" %s%s%s", b->
s0.
GG, b->
s0.
gg, b->
s0.
iw );
61 used += snprintf ( c + used, lmax - used,
" %s%s/", b->
s0.
GG, b->
s0.
gg );
64 used += snprintf ( c + used, lmax - used,
" %s%s", b->
s0.
Qc, b->
s0.
LaLaLaLaLa );
67 used += snprintf ( c + used, lmax - used,
" %s", b->
s0.
LoLoLoLoLoLo );
73 used += snprintf ( c + used, lmax - used,
" 6%s", b->
s0.
Ql );
77 used += snprintf ( c + used, lmax - used,
" 6/" );
82 used +=snprintf ( c + used, lmax - used,
"%s", b->
s0.
Qt );
86 used += snprintf ( c + used, lmax - used,
"/" );
91 used += snprintf ( c + used, lmax - used,
"%s/", b->
s0.
QA );
95 used += snprintf ( c + used, lmax - used,
"//" );
119 used += snprintf ( c + used, lmax - used,
" 111" );
123 used += snprintf ( c + used, lmax - used,
"%s", b->
s1.
Qd );
127 used += snprintf ( c + used, lmax - used,
"/" );
132 used += snprintf ( c + used, lmax - used,
"%s", b->
s1.
Qx );
136 used += snprintf ( c + used, lmax - used,
"/" );
142 used += snprintf ( c + used, lmax - used,
" 0" );
145 used += snprintf ( c + used, lmax - used,
"%s", b->
s1.
dd );
149 used += snprintf ( c + used, lmax - used,
"//" );
154 used += snprintf ( c + used, lmax - used,
"%s", b->
s1.
ff );
158 used += snprintf ( c + used, lmax - used,
"//" );
165 used += snprintf ( c + used, lmax - used,
" 1%s%s", b->
s1.
sn1, b->
s1.
TTT );
171 used += snprintf ( c + used, lmax - used,
" 2%s%s", b->
s1.
sn2, b->
s1.
TdTdTd );
177 used += snprintf ( c + used, lmax - used,
" 3%s", b->
s1.
PoPoPoPo );
183 used += snprintf ( c + used, lmax - used,
" 4%s", b->
s1.
PPPP );
189 if ( b->
s1.
a[0] == 0 )
193 if ( b->
s1.
ppp[0] == 0 )
195 strcpy ( b->
s1.
ppp,
"///" );
197 used += snprintf ( c + used, lmax - used,
" 5%s%s", b->
s1.
a, b->
s1.
ppp );
220 used += snprintf ( c + used, lmax - used,
" 222" );
224 used += snprintf ( c + used, lmax - used,
"%s", b->
s2.
Qd );
228 used += snprintf ( c + used, lmax - used,
"/" );
233 used += snprintf ( c + used, lmax - used,
"%s", b->
s2.
Qx );
237 used += snprintf ( c + used, lmax - used,
"/" );
243 used += snprintf ( c + used, lmax - used,
" 0%s%s", b->
s2.
sn, b->
s2.
TwTwTw );
249 used += snprintf ( c + used, lmax - used,
" 1" );
252 used += snprintf ( c + used, lmax - used,
"%s", b->
s2.
PwaPwa );
256 used += snprintf ( c + used, lmax - used,
"//" );
261 used += snprintf ( c + used, lmax - used,
"%s", b->
s2.
HwaHwa );
265 used += snprintf ( c + used, lmax - used,
"//" );
272 used += snprintf ( c + used, lmax - used,
" 20%s", b->
s2.
PwaPwaPwa );
278 used += snprintf ( c + used, lmax - used,
" 21%s", b->
s2.
HwaHwaHwa );
303 used += snprintf ( c + used, lmax - used,
" 333%s%s", b->
s3.
Qd1, b->
s3.
Qd2 );
307 while ( b->
s3.
l1[l].
zzzz[0] && l < 32 )
311 used += snprintf ( c + used, lmax - used,
" 8887%s", b->
s3.
k2 );
313 used += snprintf ( c + used, lmax - used,
" 2%s", b->
s3.
l1[l].
zzzz );
317 used += snprintf ( c + used, lmax - used,
" 3%s", b->
s3.
l1[l].
TTTT );
322 used += snprintf ( c + used, lmax - used,
" 4%s", b->
s3.
l1[l].
SSSS );
328 while ( b->
s3.
l2[l].
zzzz[0] && l < 32 )
332 used += snprintf ( c + used, lmax - used,
" 66%s9%s", b->
s3.
k6, b->
s3.
k3 );
334 used += snprintf ( c + used, lmax - used,
" 2%s", b->
s3.
l2[l].
zzzz );
340 used += snprintf ( c + used, lmax - used,
" %s", b->
s3.
l2[l].
dd );
344 used += snprintf ( c + used, lmax - used,
" //" );
348 used += snprintf ( c + used, lmax - used,
"%s", b->
s3.
l2[l].
ccc );
352 used += snprintf ( c + used, lmax - used,
"///" );
374 sprintf ( aux,
"0-0-0-MISSING" );
378 used = snprintf ( *wid, lmax,
"%-32s%c", aux, sep );
396 size_t lmax =
sizeof ( m->
alphanum );
400 if ( b->
e.
YYYY[0] == 0 || b->
e.
YYYY[0] ==
'0' )
427 c += snprintf ( c, lmax - used,
" NIL" );
429 snprintf ( c, lmax - used - 1,
"=" );
Include header file for binary bufr2tac.
size_t print_wigos_id(char **wid, size_t lmax, struct metreport *m)
#define PRINT_BITMASK_WIGOS
Bit mask to member print_mask in struct metreport to print WIGOS Identifier.
size_t print_geo(char **geo, size_t lmax, struct metreport *m)
#define PRINT_BITMASK_GEO
Bit mask to member print_mask in struct metreport to print geographic position.
size_t print_buoy_sec1(char **sec1, size_t lmax, struct buoy_chunks *b)
Prints the buoy section 1.
size_t print_buoy_sec0(char **sec0, size_t lmax, struct buoy_chunks *b)
Prints the buoy section 1.
size_t print_buoy_sec2(char **sec2, size_t lmax, struct buoy_chunks *b)
Prints the buoy section 1.
int print_buoy_report(struct metreport *m)
prints a buoy into a string
size_t print_buoy_wigos_id(char **wid, size_t lmax, struct buoy_chunks *b)
size_t print_buoy_sec3(char **sec3, size_t lmax, struct buoy_chunks *b)
Prints the buoy section 3.
#define BUOY_SEC3
mask bit meaning section 3 of buoy is solicited to or parsed with success
#define BUOY_SEC2
mask bit meaning section 2 of buoy is solicited to or parsed with success
#define BUOY_SEC1
mask bit meaning section 1 of buoy is solicited to or parsed with success
contains all possible substrings from a synop report is parsed with success
struct b_sec3_layer2 l2[32]
struct b_sec3_layer1 l1[32]
all the information for a meteorological report in WMO text format from a BUFR file
char alphanum[REPORT_LENGTH]