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
Anders Blomdell
LabComm
Commits
72e28000
Commit
72e28000
authored
May 16, 2013
by
Sven Robertz
Browse files
updated wiki-example
parent
1a051a2d
Changes
7
Hide whitespace changes
Inline
Side-by-side
.bzrignore
View file @
72e28000
...
...
@@ -20,3 +20,8 @@ lib/java/se/lth/control/labcomm/LabCommWriter.class
gen
labcomm.dll
labcomm.jar
example.c
example.h
example.py
examples/wiki_example/example.encoded
example.encoded
examples/wiki_example/example.c
deleted
100644 → 0
View file @
1a051a2d
#include
"labcomm.h"
#include
"labcomm_private.h"
#include
"example.h"
static
unsigned
char
signature_bytes_log_message
[]
=
{
// struct { 2 fields
17
,
2
,
// int 'sequence'
8
,
115
,
101
,
113
,
117
,
101
,
110
,
99
,
101
,
35
,
// array [_] 'line'
4
,
108
,
105
,
110
,
101
,
// array [_]
16
,
1
,
0
,
// struct { 2 fields
17
,
2
,
// boolean 'last'
4
,
108
,
97
,
115
,
116
,
32
,
// string 'data'
4
,
100
,
97
,
116
,
97
,
39
,
// }
// }
// }
};
labcomm_signature_t
labcomm_signature_example_log_message
=
{
LABCOMM_SAMPLE
,
"log_message"
,
(
int
(
*
)(
void
*
))
labcomm_sizeof_example_log_message
,
sizeof
(
signature_bytes_log_message
),
signature_bytes_log_message
};
static
unsigned
char
signature_bytes_data
[]
=
{
37
,
};
labcomm_signature_t
labcomm_signature_example_data
=
{
LABCOMM_SAMPLE
,
"data"
,
(
int
(
*
)(
void
*
))
labcomm_sizeof_example_data
,
sizeof
(
signature_bytes_data
),
signature_bytes_data
};
static
void
decode_log_message
(
labcomm_decoder_t
*
d
,
void
(
*
handle
)(
example_log_message
*
v
,
void
*
context
),
void
*
context
)
{
example_log_message
v
;
v
.
sequence
=
labcomm_decode_int
(
d
);
v
.
line
.
n_0
=
labcomm_decode_packed32
(
d
);
v
.
line
.
a
=
malloc
(
sizeof
(
v
.
line
.
a
[
0
])
*
v
.
line
.
n_0
);
{
int
i_0_0
;
for
(
i_0_0
=
0
;
i_0_0
<
v
.
line
.
n_0
;
i_0_0
++
)
{
int
i_0
=
i_0_0
;
v
.
line
.
a
[
i_0
].
last
=
labcomm_decode_boolean
(
d
);
v
.
line
.
a
[
i_0
].
data
=
labcomm_decode_string
(
d
);
}
}
handle
(
&
v
,
context
);
{
{
int
i_0_0
;
for
(
i_0_0
=
0
;
i_0_0
<
v
.
line
.
n_0
;
i_0_0
++
)
{
int
i_0
=
i_0_0
;
free
(
v
.
line
.
a
[
i_0
].
data
);
}
}
free
(
v
.
line
.
a
);
}
}
void
labcomm_decoder_register_example_log_message
(
struct
labcomm_decoder
*
d
,
void
(
*
handler
)(
example_log_message
*
v
,
void
*
context
),
void
*
context
)
{
labcomm_internal_decoder_register
(
d
,
&
labcomm_signature_example_log_message
,
(
labcomm_decoder_typecast_t
)
decode_log_message
,
(
labcomm_handler_typecast_t
)
handler
,
context
);
}
static
void
encode_log_message
(
labcomm_encoder_t
*
e
,
example_log_message
*
v
)
{
e
->
writer
.
write
(
&
e
->
writer
,
labcomm_writer_start
);
labcomm_encode_type_index
(
e
,
&
labcomm_signature_example_log_message
);
{
labcomm_encode_int
(
e
,
(
*
v
).
sequence
);
labcomm_encode_packed32
(
e
,
(
*
v
).
line
.
n_0
);
{
int
i_0_0
;
for
(
i_0_0
=
0
;
i_0_0
<
(
*
v
).
line
.
n_0
;
i_0_0
++
)
{
int
i_0
=
i_0_0
;
labcomm_encode_boolean
(
e
,
(
*
v
).
line
.
a
[
i_0
].
last
);
labcomm_encode_string
(
e
,
(
*
v
).
line
.
a
[
i_0
].
data
);
}
}
}
e
->
writer
.
write
(
&
e
->
writer
,
labcomm_writer_end
);
}
void
labcomm_encode_example_log_message
(
labcomm_encoder_t
*
e
,
example_log_message
*
v
)
{
labcomm_internal_encode
(
e
,
&
labcomm_signature_example_log_message
,
v
);
}
void
labcomm_encoder_register_example_log_message
(
struct
labcomm_encoder
*
e
)
{
labcomm_internal_encoder_register
(
e
,
&
labcomm_signature_example_log_message
,
(
labcomm_encode_typecast_t
)
encode_log_message
);
}
int
labcomm_sizeof_example_log_message
(
example_log_message
*
v
)
{
int
result
=
4
;
{
int
i_0_0
;
for
(
i_0_0
=
0
;
i_0_0
<
(
*
v
).
line
.
n_0
;
i_0_0
++
)
{
int
i_0
=
i_0_0
;
result
+=
4
+
strlen
((
*
v
).
line
.
a
[
i_0
].
data
);
result
+=
1
;
}
}
result
+=
4
;
return
result
;
}
static
void
decode_data
(
labcomm_decoder_t
*
d
,
void
(
*
handle
)(
example_data
*
v
,
void
*
context
),
void
*
context
)
{
example_data
v
;
v
=
labcomm_decode_float
(
d
);
handle
(
&
v
,
context
);
}
void
labcomm_decoder_register_example_data
(
struct
labcomm_decoder
*
d
,
void
(
*
handler
)(
example_data
*
v
,
void
*
context
),
void
*
context
)
{
labcomm_internal_decoder_register
(
d
,
&
labcomm_signature_example_data
,
(
labcomm_decoder_typecast_t
)
decode_data
,
(
labcomm_handler_typecast_t
)
handler
,
context
);
}
static
void
encode_data
(
labcomm_encoder_t
*
e
,
example_data
*
v
)
{
e
->
writer
.
write
(
&
e
->
writer
,
labcomm_writer_start
);
labcomm_encode_type_index
(
e
,
&
labcomm_signature_example_data
);
{
labcomm_encode_float
(
e
,
(
*
v
));
}
e
->
writer
.
write
(
&
e
->
writer
,
labcomm_writer_end
);
}
void
labcomm_encode_example_data
(
labcomm_encoder_t
*
e
,
example_data
*
v
)
{
labcomm_internal_encode
(
e
,
&
labcomm_signature_example_data
,
v
);
}
void
labcomm_encoder_register_example_data
(
struct
labcomm_encoder
*
e
)
{
labcomm_internal_encoder_register
(
e
,
&
labcomm_signature_example_data
,
(
labcomm_encode_typecast_t
)
encode_data
);
}
int
labcomm_sizeof_example_data
(
example_data
*
v
)
{
return
8
;
}
examples/wiki_example/example.encoded
deleted
100644 → 0
View file @
1a051a2d
File deleted
examples/wiki_example/example.h
deleted
100644 → 0
View file @
1a051a2d
/* LabComm declarations:
sample struct {
int sequence;
struct {
boolean last;
string data;
} line[_];
} log_message;
sample float data;
*/
#ifndef __LABCOMM_example_H__
#define __LABCOMM_example_H__
#include
"labcomm.h"
#ifndef PREDEFINED_example_log_message
typedef
struct
{
int
sequence
;
struct
{
int
n_0
;
struct
{
unsigned
char
last
;
char
*
data
;
}
*
a
;
}
line
;
}
example_log_message
;
#endif
void
labcomm_decoder_register_example_log_message
(
struct
labcomm_decoder
*
d
,
void
(
*
handler
)(
example_log_message
*
v
,
void
*
context
),
void
*
context
);
void
labcomm_encoder_register_example_log_message
(
struct
labcomm_encoder
*
e
);
void
labcomm_encode_example_log_message
(
struct
labcomm_encoder
*
e
,
example_log_message
*
v
);
extern
int
labcomm_sizeof_example_log_message
(
example_log_message
*
v
);
#ifndef PREDEFINED_example_data
typedef
float
example_data
;
#endif
void
labcomm_decoder_register_example_data
(
struct
labcomm_decoder
*
d
,
void
(
*
handler
)(
example_data
*
v
,
void
*
context
),
void
*
context
);
void
labcomm_encoder_register_example_data
(
struct
labcomm_encoder
*
e
);
void
labcomm_encode_example_data
(
struct
labcomm_encoder
*
e
,
example_data
*
v
);
extern
int
labcomm_sizeof_example_data
(
example_data
*
v
);
#define LABCOMM_FORALL_SAMPLES_example(func, sep) \
func(log_message, example_log_message) sep \
func(data, example_data)
#endif
examples/wiki_example/example.py
deleted
100644 → 0
View file @
1a051a2d
#!/usr/bin/python
# Auto generated example
import
labcomm
class
log_message
(
object
):
signature
=
labcomm
.
sample
(
'log_message'
,
labcomm
.
struct
([
(
'sequence'
,
labcomm
.
INTEGER
()),
(
'line'
,
labcomm
.
array
([
0
],
labcomm
.
struct
([
(
'last'
,
labcomm
.
BOOLEAN
()),
(
'data'
,
labcomm
.
STRING
())])))]))
class
data
(
object
):
signature
=
labcomm
.
sample
(
'data'
,
labcomm
.
FLOAT
())
examples/wiki_example/example_encoder.c
View file @
72e28000
#include
<sys/types.h>
#include
<sys/stat.h>
#include
<fcntl.h>
#include
<labcomm_fd_reader_writer.h>
#include
<labcomm_fd_reader.h>
#include
<labcomm_fd_writer.h>
#include
"example.h"
int
main
(
int
argc
,
char
*
argv
[])
{
...
...
examples/wiki_example/run
View file @
72e28000
...
...
@@ -9,11 +9,13 @@ java -jar ../../compiler/labComm.jar \
example.lc
# Compile executables
(
cd
../../lib/c
;
make liblabcomm.a
)
gcc
-o
example_encoder
-I
../../lib/c/
\
example_encoder.c
\
example.c
\
../../lib/c/labcomm.
c
\
../../lib/c//labcomm_fd_reader_writer.c
example.c
\
../../lib/c/
lib
labcomm.
a
javac
-cp
../../lib/java:.
*
.java
# Run through all executables (c->java->Python)
...
...
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