Better formatting
This commit is contained in:
parent
415428d790
commit
56074e5328
|
@ -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;
|
||||||
}
|
}
|
71
src/main.rs
71
src/main.rs
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue