Skip to content

Commit 41ab4aa

Browse files
committed
Fix compile errors
1 parent 011e6a7 commit 41ab4aa

File tree

2 files changed

+19
-24
lines changed

2 files changed

+19
-24
lines changed

espflash/src/cli/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use update_informer::{registry, Check};
2020
use crate::{
2121
cli::{monitor::monitor, serial::get_serial_port_info},
2222
elf::{ElfFirmwareImage, FlashFrequency, FlashMode},
23-
error::{Error, NoOtadataError},
23+
error::NoOtadataError,
2424
flasher::FlashSize,
2525
interface::Interface,
2626
partition_table, Chip, Flasher, ImageFormatId, InvalidPartitionTable, MissingPartitionTable,
@@ -132,7 +132,6 @@ pub fn connect(opts: &ConnectOpts, config: &Config) -> Result<Flasher> {
132132
println!("Connecting...\n");
133133

134134
let interface = Interface::new(&port_info, opts, config)
135-
.map_err(Error::from)
136135
.wrap_err_with(|| format!("Failed to open serial port {}", port_info.port_name))?;
137136

138137
// NOTE: since `get_serial_port_info` filters out all non-USB serial ports, we

espflash/src/interface.rs

+18-22
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::io::Read;
22

33
use crate::{cli::ConnectOpts, Config, Error};
4-
use miette::Context;
4+
use miette::{Context, Result};
55
use serialport::{FlowControl, SerialPort, SerialPortInfo};
66

77
#[cfg(feature = "raspberry")]
@@ -29,36 +29,44 @@ pub struct Interface {
2929

3030
#[cfg(feature = "raspberry")]
3131
fn write_gpio(gpio: &mut OutputPin, level: bool) {
32-
if pin_state {
32+
if level {
3333
gpio.set_high();
3434
} else {
3535
gpio.set_low();
3636
}
3737
}
3838

39+
fn open_port(port_info: &SerialPortInfo) -> Result<Box<dyn SerialPort>> {
40+
serialport::new(&port_info.port_name, 115_200)
41+
.flow_control(FlowControl::None)
42+
.open()
43+
.map_err(Error::from)
44+
.wrap_err_with(|| format!("Failed to open serial port {}", port_info.port_name))
45+
}
46+
3947
impl Interface {
4048
#[cfg(feature = "raspberry")]
4149
pub(crate) fn new(
4250
port_info: &SerialPortInfo,
4351
opts: &ConnectOpts,
4452
config: &Config,
45-
) -> Result<Self, Error> {
53+
) -> Result<Self> {
4654
let rts_gpio = opts.rts.or(config.rts);
4755
let dtr_gpio = opts.dtr.or(config.dtr);
4856

4957
if port_info.port_type == serialport::SerialPortType::Unknown
5058
&& (dtr_gpio.is_none() || rts_gpio.is_none())
5159
{
5260
// Assume internal UART, which has no DTR pin and usually no RTS either.
53-
return Err(Error::from(SerialConfigError::MissingDtrRtsForInternalUart));
61+
return Err(Error::from(SerialConfigError::MissingDtrRtsForInternalUart).into());
5462
}
5563

56-
let mut gpios = Gpio::new().unwrap();
64+
let gpios = Gpio::new().unwrap();
5765

5866
let rts = if let Some(gpio) = rts_gpio {
5967
match gpios.get(gpio) {
6068
Ok(pin) => Some(pin.into_output()),
61-
Err(_) => return Err(SerialConfigError::GpioUnavailable),
69+
Err(_) => return Err(Error::from(SerialConfigError::GpioUnavailable(gpio)).into()),
6270
}
6371
} else {
6472
None
@@ -67,20 +75,14 @@ impl Interface {
6775
let dtr = if let Some(gpio) = dtr_gpio {
6876
match gpios.get(gpio) {
6977
Ok(pin) => Some(pin.into_output()),
70-
Err(_) => return Err(SerialConfigError::GpioUnavailable),
78+
Err(_) => return Err(Error::from(SerialConfigError::GpioUnavailable(gpio)).into()),
7179
}
7280
} else {
7381
None
7482
};
7583

76-
let serial = serialport::new(&port_info.port_name, 115_200)
77-
.flow_control(FlowControl::None)
78-
.open()
79-
.map_err(Error::from)
80-
.wrap_err_with(|| format!("Failed to open serial port {}", port_info.port_name))?;
81-
8284
Ok(Self {
83-
serial_port: serial,
85+
serial_port: open_port(port_info)?,
8486
rts,
8587
dtr,
8688
})
@@ -91,15 +93,9 @@ impl Interface {
9193
port_info: &SerialPortInfo,
9294
_opts: &ConnectOpts,
9395
_config: &Config,
94-
) -> Result<Self, Error> {
95-
let serial = serialport::new(&port_info.port_name, 115_200)
96-
.flow_control(FlowControl::None)
97-
.open()
98-
.map_err(Error::from)
99-
.wrap_err_with(|| format!("Failed to open serial port {}", port_info.port_name))?;
100-
96+
) -> Result<Self> {
10197
Ok(Self {
102-
serial_port: serial,
98+
serial_port: open_port(port_info)?,
10399
})
104100
}
105101

0 commit comments

Comments
 (0)