Example program with HTTPServer and sensor data streaming over TCPSockets, using Donatien Garnier's Net APIs and services code on top of LWIP. Files StreamServer.h and .cpp encapsulate streaming over TCPSockets. Broadcast is done by sendToAll(), and all incoming data is echoed back to the client. Echo code can be replaced with some remote control of the streaming interface. See main() that shows how to periodically send some data to all subscribed clients. To subscribe, a client should open a socket at <mbed_ip> port 123. I used few lines in TCL code to set up a quick sink for the data. HTTP files are served on port 80 concurrently to the streaming.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

asn1_enc.c File Reference

asn1_enc.c File Reference

Abstract Syntax Notation One (ISO 8824, 8825) encoding. More...

Go to the source code of this file.

Functions

void snmp_asn1_enc_length_cnt (u16_t length, u8_t *octets_needed)
 Returns octet count for length.
void snmp_asn1_enc_u32t_cnt (u32_t value, u16_t *octets_needed)
 Returns octet count for an u32_t.
void snmp_asn1_enc_s32t_cnt (s32_t value, u16_t *octets_needed)
 Returns octet count for an s32_t.
void snmp_asn1_enc_oid_cnt (u8_t ident_len, s32_t *ident, u16_t *octets_needed)
 Returns octet count for an object identifier.
err_t snmp_asn1_enc_type (struct pbuf *p, u16_t ofs, u8_t type)
 Encodes ASN type field into a pbuf chained ASN1 msg.
err_t snmp_asn1_enc_length (struct pbuf *p, u16_t ofs, u16_t length)
 Encodes host order length field into a pbuf chained ASN1 msg.
err_t snmp_asn1_enc_u32t (struct pbuf *p, u16_t ofs, u16_t octets_needed, u32_t value)
 Encodes u32_t (counter, gauge, timeticks) into a pbuf chained ASN1 msg.
err_t snmp_asn1_enc_s32t (struct pbuf *p, u16_t ofs, u16_t octets_needed, s32_t value)
 Encodes s32_t integer into a pbuf chained ASN1 msg.
err_t snmp_asn1_enc_oid (struct pbuf *p, u16_t ofs, u8_t ident_len, s32_t *ident)
 Encodes object identifier into a pbuf chained ASN1 msg.
err_t snmp_asn1_enc_raw (struct pbuf *p, u16_t ofs, u16_t raw_len, u8_t *raw)
 Encodes raw data (octet string, opaque) into a pbuf chained ASN1 msg.

Detailed Description

Abstract Syntax Notation One (ISO 8824, 8825) encoding.

Definition in file asn1_enc.c.


Function Documentation

err_t snmp_asn1_enc_length ( struct pbuf *  p,
u16_t  ofs,
u16_t  length 
)

Encodes host order length field into a pbuf chained ASN1 msg.

Parameters:
ppoints to output pbuf to encode length into
ofspoints to the offset within the pbuf chain
lengthis the host order length to be encoded
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) encode

Definition at line 213 of file asn1_enc.c.

void snmp_asn1_enc_length_cnt ( u16_t  length,
u8_t *  octets_needed 
)

Returns octet count for length.

Parameters:
length
octets_neededpoints to the return value

Definition at line 50 of file asn1_enc.c.

err_t snmp_asn1_enc_oid ( struct pbuf *  p,
u16_t  ofs,
u8_t  ident_len,
s32_t *  ident 
)

Encodes object identifier into a pbuf chained ASN1 msg.

Parameters:
ppoints to output pbuf to encode oid into
ofspoints to the offset within the pbuf chain
ident_lenobject identifier array length
identpoints to object identifier array
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) encode

Definition at line 438 of file asn1_enc.c.

void snmp_asn1_enc_oid_cnt ( u8_t  ident_len,
s32_t *  ident,
u16_t *  octets_needed 
)

Returns octet count for an object identifier.

Parameters:
ident_lenobject identifier array length
identpoints to object identifier array
octets_neededpoints to the return value

Definition at line 142 of file asn1_enc.c.

err_t snmp_asn1_enc_raw ( struct pbuf *  p,
u16_t  ofs,
u16_t  raw_len,
u8_t *  raw 
)

Encodes raw data (octet string, opaque) into a pbuf chained ASN1 msg.

Parameters:
ppoints to output pbuf to encode raw data into
ofspoints to the offset within the pbuf chain
raw_lenraw data length
rawpoints raw data
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) encode

Definition at line 562 of file asn1_enc.c.

err_t snmp_asn1_enc_s32t ( struct pbuf *  p,
u16_t  ofs,
u16_t  octets_needed,
s32_t  value 
)

Encodes s32_t integer into a pbuf chained ASN1 msg.

Parameters:
ppoints to output pbuf to encode value into
ofspoints to the offset within the pbuf chain
octets_neededencoding length (from snmp_asn1_enc_s32t_cnt())
valueis the host order s32_t value to be encoded
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
See also:
snmp_asn1_enc_s32t_cnt()

Definition at line 384 of file asn1_enc.c.

void snmp_asn1_enc_s32t_cnt ( s32_t  value,
u16_t *  octets_needed 
)

Returns octet count for an s32_t.

Parameters:
value
octets_neededpoints to the return value
Note:
ASN coded integers are _always_ signed.

Definition at line 110 of file asn1_enc.c.

err_t snmp_asn1_enc_type ( struct pbuf *  p,
u16_t  ofs,
u8_t  type 
)

Encodes ASN type field into a pbuf chained ASN1 msg.

Parameters:
ppoints to output pbuf to encode value into
ofspoints to the offset within the pbuf chain
typeinput ASN1 type
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) encode

Definition at line 181 of file asn1_enc.c.

err_t snmp_asn1_enc_u32t ( struct pbuf *  p,
u16_t  ofs,
u16_t  octets_needed,
u32_t  value 
)

Encodes u32_t (counter, gauge, timeticks) into a pbuf chained ASN1 msg.

Parameters:
ppoints to output pbuf to encode value into
ofspoints to the offset within the pbuf chain
octets_neededencoding length (from snmp_asn1_enc_u32t_cnt())
valueis the host order u32_t value to be encoded
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) encode
See also:
snmp_asn1_enc_u32t_cnt()

Definition at line 308 of file asn1_enc.c.

void snmp_asn1_enc_u32t_cnt ( u32_t  value,
u16_t *  octets_needed 
)

Returns octet count for an u32_t.

Parameters:
value
octets_neededpoints to the return value
Note:
ASN coded integers are _always_ signed. E.g. +0xFFFF is coded as 0x00,0xFF,0xFF. Note the leading sign octet. A positive value of 0xFFFFFFFF is preceded with 0x00 and the length is 5 octets!!

Definition at line 77 of file asn1_enc.c.