2022-01-01から1ヶ月間の記事一覧

RustでPID制御を書いてみる。はじめに

今回から何回かに分けて「RustでPID制御を書く」ということをやってみようと思います。 しかし、PID制御を書くと言っても、実際に何かマイコンボードとモーターを用意して組み込みプログラミングで、、、というわけではなく、本の内容を参考にしてプログラム…

Rustでplottersを使ってグラフのアニメーションを作る

今回は、以前からやりたいなぁと思っていた、Rustでのグラフのアニメーションが出来たのでその備忘を書き残します。 Pythonではmatplotlibで簡単に出来ますが、Rustではplottersというグラフ描画ライブラリを使用して実現しました。 以下がコードです。 // p…

Rustのclapにおける引数定義とhelp内のUSAGE表記の調査

今回は、Rustのclapについて、コマンドライン引数の定義によってhelpの際に出てくるUSAGEの書かれ方がどう変わるかを調査してみました。 なお、tomlファイルの依存関係は以下のように記載しています。 [dependencies] clap = { version = "3.0.6", features …

Rustで標準入力から複数行を入力するための方法

今回はRustで標準入力で複数行を入力しようと試行錯誤した時のことを備忘として書き残します。 Rustで標準入力しようと思った時によく出てくるのは以下のようなものです fn main() { let mut buf = String::new(); let stdin = std::io::stdin(); stdin.read…

Rustのmatch文で、ある条件では何も処理したくない時の書き方

今回は、とても些細な所なんですが分からかった点がようやく分かったので、その備忘として書き残します。 何が分からなかったかというと、表題のように「Rustのmatch文で何もさせたくない時にどうするか」です。 match文は match num { 1 => ..., 2 | 3 => .…

RustでCLI作成勉強~エラーメッセージには自身のファイル名も書く~

※まずはじめに、私の開発環境がWindowsであり、そのためWindows環境での言葉になってますがご容赦ください 最近簡単なCLIツールならRustで作れるようになろうと勉強しているのですが、今回は簡単なCLIツールを作り、それをコマンドプロンプトで動かすとどう…

PyO3を使ってPythonからRustの関数を呼び出してみる

今回は、表題の通り、PyO3を使ってPythonからRustの関数を呼び出してみたのでその備忘録です。 初めは難しいのかなぁと思いましたが、やってみると結構簡単に出来ました(まだ簡単なところしかやってないからかもしれませんが、笑) まずはコマンドプロンプ…

Rustで入力されたものを処理するプログラム(16進出力プログラム)

今回は、Rustで標準入力、引数処理の勉強として作成したプログラムを公開します。 エラー処理など甘い箇所がありますが、勉強の一環としての作成なのでご容赦ください //! 入力された数値を16進表記にして1行に1つずつ出力するプログラム //! //! # Note //!…

RustでPathの拡張子に応じて処理を変える

今回は、RustでPathの拡張子を解析し、その拡張子に応じて処理を変える方法を調査してた際の備忘録です。 例えば、パスがあり、その拡張子に応じて出力するメッセージを変えたいとします。 .txt ならtext fileと表示し、bmpならbitmap fileと表示する、みた…

Rustでstd::process::Commandを使ってみたらコマンドプロンプトの文字コードにハマった話

今回は表題の通り、Rustでstd::process::Commandを使って簡単な外部コマンドを実行してみようと挑戦した時のことを書き残します。 ちなみに、私の環境はwindowsです。 Rustでは標準ライブラリとして外部コマンド(windowsだとコマンドプロントを通して使う"d…

QEMUを使ってRustのOSサンプルコードを動かしてみる

rustでOS作りの勉強しようと思うとき、必要になるのがqemuというオープンソースソフトウェアのプロセッサエミュレータです。 このqemuをwindowsでインストールし、Rustで書かれたOSサンプルコードを動かした時の備忘録です。 。。。といっても、下のリンク先…