tsathishkumar / MySController-rs

Controller for MySensors, exposes WoT APIs for the sensors. It supports OTA firmware updates, and also acts as proxy for all requests.
GNU Affero General Public License v3.0
20 stars 9 forks source link

Trying to install via Apt-Get on Raspberry Pi #6

Closed flatsiedatsie closed 6 years ago

flatsiedatsie commented 6 years ago

I used Mozilla's image and Etcher to create an SD card.

I then enabled SSH in the interface, and connected to it.

Trying to follow your installation instructions fails though. It feels as it it assumes things will be running in a docker container?

pi@gateway:~ $ sudo apt-get update Hit:1 http://archive.raspberrypi.org/debian stretch InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease Ign:3 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease Hit:4 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release Get:5 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release.gpg [821 B] Ign:5 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release.gpg Fetched 821 B in 1s (645 B/s) Reading package lists... Done W: GPG error: http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 379CE192D401AB61 W: The repository 'http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release' is not signed. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease' doesn't support architecture 'armhf'

flatsiedatsie commented 6 years ago

After some more fiddling about it boils down to:

sudo apt-get update Get:1 http://raspbian.raspberrypi.org/raspbian stretch InRelease [15.0 kB] Hit:2 http://archive.raspberrypi.org/debian stretch InRelease
Ign:3 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease
Hit:4 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release Fetched 15.0 kB in 2s (6868 B/s) Reading package lists... Done N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease' doesn't support architecture 'armhf'

tsathishkumar commented 6 years ago

@flatsiedatsie the package is not built for armv7 architecture. I will look into it.

tsathishkumar commented 6 years ago

@flatsiedatsie I tried to cross compile for Raspberry pi. But i'm not able to get it working properly. If you would like to investigate it further, go through the build logs in travis

flatsiedatsie commented 6 years ago

I will! Very much looking forward to try this!

See the thread on the MySensors forum also.

Would it help if I shared the error messages I got on the pi during compiling?

flatsiedatsie commented 6 years ago

Got a large amount of errors again trying to compile it on the Pi.

   Compiling myscontroller-rs v0.5.7 (file:///home/pi/MySController-rs)
error[E0432]: unresolved import `crossbeam_channel`
  --> src/lib.rs:19:5
   |
19 | use crossbeam_channel as channel;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `crossbeam_channel` in the root

error[E0432]: unresolved import `actix_web`
 --> src/api/firmware.rs:1:5
  |
1 | use actix_web::{error, multipart, AsyncResponder, Error, FutureResponse, HttpMessage, HttpRequest,
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `futures`
 --> src/api/firmware.rs:4:5
  |
4 | use futures::future;
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `futures`
 --> src/api/firmware.rs:5:5
  |
5 | use futures::{Future, Stream};
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `http`
 --> src/api/firmware.rs:8:5
  |
8 | use http::StatusCode;
  |     ^^^^ Maybe a missing `extern crate http;`?

error[E0432]: unresolved import `actix`
 --> src/api/index.rs:1:5
  |
1 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/api/index.rs:2:5
  |
2 | use actix_web::{HttpRequest, Result};
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix_web`
 --> src/api/node.rs:1:5
  |
1 | use actix_web::{AsyncResponder, FutureResponse, HttpRequest, HttpResponse, Json};
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate futures;`?
 --> src/api/node.rs:3:5
  |
3 | use futures::future::Future;
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `http`
 --> src/api/node.rs:5:5
  |
5 | use http::StatusCode;
  |     ^^^^ Maybe a missing `extern crate http;`?

error[E0432]: unresolved import `actix_web`
 --> src/api/sensor.rs:1:5
  |
1 | use actix_web::{AsyncResponder, FutureResponse, HttpRequest, HttpResponse, Json};
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate futures;`?
 --> src/api/sensor.rs:3:5
  |
3 | use futures::future::Future;
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `http`
 --> src/api/sensor.rs:5:5
  |
5 | use http::StatusCode;
  |     ^^^^ Maybe a missing `extern crate http;`?

error[E0432]: unresolved import `serialport`
 --> src/core/connection.rs:3:5
  |
3 | use serialport;
  |     ^^^^^^^^^^ no `serialport` in the root

error[E0433]: failed to resolve. Maybe a missing `extern crate serialport;`?
 --> src/core/connection.rs:4:5
  |
4 | use serialport::prelude::*;
  |     ^^^^^^^^^^ Maybe a missing `extern crate serialport;`?

error[E0432]: unresolved import `num`
 --> src/core/message/presentation.rs:3:5
  |
3 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `num`
 --> src/core/message/set.rs:3:5
  |
3 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `hex`
 --> src/core/message/stream.rs:2:5
  |
2 | use hex;
  |     ^^^ no `hex` in the root

error[E0432]: unresolved import `num`
 --> src/core/message/stream.rs:4:5
  |
4 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `num`
 --> src/core/message/mod.rs:7:5
  |
7 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `r2d2`
 --> src/core/message_handler/internal.rs:7:5
  |
7 | use r2d2::*;
  |     ^^^^ Did you mean `diesel::r2d2`?

error[E0432]: unresolved import `r2d2`
 --> src/core/message_handler/presentation.rs:8:5
  |
8 | use r2d2::*;
  |     ^^^^ Did you mean `diesel::r2d2`?

error[E0432]: unresolved import `r2d2`
  --> src/core/message_handler/stream.rs:10:5
   |
10 | use r2d2::*;
   |     ^^^^ Did you mean `diesel::r2d2`?

error[E0432]: unresolved import `actix`
 --> src/handler/firmware.rs:2:5
  |
2 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/handler/firmware.rs:3:5
  |
3 | use actix_web::*;
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix`
 --> src/handler/node.rs:2:5
  |
2 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/handler/node.rs:3:5
  |
3 | use actix_web::*;
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix`
 --> src/handler/sensor.rs:2:5
  |
2 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/handler/sensor.rs:3:5
  |
3 | use actix_web::*;
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix`
 --> src/model/db.rs:1:5
  |
1 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `crc16`
 --> src/model/firmware.rs:1:5
  |
1 | use crc16::*;
  |     ^^^^^ Maybe a missing `extern crate crc16;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate ihex;`?
 --> src/model/firmware.rs:2:5
  |
2 | use ihex::record::Record;
  |     ^^^^ Maybe a missing `extern crate ihex;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate webthing;`?
 --> src/wot/adapter.rs:6:5
  |
6 | use webthing::property::EmptyValueForwarder;
  |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate webthing;`?
 --> src/wot/adapter.rs:7:5
  |
7 | use webthing::property::ValueForwarder;
  |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0432]: unresolved import `webthing`
 --> src/wot/adapter.rs:8:5
  |
8 | use webthing::{BaseProperty, BaseThing, Thing};
  |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate webthing;`?
  --> src/wot/mod.rs:13:5
   |
13 | use webthing::server::ActionGenerator;
   |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0432]: unresolved import `webthing`
  --> src/wot/mod.rs:14:5
   |
14 | use webthing::{Action, Thing, ThingsType, WebThingServer};
   |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0433]: failed to resolve. Use of undeclared type or module `BaudRate`
   --> src/core/connection.rs:204:26
    |
204 |     settings.baud_rate = BaudRate::Baud38400;
    |                          ^^^^^^^^ Use of undeclared type or module `BaudRate`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
   --> src/handler/firmware.rs:194:42
    |
194 |         let conn = &self.0.get().map_err(error::ErrorInternalServerError)?;
    |                                          ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
   --> src/handler/firmware.rs:197:22
    |
197 |             .map_err(error::ErrorInternalServerError)?;
    |                      ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/node.rs:53:42
   |
53 |         let conn = &self.0.get().map_err(error::ErrorInternalServerError)?;
   |                                          ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/node.rs:56:22
   |
56 |             .map_err(error::ErrorInternalServerError)?;
   |                      ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/sensor.rs:39:42
   |
39 |         let conn = &self.0.get().map_err(error::ErrorInternalServerError)?;
   |                                          ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/sensor.rs:42:22
   |
42 |             .map_err(error::ErrorInternalServerError)?;
   |                      ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `Record`
  --> src/model/firmware.rs:88:14
   |
88 |             &Record::Data {
   |              ^^^^^^ Use of undeclared type or module `Record`

error[E0433]: failed to resolve. Use of undeclared type or module `Record`
   --> src/model/firmware.rs:102:48
    |
102 |                         Firmware::ihex_to_bin(&Record::from_record_string(&line.unwrap()).unwrap())
    |                                                ^^^^^^ Use of undeclared type or module `Record`

error[E0433]: failed to resolve. Use of undeclared type or module `State`
   --> src/model/firmware.rs:120:25
    |
120 |         let mut state = State::<MODBUS>::new();
    |                         ^^^^^ Use of undeclared type or module `State`

error[E0412]: cannot find type `Addr` in this scope
 --> src/api/index.rs:7:13
  |
7 |     pub db: Addr<Syn, ConnDsl>,
  |             ^^^^ not found in this scope

error[E0412]: cannot find type `Syn` in this scope
 --> src/api/index.rs:7:18
  |
7 |     pub db: Addr<Syn, ConnDsl>,
  |                  ^^^ did you mean `Sync`?

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/connection.rs:48:19
   |
48 |         receiver: Receiver<String>,
   |                   ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/connection.rs:49:24
   |
49 |         stop_receiver: Receiver<String>,
   |                        ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/connection.rs:50:10
   |
50 |     ) -> Receiver<String> {
   |          ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/connection.rs:71:37
   |
71 |     fn read_loop(&mut self, sender: Sender<String>) -> Sender<String> {
   |                                     ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/connection.rs:71:56
   |
71 |     fn read_loop(&mut self, sender: Sender<String>) -> Sender<String> {
   |                                                        ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
   --> src/core/connection.rs:127:17
    |
127 |     mut sender: Sender<String>,
    |                 ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Sender;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:128:19
    |
128 |     mut receiver: Receiver<String>,
    |                   ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:151:15
    |
151 |     receiver: Receiver<String>,
    |               ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:152:28
    |
152 |     cancel_token_receiver: Receiver<String>,
    |                            ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:153:6
    |
153 | ) -> Receiver<String> {
    |      ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `SerialPortSettings` in this scope
   --> src/core/connection.rs:202:23
    |
202 |     let mut settings: SerialPortSettings = Default::default();
    |                       ^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Receiver` in this scope
 --> src/core/interceptor.rs:5:16
  |
5 |     receiver: &Receiver<String>,
  |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Receiver;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:6:21
  |
6 |     stream_sender: &Sender<StreamMessage>,
  |                     ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:7:19
  |
7 |     node_sender: &Sender<String>,
  |                   ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:8:27
  |
8 |     presentation_sender: &Sender<PresentationMessage>,
  |                           ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:9:18
  |
9 |     set_sender: &Sender<SetMessage>,
  |                  ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/interceptor.rs:10:25
   |
10 |     controller_sender: &Sender<String>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/internal.rs:13:16
   |
13 |     receiver: &Receiver<String>,
   |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/internal.rs:14:14
   |
14 |     sender: &Sender<String>,
   |              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `PooledConnection` in this scope
  --> src/core/message_handler/internal.rs:15:20
   |
15 |     db_connection: PooledConnection<ConnectionManager<SqliteConnection>>,
   |                    ^^^^^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use diesel::r2d2::PooledConnection;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/presentation.rs:11:16
   |
11 |     receiver: &Receiver<PresentationMessage>,
   |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/presentation.rs:12:14
   |
12 |     sender: &Sender<String>,
   |              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `PooledConnection` in this scope
  --> src/core/message_handler/presentation.rs:13:20
   |
13 |     db_connection: PooledConnection<ConnectionManager<SqliteConnection>>,
   |                    ^^^^^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use diesel::r2d2::PooledConnection;
   |

error[E0412]: cannot find type `Receiver` in this scope
 --> src/core/message_handler/set.rs:5:28
  |
5 |     set_message_receiver: &Receiver<SetMessage>,
  |                            ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Receiver;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/message_handler/set.rs:6:26
  |
6 |     gateway_out_sender: &Sender<String>,
  |                          ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/set.rs:20:16
   |
20 |     receiver: &Receiver<SetMessage>,
   |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/set.rs:21:30
   |
21 |     property_notify_sender: &Sender<SetMessage>,
   |                              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/set.rs:22:25
   |
22 |     controller_sender: &Sender<String>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/stream.rs:13:20
   |
13 |     ota_receiver: &Receiver<StreamMessage>,
   |                    ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/stream.rs:14:14
   |
14 |     sender: &Sender<String>,
   |              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `PooledConnection` in this scope
  --> src/core/message_handler/stream.rs:15:20
   |
15 |     db_connection: PooledConnection<ConnectionManager<SqliteConnection>>,
   |                    ^^^^^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use diesel::r2d2::PooledConnection;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/stream.rs:26:30
   |
26 |     stream_response_sender: &Sender<String>,
   |                              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/server.rs:16:25
   |
16 |     gateway_out_sender: Sender<String>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/server.rs:17:27
   |
17 |     gateway_out_receiver: Receiver<String>,
   |                           ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/server.rs:18:20
   |
18 |     in_set_sender: Sender<SetMessage>,
   |                    ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/server.rs:19:27
   |
19 |     set_message_receiver: Receiver<SetMessage>,
   |                           ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/firmware.rs:26:6
   |
26 | impl Message for CreateOrUpdate {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/firmware.rs:30:6
   |
30 | impl Handler<CreateOrUpdate> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
   --> src/handler/firmware.rs:185:6
    |
185 | impl Message for ListFirmwares {
    |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
   --> src/handler/firmware.rs:186:44
    |
186 |     type Result = Result<Vec<FirmwareDto>, Error>;
    |                                            ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
    |
1   | use diesel::r2d2::Error;
    |
1   | use diesel::result::Error;
    |
1   | use serde_json::Error;
    |
1   | use serde_json::error::Error;
    |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/firmware.rs:189:6
    |
189 | impl Handler<ListFirmwares> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
   --> src/handler/firmware.rs:190:44
    |
190 |     type Result = Result<Vec<FirmwareDto>, Error>;
    |                                            ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
    |
1   | use diesel::r2d2::Error;
    |
1   | use diesel::result::Error;
    |
1   | use serde_json::Error;
    |
1   | use serde_json::error::Error;
    |
and 3 other candidates

error[E0405]: cannot find trait `Message` in this scope
   --> src/handler/firmware.rs:211:6
    |
211 | impl Message for DeleteFirmware {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/firmware.rs:215:6
    |
215 | impl Handler<DeleteFirmware> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
   --> src/handler/firmware.rs:251:6
    |
251 | impl Message for GetFirmware {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/firmware.rs:255:6
    |
255 | impl Handler<GetFirmware> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:30:6
   |
30 | impl Message for GetNode {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:34:6
   |
34 | impl Message for DeleteNode {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:38:6
   |
38 | impl Message for NewNode {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:44:6
   |
44 | impl Message for ListNodes {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/node.rs:45:37
   |
45 |     type Result = Result<Vec<Node>, Error>;
   |                                     ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/node.rs:48:6
   |
48 | impl Handler<ListNodes> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/node.rs:49:37
   |
49 |     type Result = Result<Vec<Node>, Error>;
   |                                     ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:71:6
   |
71 | impl Message for NodeUpdate {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/node.rs:75:6
   |
75 | impl Handler<NodeUpdate> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/node.rs:112:6
    |
112 | impl Handler<DeleteNode> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/node.rs:142:6
    |
142 | impl Handler<NewNode> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/node.rs:182:6
    |
182 | impl Handler<GetNode> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/sensor.rs:20:6
   |
20 | impl Message for GetSensor {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/sensor.rs:24:6
   |
24 | impl Message for DeleteSensor {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/sensor.rs:30:6
   |
30 | impl Message for ListSensors {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/sensor.rs:31:39
   |
31 |     type Result = Result<Vec<Sensor>, Error>;
   |                                       ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/sensor.rs:34:6
   |
34 | impl Handler<ListSensors> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/sensor.rs:35:39
   |
35 |     type Result = Result<Vec<Sensor>, Error>;
   |                                       ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/sensor.rs:47:6
   |
47 | impl Handler<DeleteSensor> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/sensor.rs:78:6
   |
78 | impl Handler<GetSensor> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Actor` in this scope
 --> src/model/db.rs:7:6
  |
7 | impl Actor for ConnDsl {
  |      ^^^^^ not found in this scope

error[E0412]: cannot find type `SyncContext` in this scope
 --> src/model/db.rs:8:20
  |
8 |     type Context = SyncContext<Self>;
  |                    ^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Record` in this scope
  --> src/model/firmware.rs:86:33
   |
86 |     pub fn ihex_to_bin(record: &Record) -> Vec<u8> {
   |                                 ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use log::Record;
   |

error[E0412]: cannot find type `MODBUS` in this scope
   --> src/model/firmware.rs:120:33
    |
120 |         let mut state = State::<MODBUS>::new();
    |                                 ^^^^^^ not found in this scope

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:13:25
   |
13 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0405]: cannot find trait `ValueForwarder` in this scope
  --> src/wot/adapter.rs:27:6
   |
27 | impl ValueForwarder for PropertyValueForwarder {
   |      ^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:44:25
   |
44 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:68:58
   |
68 | fn build_properties(sensor: &Sensor, set_message_sender: Sender<SetMessage>) -> Vec<BaseProperty> {
   |                                                          ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:80:25
   |
80 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0405]: cannot find trait `ValueForwarder` in this scope
  --> src/wot/adapter.rs:87:41
   |
87 |     let value_forwarder: Option<Box<dyn ValueForwarder>> = match set_type.is_forwardable() {
   |                                         ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value `EmptyValueForwarder` in this scope
  --> src/wot/adapter.rs:93:32
   |
93 |         false => Some(Box::new(EmptyValueForwarder)),
   |                                ^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0405]: cannot find trait `ActionGenerator` in this scope
  --> src/wot/mod.rs:18:6
   |
18 | impl ActionGenerator for Generator {
   |      ^^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/mod.rs:42:25
   |
42 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
3  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/wot/mod.rs:121:22
    |
121 |     in_set_receiver: Receiver<SetMessage>,
    |                      ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
3   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Sender` in this scope
   --> src/wot/mod.rs:140:25
    |
140 |     set_message_sender: Sender<SetMessage>,
    |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
    |
3   | use std::sync::mpsc::Sender;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/wot/mod.rs:141:22
    |
141 |     in_set_receiver: Receiver<SetMessage>,
    |                      ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
3   | use std::sync::mpsc::Receiver;
    |

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:3:5
  |
3 | use crate::api::index::AppState;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:6:5
  |
6 | use crate::handler::firmware::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:7:5
  |
7 | use crate::handler::response::Msgs;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:9:5
  |
9 | use crate::model::firmware::Firmware;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/index.rs:3:5
  |
3 | use crate::channel;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/index.rs:4:5
  |
4 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/node.rs:2:5
  |
2 | use crate::api::index::AppState;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/node.rs:4:5
  |
4 | use crate::handler::node::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/sensor.rs:2:5
  |
2 | use crate::api::index::AppState;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/sensor.rs:4:5
  |
4 | use crate::handler::sensor::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/connection.rs:1:5
  |
1 | use crate::channel;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/connection.rs:2:5
  |
2 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/interceptor.rs:2:5
  |
2 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message/set.rs:2:5
  |
2 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message/stream.rs:3:5
  |
3 | use crate::model::firmware::Firmware;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/internal.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/internal.rs:5:5
  |
5 | use crate::model::node::nodes::dsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/internal.rs:6:5
  |
6 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:2:5
  |
2 | use crate::core::message::presentation::PresentationMessage;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:6:5
  |
6 | use crate::model::sensor::sensors::dsl::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:7:5
  |
7 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/set.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/set.rs:2:5
  |
2 | use crate::core::message::set::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:2:5
  |
2 | use crate::core::message::stream::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:6:5
  |
6 | use crate::model::firmware::firmwares::dsl::firmwares;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:7:5
  |
7 | use crate::model::firmware::Firmware;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:8:5
  |
8 | use crate::model::node::nodes::dsl::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:9:5
  |
9 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/server.rs:5:5
  |
5 | use crate::channel;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/server.rs:6:5
  |
6 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/firmware.rs:8:5
  |
8 | use crate::model;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/firmware.rs:9:5
  |
9 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/firmware.rs:10:5
   |
10 | use crate::model::firmware::Firmware;
   |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/firmware.rs:34:13
   |
34 |         use crate::model::firmware::firmwares::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:145:9
    |
145 |     use crate::model::node::nodes::dsl::*;
    |         ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:193:13
    |
193 |         use crate::model::firmware::firmwares::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:219:13
    |
219 |         use crate::model::firmware::firmwares::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:259:13
    |
259 |         use crate::model::firmware::firmwares::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/node.rs:8:5
  |
8 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/node.rs:9:5
  |
9 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/node.rs:52:13
   |
52 |         use crate::model::node::nodes::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/node.rs:79:13
   |
79 |         use crate::model::node::nodes::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/node.rs:116:13
    |
116 |         use crate::model::node::nodes::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/node.rs:146:13
    |
146 |         use crate::model::node::nodes::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/node.rs:186:13
    |
186 |         use crate::model::node::nodes::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/sensor.rs:6:5
  |
6 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/sensor.rs:7:5
  |
7 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/sensor.rs:38:13
   |
38 |         use crate::model::sensor::sensors::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/sensor.rs:51:13
   |
51 |         use crate::model::sensor::sensors::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/sensor.rs:82:13
   |
82 |         use crate::model::sensor::sensors::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/model/sensor.rs:1:5
  |
1 | use crate::core::message::presentation::PresentationType;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/model/sensor.rs:6:9
  |
6 |     use crate::core::message::presentation::PresentationTypeMapping;
  |         ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/adapter.rs:1:5
  |
1 | use crate::channel::Sender;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/adapter.rs:2:5
  |
2 | use crate::core::message::set::{SetMessage, SetReqType, Value};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/adapter.rs:3:5
  |
3 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:3:5
  |
3 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:4:5
  |
4 | use crate::core::message::set::SetMessage;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:7:5
  |
7 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:8:5
  |
8 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/wot/mod.rs:51:21
   |
51 |                 use crate::model::node::nodes::dsl::*;
   |                     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/wot/mod.rs:52:21
   |
52 |                 use crate::model::sensor::sensors::dsl::*;
   |                     ^^^^^

error: aborting due to 194 previous errors

Some errors occurred: E0405, E0412, E0425, E0432, E0433, E0658.
For more information about an error, try `rustc --explain E0405`.
error: Could not compile `myscontroller-rs`.

To learn more, run the command again with --verbose.
pi@gateway:~/MySController-rs $ 
tsathishkumar commented 6 years ago

Please install the beta channel using rustup and try again.

On Fri, Oct 12, 2018, 2:58 AM flatsiedatsie notifications@github.com wrote:

Got a large amount of errors again trying to compile it on the Pi.

Compiling myscontroller-rs v0.5.7 (file:///home/pi/MySController-rs) error[E0432]: unresolved import crossbeam_channel --> src/lib.rs:19:5 | 19 | use crossbeam_channel as channel; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no crossbeam_channel in the root

error[E0432]: unresolved import actix_web --> src/api/firmware.rs:1:5 | 1 | use actix_web::{error, multipart, AsyncResponder, Error, FutureResponse, HttpMessage, HttpRequest, | ^^^^^^^^^ Maybe a missing extern crate actix_web;?

error[E0432]: unresolved import futures --> src/api/firmware.rs:4:5 | 4 | use futures::future; | ^^^^^^^ Maybe a missing extern crate futures;?

error[E0432]: unresolved import futures --> src/api/firmware.rs:5:5 | 5 | use futures::{Future, Stream}; | ^^^^^^^ Maybe a missing extern crate futures;?

error[E0432]: unresolved import http --> src/api/firmware.rs:8:5 | 8 | use http::StatusCode; | ^^^^ Maybe a missing extern crate http;?

error[E0432]: unresolved import actix --> src/api/index.rs:1:5 | 1 | use actix::*; | ^^^^^ Maybe a missing extern crate actix;?

error[E0432]: unresolved import actix_web --> src/api/index.rs:2:5 | 2 | use actix_web::{HttpRequest, Result}; | ^^^^^^^^^ Maybe a missing extern crate actix_web;?

error[E0432]: unresolved import actix_web --> src/api/node.rs:1:5 | 1 | use actix_web::{AsyncResponder, FutureResponse, HttpRequest, HttpResponse, Json}; | ^^^^^^^^^ Maybe a missing extern crate actix_web;?

error[E0433]: failed to resolve. Maybe a missing extern crate futures;? --> src/api/node.rs:3:5 | 3 | use futures::future::Future; | ^^^^^^^ Maybe a missing extern crate futures;?

error[E0432]: unresolved import http --> src/api/node.rs:5:5 | 5 | use http::StatusCode; | ^^^^ Maybe a missing extern crate http;?

error[E0432]: unresolved import actix_web --> src/api/sensor.rs:1:5 | 1 | use actix_web::{AsyncResponder, FutureResponse, HttpRequest, HttpResponse, Json}; | ^^^^^^^^^ Maybe a missing extern crate actix_web;?

error[E0433]: failed to resolve. Maybe a missing extern crate futures;? --> src/api/sensor.rs:3:5 | 3 | use futures::future::Future; | ^^^^^^^ Maybe a missing extern crate futures;?

error[E0432]: unresolved import http --> src/api/sensor.rs:5:5 | 5 | use http::StatusCode; | ^^^^ Maybe a missing extern crate http;?

error[E0432]: unresolved import serialport --> src/core/connection.rs:3:5 | 3 | use serialport; | ^^^^^^^^^^ no serialport in the root

error[E0433]: failed to resolve. Maybe a missing extern crate serialport;? --> src/core/connection.rs:4:5 | 4 | use serialport::prelude::*; | ^^^^^^^^^^ Maybe a missing extern crate serialport;?

error[E0432]: unresolved import num --> src/core/message/presentation.rs:3:5 | 3 | use num::FromPrimitive; | ^^^ Did you mean std::num?

error[E0432]: unresolved import num --> src/core/message/set.rs:3:5 | 3 | use num::FromPrimitive; | ^^^ Did you mean std::num?

error[E0432]: unresolved import hex --> src/core/message/stream.rs:2:5 | 2 | use hex; | ^^^ no hex in the root

error[E0432]: unresolved import num --> src/core/message/stream.rs:4:5 | 4 | use num::FromPrimitive; | ^^^ Did you mean std::num?

error[E0432]: unresolved import num --> src/core/message/mod.rs:7:5 | 7 | use num::FromPrimitive; | ^^^ Did you mean std::num?

error[E0432]: unresolved import r2d2 --> src/core/message_handler/internal.rs:7:5 | 7 | use r2d2::*; | ^^^^ Did you mean diesel::r2d2?

error[E0432]: unresolved import r2d2 --> src/core/message_handler/presentation.rs:8:5 | 8 | use r2d2::*; | ^^^^ Did you mean diesel::r2d2?

error[E0432]: unresolved import r2d2 --> src/core/message_handler/stream.rs:10:5 | 10 | use r2d2::*; | ^^^^ Did you mean diesel::r2d2?

error[E0432]: unresolved import actix --> src/handler/firmware.rs:2:5 | 2 | use actix::*; | ^^^^^ Maybe a missing extern crate actix;?

error[E0432]: unresolved import actix_web --> src/handler/firmware.rs:3:5 | 3 | use actix_web::*; | ^^^^^^^^^ Maybe a missing extern crate actix_web;?

error[E0432]: unresolved import actix --> src/handler/node.rs:2:5 | 2 | use actix::*; | ^^^^^ Maybe a missing extern crate actix;?

error[E0432]: unresolved import actix_web --> src/handler/node.rs:3:5 | 3 | use actix_web::*; | ^^^^^^^^^ Maybe a missing extern crate actix_web;?

error[E0432]: unresolved import actix --> src/handler/sensor.rs:2:5 | 2 | use actix::*; | ^^^^^ Maybe a missing extern crate actix;?

error[E0432]: unresolved import actix_web --> src/handler/sensor.rs:3:5 | 3 | use actix_web::*; | ^^^^^^^^^ Maybe a missing extern crate actix_web;?

error[E0432]: unresolved import actix --> src/model/db.rs:1:5 | 1 | use actix::*; | ^^^^^ Maybe a missing extern crate actix;?

error[E0432]: unresolved import crc16 --> src/model/firmware.rs:1:5 | 1 | use crc16::*; | ^^^^^ Maybe a missing extern crate crc16;?

error[E0433]: failed to resolve. Maybe a missing extern crate ihex;? --> src/model/firmware.rs:2:5 | 2 | use ihex::record::Record; | ^^^^ Maybe a missing extern crate ihex;?

error[E0433]: failed to resolve. Maybe a missing extern crate webthing;? --> src/wot/adapter.rs:6:5 | 6 | use webthing::property::EmptyValueForwarder; | ^^^^^^^^ Maybe a missing extern crate webthing;?

error[E0433]: failed to resolve. Maybe a missing extern crate webthing;? --> src/wot/adapter.rs:7:5 | 7 | use webthing::property::ValueForwarder; | ^^^^^^^^ Maybe a missing extern crate webthing;?

error[E0432]: unresolved import webthing --> src/wot/adapter.rs:8:5 | 8 | use webthing::{BaseProperty, BaseThing, Thing}; | ^^^^^^^^ Maybe a missing extern crate webthing;?

error[E0433]: failed to resolve. Maybe a missing extern crate webthing;? --> src/wot/mod.rs:13:5 | 13 | use webthing::server::ActionGenerator; | ^^^^^^^^ Maybe a missing extern crate webthing;?

error[E0432]: unresolved import webthing --> src/wot/mod.rs:14:5 | 14 | use webthing::{Action, Thing, ThingsType, WebThingServer}; | ^^^^^^^^ Maybe a missing extern crate webthing;?

error[E0433]: failed to resolve. Use of undeclared type or module BaudRate --> src/core/connection.rs:204:26 | 204 | settings.baud_rate = BaudRate::Baud38400; | ^^^^^^^^ Use of undeclared type or module BaudRate

error[E0433]: failed to resolve. Use of undeclared type or module error --> src/handler/firmware.rs:194:42 | 194 | let conn = &self.0.get().map_err(error::ErrorInternalServerError)?; | ^^^^^ Use of undeclared type or module error

error[E0433]: failed to resolve. Use of undeclared type or module error --> src/handler/firmware.rs:197:22 | 197 | .map_err(error::ErrorInternalServerError)?; | ^^^^^ Use of undeclared type or module error

error[E0433]: failed to resolve. Use of undeclared type or module error --> src/handler/node.rs:53:42 | 53 | let conn = &self.0.get().map_err(error::ErrorInternalServerError)?; | ^^^^^ Use of undeclared type or module error

error[E0433]: failed to resolve. Use of undeclared type or module error --> src/handler/node.rs:56:22 | 56 | .map_err(error::ErrorInternalServerError)?; | ^^^^^ Use of undeclared type or module error

error[E0433]: failed to resolve. Use of undeclared type or module error --> src/handler/sensor.rs:39:42 | 39 | let conn = &self.0.get().map_err(error::ErrorInternalServerError)?; | ^^^^^ Use of undeclared type or module error

error[E0433]: failed to resolve. Use of undeclared type or module error --> src/handler/sensor.rs:42:22 | 42 | .map_err(error::ErrorInternalServerError)?; | ^^^^^ Use of undeclared type or module error

error[E0433]: failed to resolve. Use of undeclared type or module Record --> src/model/firmware.rs:88:14 | 88 | &Record::Data { | ^^^^^^ Use of undeclared type or module Record

error[E0433]: failed to resolve. Use of undeclared type or module Record --> src/model/firmware.rs:102:48 | 102 | Firmware::ihex_to_bin(&Record::from_record_string(&line.unwrap()).unwrap()) | ^^^^^^ Use of undeclared type or module Record

error[E0433]: failed to resolve. Use of undeclared type or module State --> src/model/firmware.rs:120:25 | 120 | let mut state = State::::new(); | ^^^^^ Use of undeclared type or module State

error[E0412]: cannot find type Addr in this scope --> src/api/index.rs:7:13 | 7 | pub db: Addr<Syn, ConnDsl>, | ^^^^ not found in this scope

error[E0412]: cannot find type Syn in this scope --> src/api/index.rs:7:18 | 7 | pub db: Addr<Syn, ConnDsl>, | ^^^ did you mean Sync?

error[E0412]: cannot find type Receiver in this scope --> src/core/connection.rs:48:19 48 receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Receiver in this scope --> src/core/connection.rs:49:24 49 stop_receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Receiver in this scope --> src/core/connection.rs:50:10 50 ) -> Receiver { ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/connection.rs:71:37 71 fn read_loop(&mut self, sender: Sender) -> Sender { ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/connection.rs:71:56 71 fn read_loop(&mut self, sender: Sender) -> Sender { ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/connection.rs:127:17 127 mut sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/core/connection.rs:128:19 128 mut receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Receiver in this scope --> src/core/connection.rs:151:15 151 receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Receiver in this scope --> src/core/connection.rs:152:28 152 cancel_token_receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Receiver in this scope --> src/core/connection.rs:153:6 153 ) -> Receiver { ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;

error[E0412]: cannot find type SerialPortSettings in this scope --> src/core/connection.rs:202:23 | 202 | let mut settings: SerialPortSettings = Default::default(); | ^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type Receiver in this scope --> src/core/interceptor.rs:5:16 5 receiver: &Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/interceptor.rs:6:21 6 stream_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/interceptor.rs:7:19 7 node_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/interceptor.rs:8:27 8 presentation_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/interceptor.rs:9:18 9 set_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/interceptor.rs:10:25 10 controller_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/core/message_handler/internal.rs:13:16 13 receiver: &Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/message_handler/internal.rs:14:14 14 sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type PooledConnection in this scope --> src/core/message_handler/internal.rs:15:20 15 db_connection: PooledConnection<ConnectionManager>, ^^^^^^^^^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use diesel::r2d2::PooledConnection;
error[E0412]: cannot find type Receiver in this scope --> src/core/message_handler/presentation.rs:11:16 11 receiver: &Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/message_handler/presentation.rs:12:14 12 sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type PooledConnection in this scope --> src/core/message_handler/presentation.rs:13:20 13 db_connection: PooledConnection<ConnectionManager>, ^^^^^^^^^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use diesel::r2d2::PooledConnection;
error[E0412]: cannot find type Receiver in this scope --> src/core/message_handler/set.rs:5:28 5 set_message_receiver: &Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/message_handler/set.rs:6:26 6 gateway_out_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/core/message_handler/set.rs:20:16 20 receiver: &Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/message_handler/set.rs:21:30 21 property_notify_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/message_handler/set.rs:22:25 22 controller_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/core/message_handler/stream.rs:13:20 13 ota_receiver: &Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/message_handler/stream.rs:14:14 14 sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type PooledConnection in this scope --> src/core/message_handler/stream.rs:15:20 15 db_connection: PooledConnection<ConnectionManager>, ^^^^^^^^^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use diesel::r2d2::PooledConnection;
error[E0412]: cannot find type Sender in this scope --> src/core/message_handler/stream.rs:26:30 26 stream_response_sender: &Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/core/server.rs:16:25 16 gateway_out_sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/core/server.rs:17:27 17 gateway_out_receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/core/server.rs:18:20 18 in_set_sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/core/server.rs:19:27 19 set_message_receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Receiver;

error[E0405]: cannot find trait Message in this scope --> src/handler/firmware.rs:26:6 | 26 | impl Message for CreateOrUpdate { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/firmware.rs:30:6 | 30 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/firmware.rs:185:6 | 185 | impl Message for ListFirmwares { | ^^^^^^^ not found in this scope

error[E0412]: cannot find type Error in this scope --> src/handler/firmware.rs:186:44 186 type Result = Result<Vec, Error>; ^^^^^ not found in this scope help: possible candidates are found in other modules, you can import them into scope
1 use diesel::r2d2::Error;
1 use diesel::result::Error;
1 use serde_json::Error;
1 use serde_json::error::Error;

and 3 other candidates

error[E0405]: cannot find trait Handler in this scope --> src/handler/firmware.rs:189:6 | 189 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0412]: cannot find type Error in this scope --> src/handler/firmware.rs:190:44 190 type Result = Result<Vec, Error>; ^^^^^ not found in this scope help: possible candidates are found in other modules, you can import them into scope
1 use diesel::r2d2::Error;
1 use diesel::result::Error;
1 use serde_json::Error;
1 use serde_json::error::Error;

and 3 other candidates

error[E0405]: cannot find trait Message in this scope --> src/handler/firmware.rs:211:6 | 211 | impl Message for DeleteFirmware { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/firmware.rs:215:6 | 215 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/firmware.rs:251:6 | 251 | impl Message for GetFirmware { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/firmware.rs:255:6 | 255 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/node.rs:30:6 | 30 | impl Message for GetNode { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/node.rs:34:6 | 34 | impl Message for DeleteNode { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/node.rs:38:6 | 38 | impl Message for NewNode { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/node.rs:44:6 | 44 | impl Message for ListNodes { | ^^^^^^^ not found in this scope

error[E0412]: cannot find type Error in this scope --> src/handler/node.rs:45:37 45 type Result = Result<Vec, Error>; ^^^^^ not found in this scope help: possible candidates are found in other modules, you can import them into scope
1 use diesel::r2d2::Error;
1 use diesel::result::Error;
1 use serde_json::Error;
1 use serde_json::error::Error;

and 3 other candidates

error[E0405]: cannot find trait Handler in this scope --> src/handler/node.rs:48:6 | 48 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0412]: cannot find type Error in this scope --> src/handler/node.rs:49:37 49 type Result = Result<Vec, Error>; ^^^^^ not found in this scope help: possible candidates are found in other modules, you can import them into scope
1 use diesel::r2d2::Error;
1 use diesel::result::Error;
1 use serde_json::Error;
1 use serde_json::error::Error;

and 3 other candidates

error[E0405]: cannot find trait Message in this scope --> src/handler/node.rs:71:6 | 71 | impl Message for NodeUpdate { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/node.rs:75:6 | 75 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/node.rs:112:6 | 112 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/node.rs:142:6 | 142 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/node.rs:182:6 | 182 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/sensor.rs:20:6 | 20 | impl Message for GetSensor { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/sensor.rs:24:6 | 24 | impl Message for DeleteSensor { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Message in this scope --> src/handler/sensor.rs:30:6 | 30 | impl Message for ListSensors { | ^^^^^^^ not found in this scope

error[E0412]: cannot find type Error in this scope --> src/handler/sensor.rs:31:39 31 type Result = Result<Vec, Error>; ^^^^^ not found in this scope help: possible candidates are found in other modules, you can import them into scope
1 use diesel::r2d2::Error;
1 use diesel::result::Error;
1 use serde_json::Error;
1 use serde_json::error::Error;

and 3 other candidates

error[E0405]: cannot find trait Handler in this scope --> src/handler/sensor.rs:34:6 | 34 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0412]: cannot find type Error in this scope --> src/handler/sensor.rs:35:39 35 type Result = Result<Vec, Error>; ^^^^^ not found in this scope help: possible candidates are found in other modules, you can import them into scope
1 use diesel::r2d2::Error;
1 use diesel::result::Error;
1 use serde_json::Error;
1 use serde_json::error::Error;

and 3 other candidates

error[E0405]: cannot find trait Handler in this scope --> src/handler/sensor.rs:47:6 | 47 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Handler in this scope --> src/handler/sensor.rs:78:6 | 78 | impl Handler for ConnDsl { | ^^^^^^^ not found in this scope

error[E0405]: cannot find trait Actor in this scope --> src/model/db.rs:7:6 | 7 | impl Actor for ConnDsl { | ^^^^^ not found in this scope

error[E0412]: cannot find type SyncContext in this scope --> src/model/db.rs:8:20 | 8 | type Context = SyncContext; | ^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type Record in this scope --> src/model/firmware.rs:86:33 86 pub fn ihex_to_bin(record: &Record) -> Vec { ^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
1 use log::Record;

error[E0412]: cannot find type MODBUS in this scope --> src/model/firmware.rs:120:33 | 120 | let mut state = State::::new(); | ^^^^^^ not found in this scope

error[E0412]: cannot find type Sender in this scope --> src/wot/adapter.rs:13:25 13 set_message_sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;

error[E0405]: cannot find trait ValueForwarder in this scope --> src/wot/adapter.rs:27:6 | 27 | impl ValueForwarder for PropertyValueForwarder { | ^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type Sender in this scope --> src/wot/adapter.rs:44:25 44 set_message_sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/wot/adapter.rs:68:58 68 fn build_properties(sensor: &Sensor, set_message_sender: Sender) -> Vec { ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Sender in this scope --> src/wot/adapter.rs:80:25 80 set_message_sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
1 use std::sync::mpsc::Sender;

error[E0405]: cannot find trait ValueForwarder in this scope --> src/wot/adapter.rs:87:41 | 87 | let value_forwarder: Option<Box> = match set_type.is_forwardable() { | ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value EmptyValueForwarder in this scope --> src/wot/adapter.rs:93:32 | 93 | false => Some(Box::new(EmptyValueForwarder)), | ^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0405]: cannot find trait ActionGenerator in this scope --> src/wot/mod.rs:18:6 | 18 | impl ActionGenerator for Generator { | ^^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type Sender in this scope --> src/wot/mod.rs:42:25 42 set_message_sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
3 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/wot/mod.rs:121:22 121 in_set_receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
3 use std::sync::mpsc::Receiver;
error[E0412]: cannot find type Sender in this scope --> src/wot/mod.rs:140:25 140 set_message_sender: Sender, ^^^^^^ did you mean Send? help: possible candidate is found in another module, you can import it into scope
3 use std::sync::mpsc::Sender;
error[E0412]: cannot find type Receiver in this scope --> src/wot/mod.rs:141:22 141 in_set_receiver: Receiver, ^^^^^^^^ not found in this scope help: possible candidate is found in another module, you can import it into scope
3 use std::sync::mpsc::Receiver;

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/firmware.rs:3:5 | 3 | use crate::api::index::AppState; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/firmware.rs:6:5 | 6 | use crate::handler::firmware::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/firmware.rs:7:5 | 7 | use crate::handler::response::Msgs; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/firmware.rs:9:5 | 9 | use crate::model::firmware::Firmware; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/index.rs:3:5 | 3 | use crate::channel; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/index.rs:4:5 | 4 | use crate::model::db::ConnDsl; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/node.rs:2:5 | 2 | use crate::api::index::AppState; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/node.rs:4:5 | 4 | use crate::handler::node::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/sensor.rs:2:5 | 2 | use crate::api::index::AppState; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/api/sensor.rs:4:5 | 4 | use crate::handler::sensor::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/connection.rs:1:5 | 1 | use crate::channel; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/connection.rs:2:5 | 2 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/interceptor.rs:2:5 | 2 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message/set.rs:2:5 | 2 | use crate::model::sensor::Sensor; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message/stream.rs:3:5 | 3 | use crate::model::firmware::Firmware; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/internal.rs:1:5 | 1 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/internal.rs:5:5 | 5 | use crate::model::node::nodes::dsl; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/internal.rs:6:5 | 6 | use crate::model::node::Node; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/presentation.rs:1:5 | 1 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/presentation.rs:2:5 | 2 | use crate::core::message::presentation::PresentationMessage; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/presentation.rs:6:5 | 6 | use crate::model::sensor::sensors::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/presentation.rs:7:5 | 7 | use crate::model::sensor::Sensor; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/set.rs:1:5 | 1 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/set.rs:2:5 | 2 | use crate::core::message::set::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/stream.rs:1:5 | 1 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/stream.rs:2:5 | 2 | use crate::core::message::stream::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/stream.rs:6:5 | 6 | use crate::model::firmware::firmwares::dsl::firmwares; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/stream.rs:7:5 | 7 | use crate::model::firmware::Firmware; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/stream.rs:8:5 | 8 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/message_handler/stream.rs:9:5 | 9 | use crate::model::node::Node; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/server.rs:5:5 | 5 | use crate::channel; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/core/server.rs:6:5 | 6 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:8:5 | 8 | use crate::model; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:9:5 | 9 | use crate::model::db::ConnDsl; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:10:5 | 10 | use crate::model::firmware::Firmware; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:34:13 | 34 | use crate::model::firmware::firmwares::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:145:9 | 145 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:193:13 | 193 | use crate::model::firmware::firmwares::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:219:13 | 219 | use crate::model::firmware::firmwares::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/firmware.rs:259:13 | 259 | use crate::model::firmware::firmwares::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/node.rs:8:5 | 8 | use crate::model::db::ConnDsl; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/node.rs:9:5 | 9 | use crate::model::node::Node; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/node.rs:52:13 | 52 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/node.rs:79:13 | 79 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/node.rs:116:13 | 116 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/node.rs:146:13 | 146 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/node.rs:186:13 | 186 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/sensor.rs:6:5 | 6 | use crate::model::db::ConnDsl; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/sensor.rs:7:5 | 7 | use crate::model::sensor::Sensor; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/sensor.rs:38:13 | 38 | use crate::model::sensor::sensors::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/sensor.rs:51:13 | 51 | use crate::model::sensor::sensors::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/handler/sensor.rs:82:13 | 82 | use crate::model::sensor::sensors::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/model/sensor.rs:1:5 | 1 | use crate::core::message::presentation::PresentationType; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/model/sensor.rs:6:9 | 6 | use crate::core::message::presentation::PresentationTypeMapping; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/adapter.rs:1:5 | 1 | use crate::channel::Sender; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/adapter.rs:2:5 | 2 | use crate::core::message::set::{SetMessage, SetReqType, Value}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/adapter.rs:3:5 | 3 | use crate::model::sensor::Sensor; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/mod.rs:3:5 | 3 | use crate::channel::{Receiver, Sender}; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/mod.rs:4:5 | 4 | use crate::core::message::set::SetMessage; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/mod.rs:7:5 | 7 | use crate::model::node::Node; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/mod.rs:8:5 | 8 | use crate::model::sensor::Sensor; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/mod.rs:51:21 | 51 | use crate::model::node::nodes::dsl::*; | ^^^^^

error[E0658]: crate in paths is experimental (see issue #45477) --> src/wot/mod.rs:52:21 | 52 | use crate::model::sensor::sensors::dsl::*; | ^^^^^

error: aborting due to 194 previous errors

Some errors occurred: E0405, E0412, E0425, E0432, E0433, E0658. For more information about an error, try rustc --explain E0405. error: Could not compile myscontroller-rs.

To learn more, run the command again with --verbose. pi@gateway:~/MySController-rs $

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/tsathishkumar/MySController-rs/issues/6#issuecomment-429125117, or mute the thread https://github.com/notifications/unsubscribe-auth/ABaM5K_MY2550hz028Fop-RBAPJ9JEyNks5uj7f7gaJpZM4W5kbX .

ashokgowtham commented 6 years ago
rustup default beta
flatsiedatsie commented 6 years ago

I did a fresh install following these steps:

log into SSH

'sudo apt-get update'

'sudo curl https://sh.rustup.rs -sSf | sh'

select option 2 - Customize installation

you will get three questions. a. ignore the first one b. when asked to set a default toolchain, type "beta" c. modify PATH variable: select "yes"

reboot

Then you have to install a few libraries:

sudo apt-get install libssl-dev sudo apt-get install libsqlite3-dev

and then follow the install procedure mentioned here.

This results in 0 errors, but there are lots of warnings:

Compiling myscontroller-rs v0.5.7 (/home/pi/MySController-rs)
warning: cannot find type table in this scope
--> <::diesel::macros::table_body macros>:165:33
165 derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct ^^^^^^^ names from parent modules are not accessible without an explicit import
= note: #[warn(proc_macro_derive_resolution_fallback)] on by default                                                                                                
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!                                   
= note: for more information, see issue #50504 <https://github.com/rust-lang/rust/issues/50504>                                                                     
warning: cannot find type table in this scope
--> <::diesel::macros::table_body macros>:165:33
165 derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct ^^^^^^^ names from parent modules are not accessible without an explicit import
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!                                   
= note: for more information, see issue #50504 <https://github.com/rust-lang/rust/issues/50504>                                                                     
warning: cannot find type firmware_type in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type firmware_version in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type name in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type blocks in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type crc in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type data in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type Firmware in this scope
--> src/model/firmware.rs:23:10
23 #[derive(Queryable, Serialize, Deserialize, Insertable, Clone)] ^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type firmwares in this scope
--> src/model/firmware.rs:23:45
23 #[derive(Queryable, Serialize, Deserialize, Insertable, Clone)] ^^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type Firmware in this scope
--> src/model/firmware.rs:23:45
23 #[derive(Queryable, Serialize, Deserialize, Insertable, Clone)] ^^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type node_id in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type node_name in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type desired_firmware_type in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type desired_firmware_version in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type auto_update in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type scheduled in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type Node in this scope
--> src/model/node.rs:14:10
14 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug)] ^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type nodes in this scope
--> src/model/node.rs:14:45
14 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug)] ^^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type Node in this scope
--> src/model/node.rs:14:45
14 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug)] ^^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type child_sensor_id in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type sensor_type in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type description in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
5 derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name ^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type PresentationType in this scope
--> src/model/sensor.rs:16:10
16 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)] ^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type Sensor in this scope
--> src/model/sensor.rs:16:10
16 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)] ^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type sensors in this scope
--> src/model/sensor.rs:16:45
16 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)] ^^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type Sensor in this scope
--> src/model/sensor.rs:16:45
16 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)] ^^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

warning: cannot find type PresentationType in this scope
--> src/model/sensor.rs:16:45
16 #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)] ^^^^^^^^^^ names from parent modules are not accessible without an explicit import

= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 https://github.com/rust-lang/rust/issues/50504

Finished dev [unoptimized + debuginfo] target(s) in 10m 26s                                                                                                         
 Running `target/debug/myscontroller-rs`

thread 'main' panicked at 'called Result::unwrap() on an Err value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }', libcore/result.rs:1009:5 stack backtrace: 0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49 1: std::sys_common::backtrace::print at libstd/sys_common/backtrace.rs:71 at libstd/sys_common/backtrace.rs:59 2: std::panicking::default_hook::{{closure}} at libstd/panicking.rs:211 3: std::panicking::default_hook at libstd/panicking.rs:227 4: std::panicking::rust_panic_with_hook at libstd/panicking.rs:477 5: std::panicking::continue_panic_fmt at libstd/panicking.rs:391 6: rust_begin_unwind at libstd/panicking.rs:326 7: core::panicking::panic_fmt at libcore/panicking.rs:77 8: core::result::unwrap_failed at libcore/macros.rs:26 9: <core::result::Result<T, E>>::unwrap at libcore/result.rs:808 10: myscontroller_rs::server_configs at src/main.rs:137 11: myscontroller_rs::main at src/main.rs:44 12: std::rt::lang_start::{{closure}} at libstd/rt.rs:74 13: std::panicking::try::do_call at libstd/rt.rs:59 at libstd/panicking.rs:310 14: rust_maybe_catch_panic at libpanic_unwind/lib.rs:103 15: std::panic::catch_unwind at libstd/panicking.rs:289 at libstd/panic.rs:392 16: std::rt::lang_start_internal at libstd/rt.rs:58 17: std::rt::lang_start at libstd/rt.rs:74 18: main 19: libc_start_main

flatsiedatsie commented 6 years ago

Ah, there is still an error there.

pi@gateway:~/MySController-rs $ rustup --version rustup 1.14.0 (1e51b07cc 2018-10-04)

tsathishkumar commented 6 years ago

@flatsiedatsie the build is successful. While running the server, it is trying to create the sqlite db file, and the permission is denied. Try to run with sudo.

tsathishkumar commented 6 years ago

Or you can change the db file location in the conf.ini file to a relative location

database_url=/var/lib/myscontroller-rs/sqlite.db

flatsiedatsie commented 6 years ago

Success! Well, almost.

I tried running the compiled file with sudo:

pi@gateway:~/MySController-rs/target/debug $ ls build deps examples incremental libmyscontroller_rs.d libmyscontroller_rs.rlib myscontroller-rs myscontroller-rs.d native pi@gateway:~/MySController-rs/target/debug $ pi@gateway:~/MySController-rs/target/debug $ sudo ./myscontroller-rs thread 'main' panicked at 'calledResult::unwrap()on anErrvalue: Error { line: 0, col: 0, msg: "Unable to open\"conf.ini\": No such file or directory (os error 2)" }', libcore/result.rs:1009:5 note: Run withRUST_BACKTRACE=1for a backtrace.

The conf.ini file does seem to exist in the debug folder, it's in the main folder.

if I copy the conf.ini file into the debug folder, then it does run! yay!

pi@gateway:~/MySController-rs/target/debug $ sudo ./myscontroller-rs INFO 2018-10-16T10:01:59Z: actix_web::server::srv: Starting 4 http workers INFO 2018-10-16T10:01:59Z: actix_web::server::srv: Starting server on http://0.0.0.0:8000 Running migration 20180416170858 Running migration 20180425200801 Running migration 20180515193701 Running migration 20180530120000 INFO 2018-10-16T10:02:00Z: myscontroller_rs: Starting proxy server INFO 2018-10-16T10:02:00Z: myscontroller_rs::core::connection: Waiting for server connection -- 0.0.0.0:8080 ... INFO 2018-10-16T10:02:00Z: myscontroller_rs::core::connection: Connected to -- 0.0.0.0:8080 INFO 2018-10-16T10:02:00Z: myscontroller_rs::core::connection: Server listening on -- 0.0.0.0:5003

I found this path in the service file: /usr/local/bin/myscontroller-rs Should I move the executive and the conf.ini file into that folder?

And should I change the conf.ini file?

` [Gateway] type=TCP port=0.0.0.0:8080

[Controller] type=TCP port=0.0.0.0:5003 `

The naming is a little confusing to me, as they seem reversed. In MySensors the 'controller' is something like Domoticz, and the gateway is the MySensors gateway software at port 5003.

I should probably change the 0.0.0.0 into 127.0.0.1. But what does the software expect to find at port 8080? The Mozilla software? Doesn't that run on port 80?

Perhaps "Mozilla gateway" and MySensors gateway" would be clearer names?

And when I restart, the server is still running on port 0.0.0.0. Perhaps it would be possible to also change the IP address of the server in the conf.ini?

And will this server then just appear magically inside the Mozilla gateway add-ons list?

tsathishkumar commented 6 years ago

@flatsiedatsie very good progress. I will update the document to make it easier for others.

Regarding the naming:

As I mentioned in the readme, I started it as a proxy between MySGateway and an actual Controller (Homeassistant in my case). So, the names in conf.ini refers to them.

If you don't have a controller to which you want to forward the requests to, that's fine, you don't need to worry about that config.

Gateway usually listens at 5003, so configure that.

Regarding the Mozilla gateway - you don't need to configure that in conf.ini.

You would need to add the url of this controller, which starts on port 8888 in Mozilla IoT Gateway.

TL;DR:

Ignore [Controller] config (change port to unused one), configure [Gateway] properly and you are good to go.

Open Mozilla Gateway UI and add things adapter, and configure the url

Sometimes, you need to manually add things with URLs as below,

http://localhost:8888/0 http://localhost:8888/1

etc

tsathishkumar commented 6 years ago

I found this path in the service file: /usr/local/bin/myscontroller-rs

If you install the server through apt-get it would install in that location. I think you can run it from the repo itself for now. I'm still fighting with docker images to build for armv7hf. Once I get that working, I can build debian package, which you can directly install and run.

tsathishkumar commented 6 years ago

In Mozilla IoT Gateway follow the below steps to add Web Thing URL:

Settings -> Add-ons -> + -> Web Thing -> Configure -> http://localhost:8888

flatsiedatsie commented 6 years ago

I got it working! Very cool!

However, it seemed to add one device, and then it stopped adding other new ones.

Sometimes, you need to manually add things with URLs as below, http://localhost:8888/0 http://localhost:8888/1

I suspect I have to try that? Why is it sometimes? And would it be possible to have this be done automatically?

tsathishkumar commented 6 years ago

Do you get all the thing listed when you click add?

flatsiedatsie commented 6 years ago

I got two child-items when I clicked add (temperature sensor and light sensor). They were both part of the same device (smart alarm clock).

Interestingly those sensor-children each have an on-off switch attached to them. I suspect this is a function of the gateway (which would be great, very privacy friendly to be able to switch of the collection of data for a while this way).

After this first scan it's definitely not adding other devices automatically. I tried adding a very simple switch device, but 'scanning for new devices' doesn't do anything. I tried powering it on before and during the 'scanning' phase.

If I try 'add by url' on the 'add device' page, and then enter either of these I get "Web thing not found": http://localhost:8888/2 http://localhost:8888/1 http://localhost:8888/0 http://localhost:8888

Is there a place I can check the logs?

// the sensors also aren't showing any data. I tried turning their switches to on in the interface, but there was no difference.

I am funnily enough able to manually change the sensor value by dragging the slider. This could be another great privacy feature: temporarily override the actual data with fake data. "No mom, we really didn't throw a house party, check the logs!".

Clicking on the 'logs' button in the interface also doesn't show anything. This must be a gateway issue. Or perhaps there's just no data to show yet. Although I did drag the sensor to a manual position. Odd.

tsathishkumar commented 6 years ago

I understand the problem. Whenever you add more devices dynamically, the myscontroller-rs server has to be restarted to publish the new device's end point. This because of a limitation with web-thing crate. I will try to make it automated.

On Wed, Oct 17, 2018, 12:40 PM flatsiedatsie notifications@github.com wrote:

it's definitely not adding other devices automatically. I tried a very simple switch device, but 'scanning for new devices' doesn't do anything.

if I try 'add by url' on the 'add device' page, and then enter either of these I get "Web thing not found": http://localhost:8888/2 http://localhost:8888/1 http://localhost:8888/0 http://localhost:8888

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/tsathishkumar/MySController-rs/issues/6#issuecomment-430515330, or mute the thread https://github.com/notifications/unsubscribe-auth/ABaM5NdsftC7Ar2hPZZ-uZI-mBmri1H3ks5ultf-gaJpZM4W5kbX .

flatsiedatsie commented 6 years ago

Great!

Any idea why I don't see any data on the sensor show up?

By the way, I'd be happy to buy you a Raspberry Pi if that would help with development.

tsathishkumar commented 6 years ago

Any idea why I don't see any data on the sensor show up?

I don't quite get the question. You mean the sensor added to Mozilla Gateway via myscontroller-rs is not updated with latest data? If this is the case, could you check the logs of myscontroller-rs to see if you are receiving data from sensor?

By the way, I'd be happy to buy you a Raspberry Pi if that would help with development.

Thanks for the offer, we have a few of them in our office. It's just that I'm working in a remote place this week and don't have pi with me. :) and since we are running the server on a linux box, so didn't face all these issues. Getting feedback from you helps a lot. Thanks again.

flatsiedatsie commented 6 years ago

You mean the sensor added to Mozilla Gateway via myscontroller-rs is not updated with latest data?

Yes, that's what I mean.

Where is the myscontroller-rs log located?

And my pleasure :-)

tsathishkumar commented 6 years ago

By default, the logs are written to the console. You might want to redirect the output to a log file and run the server in background.

./target/debug/myscontroller-rs > /var/log/myscontroller-rs.log &

And use the below steps to build in release mode and run.

cargo build --release
./target/release/myscontroller-rs > /var/log/myscontroller-rs.log &
flatsiedatsie commented 6 years ago

You mean the browser console?

I'm not quite sure what you mean by running the server in the background. Doesn't myscontroller-rs already run in the background continuously? (I've set it up as a service)

Some more questions:

Will/could myscontroller-rs run on Arm6 too? Specifically the Raspberry Pi Zero W?

Does myscontroller-rs support MySensors goodies like..

tsathishkumar commented 6 years ago

Wow, that is quite a bunch of use cases there :)

None of them are being supported as of now. But should be easy to add support for first 2. I'll add them to my immediate TODO list.

Regarding 3rd requirement, I'll check the MySensors protocol, and see how we can implement that.

Will/could myscontroller-rs run on Arm6 too? Specifically the Raspberry Pi Zero W?

This should be possible, as the rust code can be cross compiled to arm6 as well as arm7.

You mean the browser console?

Nope, I was talking about the service log only. So if you have exported as service, then you should be able to see it in the journalctl I think.

tsathishkumar commented 6 years ago

I have created issues #8 #9 #10 and #11 to track the feature requests. Closing this issue for now.