server fix
This commit is contained in:
parent
e3d84b8289
commit
d8bbf40f38
@ -59,6 +59,7 @@ After=network.target navka-core.service
|
|||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/local/bin/navka-server
|
ExecStart=/usr/local/bin/navka-server
|
||||||
Restart=always
|
Restart=always
|
||||||
|
Environment="RUST_LOG=navka_server=trace"
|
||||||
User=root
|
User=root
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|||||||
@ -53,14 +53,17 @@ impl Relay for Handler {
|
|||||||
|
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
let mut s = req.into_inner();
|
let mut s = req.into_inner();
|
||||||
|
let mut boot_mode = true;
|
||||||
while let Some(pkt) = s.next().await.transpose()? {
|
while let Some(pkt) = s.next().await.transpose()? {
|
||||||
loop {
|
loop {
|
||||||
match ms.lock().await.write_all(&pkt.data).await {
|
match ms.lock().await.write_all(&pkt.data).await {
|
||||||
Ok(()) => break,
|
Ok(()) => {
|
||||||
Err(e) if e.kind() == ErrorKind::WouldBlock => {
|
trace!("🖱️ wrote {}", pkt.data.iter()
|
||||||
// gadget FIFO full – give it a breath
|
.map(|b| format!("{b:02X}")).collect::<Vec<_>>().join(" "));
|
||||||
tokio::time::sleep(std::time::Duration::from_micros(500)).await;
|
break;
|
||||||
continue;
|
}
|
||||||
|
Err(e) if e.kind() == std::io::ErrorKind::WouldBlock => {
|
||||||
|
tokio::time::sleep(Duration::from_micros(500)).await;
|
||||||
}
|
}
|
||||||
Err(e) => return Err(Status::internal(format!("hidg1: {e}"))),
|
Err(e) => return Err(Status::internal(format!("hidg1: {e}"))),
|
||||||
}
|
}
|
||||||
@ -105,7 +108,7 @@ async fn main() -> anyhow::Result<()> {
|
|||||||
let ms = OpenOptions::new()
|
let ms = OpenOptions::new()
|
||||||
.write(true)
|
.write(true)
|
||||||
// .read(true)
|
// .read(true)
|
||||||
// .custom_flags(libc::O_NONBLOCK)
|
.custom_flags(libc::O_NONBLOCK)
|
||||||
.open("/dev/hidg1")
|
.open("/dev/hidg1")
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user