Better formatting

This commit is contained in:
Leonie 2023-12-05 17:08:10 +01:00
parent 415428d790
commit 56074e5328
2 changed files with 49 additions and 60 deletions

View file

@ -1,9 +1,9 @@
use tokio;
use reqwest::Client; use reqwest::Client;
use serde::ser::Serialize; use serde::ser::Serialize;
use tokio;
#[tokio::main] #[tokio::main]
pub async fn post<T: Serialize>(addr: &String, form_a: &str, form_b: T) { pub async fn post<T: Serialize>(addr: &String, form_a: &str, form_b: T) {
let c = Client::new(); let c = Client::new();
let p = [(form_a,form_b)]; let p = [(form_a, form_b)];
c.post(addr).form(&p).send().await; c.post(addr).form(&p).send().await;
} }

View file

@ -1,19 +1,13 @@
use iced::executor;
use iced::widget::Column;
use iced::widget::container; use iced::widget::container;
use iced::widget::{button, text_input,Slider}; use iced::widget::Column;
use iced::Renderer; use iced::widget::{button, text_input, Slider};
use iced::{ use iced::{executor, Alignment, Application, Command, Element, Length, Renderer, Settings, Theme};
Alignment, Application, Command, Element, Length, Settings, Theme, use kontroller::post;
}; use std::sync::mpsc;
use reqwest::Client;
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use std::thread; use std::thread;
use std::sync::mpsc;
use kontroller::post;
pub fn main() -> iced::Result { pub fn main() -> iced::Result {
State::run(Settings { State::run(Settings {
exit_on_close_request: true, exit_on_close_request: true,
..Settings::default() ..Settings::default()
@ -23,55 +17,53 @@ pub fn main() -> iced::Result {
struct State { struct State {
addr: String, addr: String,
speed: f64, speed: f64,
tx: Sender<Task> tx: Sender<Task>,
} }
impl Default for State { impl Default for State {
fn default() -> Self { fn default() -> Self {
let (tx, rx) = mpsc::channel(); let (tx, rx) = mpsc::channel();
thread::spawn (move|| { thread::spawn(move || {
let mut addr = String::new(); let mut addr = String::new();
let mut speed: f64; let mut speed: f64;
for tasks in rx { for tasks in rx {
match tasks { match tasks {
Task::FW => { Task::FW => {
if addr.len() != 0{ if addr.len() != 0 {
post(&addr,"state","1"); post(&addr, "state", "1");
println!("Recieved FW "); println!("Recieved FW ");
} }
} }
Task::BW => { Task::BW => {
if addr.len() != 0 { if addr.len() != 0 {
post(&addr,"state","2"); post(&addr, "state", "2");
println!("Recieved BW"); println!("Recieved BW");
} }
} }
Task::OFF => { Task::OFF => {
if addr.len() != 0 { if addr.len() != 0 {
post(&addr,"state","3"); post(&addr, "state", "3");
println!("Recieved OFF") println!("Recieved OFF")
} }
} }
Task::Addr(s) => { Task::Addr(s) => {
addr=s; addr = s;
println!("Changed addr to {}", &addr); println!("Changed addr to {}", &addr);
} }
Task::Speed(i) => { Task::Speed(i) => {
speed=i; speed = i;
if addr.len() != 0 { if addr.len() != 0 {
post(&addr, "speed", speed); post(&addr, "speed", speed);
println!("Changed speed to {}", &speed.round()); println!("Changed speed to {}", &speed.round());
} }
} }
} }
} }
} });
);
State { State {
addr: String::default(), addr: String::default(),
@ -81,13 +73,13 @@ impl Default for State {
} }
} }
#[derive(Debug,Clone)] #[derive(Debug, Clone)]
enum Message { enum Message {
Addr(String), Addr(String),
FW, FW,
BW, BW,
Stop, Stop,
Speed(f64) Speed(f64),
} }
enum Task { enum Task {
@ -95,7 +87,7 @@ enum Task {
BW, BW,
OFF, OFF,
Speed(f64), Speed(f64),
Addr(String) Addr(String),
} }
impl Application for State { impl Application for State {
@ -126,37 +118,37 @@ impl Application for State {
self.tx.send(Task::OFF).unwrap(); self.tx.send(Task::OFF).unwrap();
Command::none() Command::none()
} }
Message::Addr(addr)=>{ Message::Addr(addr) => {
self.tx.send(Task::Addr(addr.clone())).unwrap(); self.tx.send(Task::Addr(addr.clone())).unwrap();
self.addr=addr; self.addr = addr;
Command::none() Command::none()
} }
Message::Speed(speed)=> { Message::Speed(speed) => {
self.tx.send(Task::Speed(self.speed.clone())).unwrap(); self.tx.send(Task::Speed(self.speed.clone())).unwrap();
self.speed=speed; self.speed = speed;
Command::none() Command::none()
} }
} }
} }
fn view(&self) -> Element<Message> { fn view(&self) -> Element<Message> {
let input = text_input("ip with /motor attached",&self.addr) let input = text_input("ip with /motor attached", &self.addr)
.on_input(Message::Addr) .on_input(Message::Addr)
.padding(30) .padding(30)
.width(200); .width(200);
let fw_button: iced::widget::Button<'_, Message, Renderer> =
button("Forwords").on_press(Message::FW).padding(40);
let fw_button: iced::widget::Button<'_, Message, Renderer> = button("Forwords").on_press(Message::FW).padding(40); let bw_button: iced::widget::Button<'_, Message, Renderer> =
button("Backwords").on_press(Message::BW).padding(40);
let bw_button: iced::widget::Button<'_, Message, Renderer> = button("Backwords").on_press(Message::BW).padding(40); let stop_button: iced::widget::Button<'_, Message, Renderer> =
button("OFF").on_press(Message::Stop).padding(40);
let stop_button: iced::widget::Button<'_, Message, Renderer> = button("OFF").on_press(Message::Stop).padding(40);
let slider = Slider::new(0.0..=255.0, self.speed, Message::Speed).width(200); let slider = Slider::new(0.0..=255.0, self.speed, Message::Speed).width(200);
let content= Column::new() let content = Column::new()
.align_items(Alignment::Center) .align_items(Alignment::Center)
.spacing(20) .spacing(20)
.push(input) .push(input)
@ -172,7 +164,4 @@ impl Application for State {
.center_y() .center_y()
.into() .into()
} }
} }