ハゲタカ綿棒

個人的なメモ。参考にする際は自己責任でお願いします。

CANプロトコルについて

CANについて

  • Controller Area Network
  • マルチマスタ方式
  • イベントドリブン
  • バス型のネットワークトポロジ

データフレーム

  • SOF(Start Of Frame)
    • 送信開始
  • アービトレーション・フィールド
    • IDとRTRで構成
  • コントロール・フィールド
    • データ長コードと予約ビット
  • データ・フィールド
    • ユーザー定義領域
  • CRC(Cyclic Redundancy Check)
    • データの誤りチェック
  • ACK
    • 正しく受信されたた場合に受信ノードから返ってくる
    • 受信ノードがドミナントに変換することで、送信側は正常に受信できたことを知る
  • EOF(End Of Frame)
    • フレームの終了

f:id:yasudanaoto:20170918162105p:plain

自己診断機能(OBD2)

  • On-Board Diagnostics
  • 自動車に搭載されている診断機能
  • ピン配置、故障コードはDLC(Data Link Coupler)と呼ばれる統一規格
  • 故障コードはDTC(Diagnostic Trouble Code)と呼ばれる
    • アルファベット1文字と4ケタの数字
    • CANに関するDTCは"U"から始まる

OSI参照モデル

  • Open System Interconnection参照モデル
  • 異なる装置間の通信機能を7つの階層構造であらわしたもの
  • CANでは物理層データリンク層のみサポートしている
  • 送信時
    • 第7層から順にデータを付与していき、第1層で送信する
  • 受信時
    • 第1層で受信したデータから順に情報をチェック(削除)していき、第7層に伝える

f:id:yasudanaoto:20170918142137p:plain

第1層 物理層

  • データリンク層からのデータ(ビットデータ)を電気信号に変換する
  • 受信した電気信号をビットデータに変換する
  • ピン、コネクタ、ケーブルの形状や特性を管理する

第2層 データリンク層

  • 直接接続された通信機器同士の通信を管理する
    • 例)PCとルータ間の通信

第3層 ネットワーク層

  • 目的とする機器との通信を管理する
    • 例)PC1-ルータ-PC2のときのPC1とPC2の通信
  • 送信パケットに、送信先IPアドレスを設定したヘッダを付ける

第4層 トランスポート層

  • 通信の信頼性の管理する
  • パケットが欠けるなどの通信エラーの検出する

第5層 セッション層

  • 通信経路を確立する
  • 通信開始と終了のタイミングを管理する

第6層 プレゼンテーション層

  • PC上のデータとネットワーク上のデータ形式の変換
    • ファイル⇔バイナリ

第7層 アプリケーション層

  • アプリケーションと下位層からのデータの変換

参考

MarkdowonのHTML変換時の画像埋め込み

MarkdowonのHTML変換時の画像埋め込み

日付

2017/2/12

目的

  • Markdowonに画像を表示したい場合に、リンクではなくbase64にして埋め込む方法を記載する。

概要・背景

  • MarkdowonをHTML変換した際に画像が含まれていてると、別ファイルとして画像を持つ必要がある。
  • 一つの記事に対して複数ファイルを持ちたくない。

手順

pngbase64に変換する手順を記載する。
1. 元画像を以下のcmdでbase64に変換する。
C:\Users>certutil -encode filename.png filename.txt
以下のようなtxtファイルが出来上がる

  1. 最初と最後の行を削除し、改行を削除する
  1. Markdownファイルに以下の内容を記載する。
以下のように画像が表示される。   

感想

base64生成からMarkdown貼り付け内容への変換はバッチ処理にしたい。

参考

htmlでMarkdown記述 + Base64エンコードでドキュメント作成(marked.js)
画像ファイルをBase64形式に変換するスクリプト
テキストエディタで改行を置換する方法

PandocのPortableバージョン作成

PandocのPortableバージョン作成

日時

2017/2/12

目的

Portableバージョンの作成手順をメモする。

概要・背景

  • Pandocではmarkdownで記載した文書をhtmlなどに変換できるが、 インストール版(msi)しか公開されておらず、会社などではインストールが難しい。
  • このインストーラでインストールすると、ユーザディレクトリの %LOCALAPPDATA%\Pandoc\(もしくは%ProgramFiles(x86)%\Pandoc\) に実行ファイルを展開してPATHを通してくるが、 システムディレクトリにファイルを置いたりしないようなので、本来PATHやレジストリを汚す必要がない。
  • msiは"MicroSoft windows Installer"の略で、msiexec.exe(windowsに標準でインストール)で展開することが可能である。

手順

  • 以下をcmdで実行すると、msiが展開され、実行ファイルを取り出すことができる。
    • Pandocのインストーラpandoc-1.19.2.1-windows.msi
    • 展開先は"%TEMP%\pandoc\"(展開実行前に作成する必要がある)
mkdir "%TEMP%\pandoc\"
C:\Users>start /WAIT msiexec.exe /a pandoc-1.19.2.1-windows.msi /qn targetdir="%TEMP%\pandoc\"

検証

  • この文書をwordファイルへ変換してみた。
  • 以下をPowerShellで実行する。
    • pandocへのフルパスが必要
    • htmlに変換したい場合は、下記のdocxhtmlにすればよい。
pandoc.exe test.md -t docx -o test.docx

docxの仕上がりがよろしくない・・・

参考

Aqua Ware つぶやきブログ
nanoblog