Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sven Gestegård Robertz
LabComm
Commits
f43dd755
Commit
f43dd755
authored
Nov 27, 2013
by
Sven Gestegård Robertz
Browse files
added and hacked
parent
78fc1083
Changes
2
Hide whitespace changes
Inline
Side-by-side
examples/jgrafchart/jg.c
0 → 100644
View file @
f43dd755
#include
"labcomm.h"
#include
"labcomm_private.h"
#include
"jg.h"
static
unsigned
char
signature_bytes_jg_foo
[]
=
{
// struct { 8 fields
17
,
8
,
// double 'b'
1
,
98
,
38
,
// int 'c'
1
,
99
,
35
,
// int 'd'
1
,
100
,
35
,
// string 'e'
1
,
101
,
39
,
// boolean 'f'
1
,
102
,
32
,
// short 'g'
1
,
103
,
34
,
// long 'h'
1
,
104
,
36
,
// float 'i'
1
,
105
,
37
,
// }
};
struct
labcomm_signature
labcomm_signature_jg_foo
=
{
LABCOMM_SAMPLE
,
"foo"
,
(
int
(
*
)(
struct
labcomm_signature
*
,
void
*
))
labcomm_sizeof_jg_foo
,
sizeof
(
signature_bytes_jg_foo
),
signature_bytes_jg_foo
,
0
};
static
void
decode_jg_foo
(
struct
labcomm_reader
*
r
,
void
(
*
handle
)(
jg_foo
*
v
,
void
*
context
),
void
*
context
)
{
jg_foo
v
;
v
.
b
=
labcomm_read_double
(
r
);
v
.
c
=
labcomm_read_int
(
r
);
v
.
d
=
labcomm_read_int
(
r
);
v
.
e
=
labcomm_read_string
(
r
);
v
.
f
=
labcomm_read_boolean
(
r
);
v
.
g
=
labcomm_read_short
(
r
);
v
.
h
=
labcomm_read_long
(
r
);
v
.
i
=
labcomm_read_float
(
r
);
handle
(
&
v
,
context
);
{
labcomm_memory_free
(
r
->
memory
,
1
,
v
.
e
);
}
}
int
labcomm_decoder_register_jg_foo
(
struct
labcomm_decoder
*
d
,
void
(
*
handler
)(
jg_foo
*
v
,
void
*
context
),
void
*
context
)
{
return
labcomm_internal_decoder_register
(
d
,
&
labcomm_signature_jg_foo
,
(
labcomm_decoder_function
)
decode_jg_foo
,
(
labcomm_handler_function
)
handler
,
context
);
}
int
labcomm_decoder_ioctl_jg_foo
(
struct
labcomm_decoder
*
d
,
int
ioctl_action
,
...
)
{
int
result
;
va_list
va
;
va_start
(
va
,
ioctl_action
);
result
=
labcomm_internal_decoder_ioctl
(
d
,
&
labcomm_signature_jg_foo
,
ioctl_action
,
va
);
va_end
(
va
);
return
result
;
}
static
int
encode_jg_foo
(
struct
labcomm_writer
*
w
,
jg_foo
*
v
)
{
int
result
=
0
;
result
=
labcomm_write_double
(
w
,
(
*
v
).
b
);
if
(
result
!=
0
)
{
return
result
;
}
result
=
labcomm_write_int
(
w
,
(
*
v
).
c
);
if
(
result
!=
0
)
{
return
result
;
}
result
=
labcomm_write_int
(
w
,
(
*
v
).
d
);
if
(
result
!=
0
)
{
return
result
;
}
result
=
labcomm_write_string
(
w
,
(
*
v
).
e
);
if
(
result
!=
0
)
{
return
result
;
}
result
=
labcomm_write_boolean
(
w
,
(
*
v
).
f
);
if
(
result
!=
0
)
{
return
result
;
}
result
=
labcomm_write_short
(
w
,
(
*
v
).
g
);
if
(
result
!=
0
)
{
return
result
;
}
result
=
labcomm_write_long
(
w
,
(
*
v
).
h
);
if
(
result
!=
0
)
{
return
result
;
}
result
=
labcomm_write_float
(
w
,
(
*
v
).
i
);
if
(
result
!=
0
)
{
return
result
;
}
return
result
;
}
int
labcomm_encode_jg_foo
(
struct
labcomm_encoder
*
e
,
jg_foo
*
v
)
{
return
labcomm_internal_encode
(
e
,
&
labcomm_signature_jg_foo
,
(
labcomm_encoder_function
)
encode_jg_foo
,
v
);
}
int
labcomm_encoder_register_jg_foo
(
struct
labcomm_encoder
*
e
)
{
return
labcomm_internal_encoder_register
(
e
,
&
labcomm_signature_jg_foo
,
(
labcomm_encoder_function
)
encode_jg_foo
);
}
int
labcomm_encoder_ioctl_jg_foo
(
struct
labcomm_encoder
*
e
,
int
ioctl_action
,
...
)
{
int
result
;
va_list
va
;
va_start
(
va
,
ioctl_action
);
result
=
labcomm_internal_encoder_ioctl
(
e
,
&
labcomm_signature_jg_foo
,
ioctl_action
,
va
);
va_end
(
va
);
return
result
;
}
int
labcomm_sizeof_jg_foo
(
jg_foo
*
v
)
{
int
result
=
labcomm_size_packed32
(
labcomm_signature_jg_foo
.
index
);
result
+=
0
+
strlen
((
*
v
).
e
);
result
+=
31
;
return
result
;
}
LABCOMM_CONSTRUCTOR
void
init_jg__signatures
(
void
)
{
static
int
initialized
=
0
;
if
(
initialized
==
0
)
{
initialized
=
1
;
labcomm_set_local_index
(
&
labcomm_signature_jg_foo
);
}
}
examples/jgrafchart/jg.h
0 → 100644
View file @
f43dd755
/* LabComm declarations:
sample struct {
double b;
int c;
int d;
string e;
boolean f;
short g;
long h;
float i;
} foo;
*/
#ifndef __LABCOMM_jg_H__
#define __LABCOMM_jg_H__
#include
<stdint.h>
#include
"labcomm.h"
#ifndef PREDEFINED_jg_foo
typedef
struct
{
double
b
;
int32_t
c
;
int32_t
d
;
char
*
e
;
uint8_t
f
;
int16_t
g
;
int64_t
h
;
float
i
;
}
jg_foo
;
#endif
int
labcomm_decoder_register_jg_foo
(
struct
labcomm_decoder
*
d
,
void
(
*
handler
)(
jg_foo
*
v
,
void
*
context
),
void
*
context
);
int
labcomm_decoder_ioctl_jg_foo
(
struct
labcomm_decoder
*
d
,
int
ioctl_action
,
...
);
int
labcomm_encoder_register_jg_foo
(
struct
labcomm_encoder
*
e
);
int
labcomm_encode_jg_foo
(
struct
labcomm_encoder
*
e
,
jg_foo
*
v
);
int
labcomm_encoder_ioctl_jg_foo
(
struct
labcomm_encoder
*
e
,
int
ioctl_action
,
...
);
extern
int
labcomm_sizeof_jg_foo
(
jg_foo
*
v
);
void
init_jg__signatures
(
void
);
#define LABCOMM_FORALL_SAMPLES_jg(func, sep) \
func(foo, jg_foo)
#endif
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment