aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2022-03-18 14:59:34 +0900
committer坂本 貴史 <o-takashi@sakamocchi.jp>2022-03-18 15:15:25 +0900
commit1e5a789c75cc387eea9f7659dfdd31fbb043dca0 (patch)
tree1ac8ce66605ad4f37d581c3a3f87fd2433cced9c
parentdc12db077ab0dffd1f98725b055924a4a56075bf (diff)
downloadhinawa-rs-1e5a789c75cc387eea9f7659dfdd31fbb043dca0.tar.gz
hinawa: move example code
This commit moves example code from README to simplify it. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
-rw-r--r--README.rst42
-rw-r--r--hinawa/examples/read-quadlet.rs33
2 files changed, 37 insertions, 38 deletions
diff --git a/README.rst b/README.rst
index bb2d175..870d05e 100644
--- a/README.rst
+++ b/README.rst
@@ -36,44 +36,10 @@ Dependencies
* ``glib`` >= 0.15
* FFI crate (``hinawa-sys``)
-Sample code
-===========
-
-Read 1 quadlet from address ``0xfffff0000404`` on the node represented as ``/dev/fw0`` ::
-
- extern crate hinawa;
- extern crate glib;
-
- use hinawa::FwNodeExt;
- use hinawa::FwReqExtManual;
-
-
- fn main() {
- let node = hinawa::FwNode::new();
- node.open("/dev/fw0").unwrap();
-
- let ctx = glib::MainContext::new();
- let src = node.create_source().unwrap();
- src.attach(Some(&ctx));
-
- let dispatcher = glib::MainLoop::new(Some(&ctx), false);
- let cntr = std::sync::Arc::new(dispatcher);
- let d = cntr.clone();
- let th = std::thread::spawn(move|| {
- d.run();
- ()
- });
-
- let req = hinawa::FwReq::new();
- let mut frames = [0;4];
- req.transaction(&node, FwTcode::ReadQuadletRequest, 0xfffff0000404, 4,
- &mut frames).unwrap();
-
- assert_eq!(0x31333934, u32::from_be_bytes(frames));
-
- cntr.quit();
- th.join().unwrap();
- }
+Examples
+========
+
+See ``hinawa/examples`` directory.
How to generate FFI and API crates
==================================
diff --git a/hinawa/examples/read-quadlet.rs b/hinawa/examples/read-quadlet.rs
new file mode 100644
index 0000000..7a044aa
--- /dev/null
+++ b/hinawa/examples/read-quadlet.rs
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: MIT
+use glib::*;
+use hinawa::{traits::*, *};
+
+const PATH: &str = "/dev/fw1";
+const OFFSET: u64 = 0xfffff0000404;
+
+fn main() {
+ let node = FwNode::new();
+ node.open(PATH).unwrap();
+
+ let ctx = MainContext::new();
+ let src = node.create_source().unwrap();
+ src.attach(Some(&ctx));
+
+ let dispatcher = MainLoop::new(Some(&ctx), false);
+ let cntr = std::sync::Arc::new(dispatcher);
+ let d = cntr.clone();
+ let th = std::thread::spawn(move || {
+ d.run();
+ ()
+ });
+
+ let req = hinawa::FwReq::new();
+ let mut frames = [0; 4];
+ req.transaction(&node, FwTcode::ReadQuadletRequest, OFFSET, 4, &mut frames)
+ .unwrap();
+
+ assert_eq!(0x31333934, u32::from_be_bytes(frames));
+
+ cntr.quit();
+ th.join().unwrap();
+}