提交 6e89f70e 编写于 作者: B Bernard Xiong

[examples] remove nanopb example codes

上级 b57e0758
Import('RTT_ROOT')
Import('rtconfig')
from building import *
src = Split('''
simple.c
simple.pb.c
''')
CPPPATH = [RTT_ROOT + '/examples/nanopb']
group = DefineGroup('Nanopb_test', src, depend = ['RT_USING_NANOPB'], CPPPATH = CPPPATH)
Return('group')
\ No newline at end of file
#include <rthw.h>
#include <stm32f10x.h>
#include <pb_encode.h>
#include <pb_decode.h>
#include "simple.pb.h"
int nanopb_test()
{
/* This is the buffer where we will store our message. */
uint8_t buffer[128];
size_t message_length;
bool status;
/* Encode our message */
{
/* Allocate space on the stack to store the message data.
*
* Nanopb generates simple struct definitions for all the messages.
* - check out the contents of simple.pb.h! */
SimpleMessage message = SimpleMessage_init_zero;
/* Create a stream that will write to our buffer. */
pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
/* Fill in the lucky number */
message.lucky_number = 13;
/* Now we are ready to encode the message! */
status = pb_encode(&stream, SimpleMessage_fields, &message);
message_length = stream.bytes_written;
/* Then just check for any errors.. */
if (!status)
{
rt_kprintf("Encoding failed: %s\n", PB_GET_ERROR(&stream));
return 1;
}
}
/* Now we could transmit the message over network, store it in a file or
* wrap it to a pigeon's leg.
*/
/* But because we are lazy, we will just decode it immediately. */
{
/* Allocate space for the decoded message. */
SimpleMessage message;
/* Create a stream that reads from the buffer. */
pb_istream_t stream = pb_istream_from_buffer(buffer, message_length);
/* Now we are ready to decode the message. */
status = pb_decode(&stream, SimpleMessage_fields, &message);
/* Check for errors... */
if (!status)
{
rt_kprintf("Decoding failed: %s\n", PB_GET_ERROR(&stream));
return 1;
}
/* Print the data contained in the message. */
rt_kprintf("Your lucky number was %d!\n", message.lucky_number);
}
return 0;
}
#ifdef RT_USING_FINSH
#include <finsh.h>
FINSH_FUNCTION_EXPORT(nanopb_test, nanopb encode/decode test.)
#endif
SimpleMessage.name max_size:16
\ No newline at end of file
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.3.1 at Tue Mar 10 01:16:15 2015. */
#include "simple.pb.h"
#if PB_PROTO_HEADER_VERSION != 30
#error Regenerate this file with the current version of nanopb generator.
#endif
const pb_field_t SimpleMessage_fields[3] = {
PB_FIELD( 1, INT32 , REQUIRED, STATIC , FIRST, SimpleMessage, lucky_number, lucky_number, 0),
PB_FIELD( 2, BYTES , REQUIRED, STATIC , OTHER, SimpleMessage, name, lucky_number, 0),
PB_LAST_FIELD
};
/* Automatically generated nanopb header */
/* Generated by nanopb-0.3.1 at Tue Mar 10 01:16:15 2015. */
#ifndef PB_SIMPLE_PB_H_INCLUDED
#define PB_SIMPLE_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 30
#error Regenerate this file with the current version of nanopb generator.
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Enum definitions */
/* Struct definitions */
typedef PB_BYTES_ARRAY_T(16) SimpleMessage_name_t;
typedef struct _SimpleMessage {
int32_t lucky_number;
SimpleMessage_name_t name;
} SimpleMessage;
/* Default values for struct fields */
/* Initializer values for message structs */
#define SimpleMessage_init_default {0, {0, {0}}}
#define SimpleMessage_init_zero {0, {0, {0}}}
/* Field tags (for use in manual encoding/decoding) */
#define SimpleMessage_lucky_number_tag 1
#define SimpleMessage_name_tag 2
/* Struct field encoding specification for nanopb */
extern const pb_field_t SimpleMessage_fields[3];
/* Maximum encoded size of messages (where known) */
#define SimpleMessage_size 29
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
// A very simple protocol definition, consisting of only
// one message.
message SimpleMessage {
required int32 lucky_number = 1;
required bytes name = 2;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册