Initial development commit

This commit is contained in:
Ondrej Babec
2022-02-02 13:21:14 +01:00
parent c49b71fea6
commit d661609e7c
8 changed files with 997 additions and 2 deletions

34
src/lib.rs Normal file
View File

@@ -0,0 +1,34 @@
#![macro_use]
#![cfg_attr(not(feature = "std"), no_std)]
#![allow(dead_code)]
pub mod packet;
#[allow(unused_variables)]
pub fn print_stack(file: &'static str, line: u32) {
let _u: u32 = 1;
let _uptr: *const u32 = &_u;
// log::trace!("[{}:{}] SP: 0x{:p}", file, line, &_uptr);
}
#[allow(unused_variables)]
pub fn log_stack(file: &'static str) {
let _u: u32 = 1;
let _uptr: *const u32 = &_u;
//trace!("[{}] SP: 0x{:?}", file, &_uptr);
}
#[allow(unused_variables)]
pub fn print_size<T>(name: &'static str) {
//log::info!("[{}] size: {}", name, core::mem::size_of::<T>());
}
#[allow(unused_variables)]
pub fn print_value_size<T>(name: &'static str, val: &T) {
/* log::info!(
"[{}] value size: {}",
name,
core::mem::size_of_val::<T>(val)
);*/
}

21
src/main.rs Normal file
View File

@@ -0,0 +1,21 @@
use rust_mqtt::packet::mqttpacket::Packet;
fn main() {
env_logger::builder()
.filter_level(log::LevelFilter::Info)
.format_timestamp_nanos()
.init();
let l: u8 = 1;
let y: u32 = 2;
let z: u16 = 3;
let p: u32 = 4;
let text: &'a [u8] = "abcde";
let payld: &'a [u8] = "This is payload";
let x = Packet::new( l, y, z, p, text, payld );
log::info!("Hello world");
x.encode();
x.get_reason_code();
}

1
src/packet/mod.rs Normal file
View File

@@ -0,0 +1 @@
pub mod mqttpacket;

30
src/packet/mqttpacket.rs Normal file
View File

@@ -0,0 +1,30 @@
pub struct Packet<'a> {
// 7 - 4 mqtt control packet type, 3-0 flagy
header_control: u8,
// 1 - 4 B
remain_len: u32,
// variable header
//optional
packet_identifier: u16,
// property len
property_len: u32,
// properties
properties: &'a mut [u8],
// Payload of message
payload: &'a mut [u8]
}
impl<'a> Packet {
pub fn new(header_control: u8, remain_len: u32, packet_identifier: u16, property_len: u32, properties: &'a mut [u8], payload: &'a mut [u8]) -> Self {
Self { header_control, remain_len, packet_identifier, property_len , properties, payload}
}
pub fn encode(&self) {
log::info!("Encoding!");
}
pub fn get_reason_code(&self) {
log::info!("Getting reason code!");
}
}