scpi: fix dds test sdio_in_only

This commit is contained in:
occheung 2020-09-01 10:21:55 +08:00
parent 8dbf621679
commit 1e7fd93835
4 changed files with 12 additions and 15 deletions

View File

@ -17,7 +17,9 @@ smoltcp = { version = "0.6.0", default-features = false, features = [ "ethernet"
nb = "1.0.0" nb = "1.0.0"
scpi = { git = "https://github.com/occheung/scpi-rs", branch = "issue-4" } scpi = { git = "https://github.com/occheung/scpi-rs", branch = "issue-4" }
lexical-core = { version="0.7.1", features=["radix"], default-features=false } lexical-core = { version="0.7.1", features=["radix"], default-features=false }
libm = { version = "0.2.0" } libm = "0.2.0"
embedded-nal = "0.1.0"
minimq = "0.1.0"
# Logging and Panicking # Logging and Panicking
panic-itm = "0.4.1" panic-itm = "0.4.1"

View File

@ -58,6 +58,9 @@ use smoltcp::socket::SocketSet;
use smoltcp::socket::{SocketHandle, TcpSocket, TcpSocketBuffer}; use smoltcp::socket::{SocketHandle, TcpSocket, TcpSocketBuffer};
use smoltcp::time::{Duration, Instant}; use smoltcp::time::{Duration, Instant};
// Use embedded-nal to access smoltcp
use embedded_nal::TcpStack;
use firmware; use firmware;
use firmware::{ use firmware::{
attenuator::Attenuator, attenuator::Attenuator,
@ -301,8 +304,6 @@ fn main() -> ! {
}; };
let mut eth_up = false; let mut eth_up = false;
let mut receive_and_not_send = true;
let mut counter = 0;
// Record activeness of silent socket, init as false // Record activeness of silent socket, init as false
let mut silent_socket_active = false; let mut silent_socket_active = false;
@ -319,7 +320,7 @@ fn main() -> ! {
}, },
}; };
// Counting socket (:6969) // Float rounding test socket (:6969)
{ {
let mut socket = sockets.get::<TcpSocket>(tcp1_handle); let mut socket = sockets.get::<TcpSocket>(tcp1_handle);
if !socket.is_open() { if !socket.is_open() {
@ -327,24 +328,16 @@ fn main() -> ! {
socket.set_timeout(Some(Duration::from_millis(5000))); socket.set_timeout(Some(Duration::from_millis(5000)));
} }
if socket.can_recv() && receive_and_not_send { if socket.can_recv() {
let data = socket.recv(|buffer| { let data = socket.recv(|buffer| {
(buffer.len(), buffer) (buffer.len(), buffer)
}).unwrap(); }).unwrap();
hprintln!("{:?}", data).unwrap(); hprintln!("{:?}", data).unwrap();
let result = lexical_core::parse_partial::<f64>(data).unwrap(); let result = lexical_core::parse_partial::<f64>(data).unwrap();
writeln!(socket, "{}", round(result.0 * 2.0)); writeln!(socket, "{}", round(result.0 * 2.0));
}
else if socket.can_recv() {
// hprintln!("{:?}", socket.can_recv());
}
if socket.can_send() && !receive_and_not_send {
writeln!(socket, "{}", counter);
receive_and_not_send = true;
} }
} }
// Silent socket (:7000) // SCPI interaction socket (:7000)
{ {
let mut socket = sockets.get::<TcpSocket>(silent_handle); let mut socket = sockets.get::<TcpSocket>(silent_handle);
if !socket.is_open() { if !socket.is_open() {

View File

@ -357,7 +357,7 @@ where
// Test configuration register by getting SDIO_IN_ONLY and LSB_FIRST. // Test configuration register by getting SDIO_IN_ONLY and LSB_FIRST.
let mut error_count = 0; let mut error_count = 0;
let mut config_checks = [ let mut config_checks = [
(DDSCFRMask::SDIO_IN_ONLY, 0), (DDSCFRMask::SDIO_IN_ONLY, 1),
(DDSCFRMask::LSB_FIRST, 0) (DDSCFRMask::LSB_FIRST, 0)
]; ];
self.get_configurations(&mut config_checks)?; self.get_configurations(&mut config_checks)?;

View File

@ -29,6 +29,7 @@ use scpi::{
}; };
use embedded_hal::blocking::spi::Transfer; use embedded_hal::blocking::spi::Transfer;
use cortex_m_semihosting::hprintln;
use crate::Urukul; use crate::Urukul;
@ -70,6 +71,7 @@ where
} }
fn tst(&mut self) -> Result<()> { fn tst(&mut self) -> Result<()> {
hprintln!("Testing Urukul...").unwrap();
match self.test() { match self.test() {
Ok(0) => Ok(()), Ok(0) => Ok(()),
Ok(_) => Err(Error::new( Ok(_) => Err(Error::new(