mqtt_mux: fixed singletone parameter bug
This commit is contained in:
parent
39969e602c
commit
f1376cab07
|
@ -70,35 +70,13 @@ impl<SPI, E> MqttMux<SPI> where SPI: Transfer<u8, Error = E> {
|
||||||
pub fn process_mqtt(&mut self, topic: &str, message: &[u8]) -> Result<(), Error<E>> {
|
pub fn process_mqtt(&mut self, topic: &str, message: &[u8]) -> Result<(), Error<E>> {
|
||||||
let header = self.parse_topic(topic)
|
let header = self.parse_topic(topic)
|
||||||
.map_err(|_| Error::MqttTopicError)?;
|
.map_err(|_| Error::MqttTopicError)?;
|
||||||
info!("{:?}", header);
|
info!("Parsed command topic: {:?}", header);
|
||||||
let (_, command) = self.parse_message(header, message)
|
let (_, command) = self.parse_message(header, message)
|
||||||
.map_err(|_| Error::MqttCommandError)?;
|
.map_err(|_| Error::MqttCommandError)?;
|
||||||
info!("{:?}", command);
|
info!("Parsed comamnd message: {:?}", command);
|
||||||
self.execute(command)
|
self.execute(command)
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
fn parse_header<'a>(&mut self, topic: &'a str) -> IResult<&'a str, MqttTopic> {
|
|
||||||
preceded(
|
|
||||||
alt((
|
|
||||||
tag("Urukul/Control/"),
|
|
||||||
tag("/Urukul/Control/")
|
|
||||||
)),
|
|
||||||
alt((
|
|
||||||
switch,
|
|
||||||
attenuation,
|
|
||||||
clock,
|
|
||||||
clock_source,
|
|
||||||
clock_frequency,
|
|
||||||
clock_division,
|
|
||||||
singletone,
|
|
||||||
singletone_frequency,
|
|
||||||
singletone_amplitude,
|
|
||||||
singletone_phase,
|
|
||||||
profile
|
|
||||||
))
|
|
||||||
)(topic)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
fn parse_topic<'a>(&mut self, topic: &'a str) -> Result<MqttTopic, Error<E>> {
|
fn parse_topic<'a>(&mut self, topic: &'a str) -> Result<MqttTopic, Error<E>> {
|
||||||
let mut assigned_channel = false;
|
let mut assigned_channel = false;
|
||||||
let mut assigned_profile = false;
|
let mut assigned_profile = false;
|
||||||
|
@ -423,6 +401,8 @@ fn clock_division_message(message: &[u8]) -> IResult<&[u8], MqttCommand> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parser for one-command master clock setup message
|
// Parser for one-command master clock setup message
|
||||||
|
// Possible improvements: Chop off redundant braces and quotes
|
||||||
|
// Allow optional parameters/permutation of parameters
|
||||||
fn clock_message(message: &[u8]) -> IResult<&[u8], MqttCommand> {
|
fn clock_message(message: &[u8]) -> IResult<&[u8], MqttCommand> {
|
||||||
all_consuming(
|
all_consuming(
|
||||||
map(
|
map(
|
||||||
|
@ -533,7 +513,8 @@ fn singletone_phase_message(channel: u8, profile: u8, message: &[u8]) -> IResult
|
||||||
|
|
||||||
// Parser for one-command singletone profile Command
|
// Parser for one-command singletone profile Command
|
||||||
// Using JSON like command structure
|
// Using JSON like command structure
|
||||||
// Possible enhancement: further modularize parsing of all separate fields
|
// Possible improvements: Chop off redundant braces and quotes
|
||||||
|
// Allow optional parameters/permutation of parameters
|
||||||
fn singletone_message(channel: u8, profile: u8, message: &[u8]) -> IResult<&[u8], MqttCommand> {
|
fn singletone_message(channel: u8, profile: u8, message: &[u8]) -> IResult<&[u8], MqttCommand> {
|
||||||
all_consuming(
|
all_consuming(
|
||||||
map(
|
map(
|
||||||
|
@ -592,7 +573,7 @@ fn singletone_message(channel: u8, profile: u8, message: &[u8]) -> IResult<&[u8]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)),
|
)),
|
||||||
|(freq, ampl, phase): (f64, f64, f64)| MqttCommand::Singletone(channel, profile, freq, ampl, phase)
|
|(freq, ampl, phase): (f64, f64, f64)| MqttCommand::Singletone(channel, profile, freq, phase, ampl)
|
||||||
)
|
)
|
||||||
)(message)
|
)(message)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue