フォト
2025年2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  
無料ブログはココログ

ツール・フリーソフト

2025年2月 1日 (土)

gitでサブモジュールを作成する

豊四季タイニーBASIC for Arduino STM32 のプロジェクト見直し中です。

本プロジェクトにて使用しているいくつかのGitHubリポジトリを、
サブモジュールとして分離しました。
その際のメモです。

■ サブモジュールの追加
git submodule add コマンドを使用します。

・実際の作業
git submodule add https://github.com/Tamakichi/SD.git ./libraries/SD
git submodule add https://github.com/Tamakichi/Arduino_STM32.git ./hardware/Arduino_STM32
git submodule add https://github.com/Tamakichi/ArduinoSTM32_TNTSC.git ./libraries/TNTSC
git submodule add https://github.com/Tamakichi/ArduinoSTM32_PS2Keyboard.git ./libraries/PS2Keyboard
git submodule add https://github.com/Tamakichi/ArduinoSTM32_TVout.git ./libraries/TTVout
git submodule add https://github.com/Tamakichi/ArduinoSTM32_TFlash.git ./libraries/TFlash
git submodule add https://github.com/Tamakichi/Arduino-SJISKanjiFont-Library-SD.git ./libraries/SDSfonts
git submodule add https://github.com/Tamakichi/libBitmap.git ./libraries/libBitmap
git submodule add https://github.com/Tamakichi/Arduino-SD-Bitmap.git ./libraries/sdbitmap
git submodule add https://github.com/Tamakichi/TTVoutfont.git ./libraries/TTVoutfonts
git submodule add https://github.com/Tamakichi/mcurses.git ./libraries/mcurses
git submodule add https://github.com/Tamakichi/Adafruit_SH1106_STM32.git ./libraries/Adafruit_SH1106_STM32

■ サブモジュールを含むリポジトリのクローンの方法
下記の本体のみのクローンでは、サブモジュールのフォルダ内は空の状態です。
git clone -b for_inport_submodules https://github.com/Tamakichi/ttbasic_arduino_stm32.git
※ 上記はブランチ for_inport_submodules のクローン

サブモジュールを含めてクローンする場合は、
git clone -b for_inport_submodules --recursive https://github.com/Tamakichi/ttbasic_arduino_stm32.git

とします。

または、本体だけのクローンに、サブモジュールを後からクローンする場合
git clone -b for_inport_submodules https://github.com/Tamakichi/ttbasic_arduino_stm32.git
cd ttbasic_arduino_stm32
git submodule init
git submodule update --recursive

■参考文献
git - 7.11 Git のさまざまなツール - サブモジュール
Qiita - git clone の際に submodule の clone を忘れたときの対処法

2024年11月17日 (日)

パッケージ管理システム Chocolateyの導入

Windows環境でもubuntuのようなパッケージ管理システムを使いたいと思い、Chocolatey を導入してみました。
そのメモです。

参考にしたサイト
・公式サイト Chocolatey https://chocolatey.org/
chocolatey 基本情報まとめ(Qiita@NaoyaOura氏)

Chocolateyのインストール
 公式サイトのインストール手順に従ってインストールします。

 ❖ Step 1 Chocolateyニュースレターの購読の登録(オプション)
  Chocolateyに関するお問い合わせをメールにて通知してくれるようです。
  とりあえず登録しました。

 ❖ Step 2 インストール方法の選択
  利用する環境別に次のカテゴリー別にインストール方法が異なるようです。
  ・Generic(一般)
   ここで一般とは、業務で組織的に利用することのようです。
  ・individual(個人使用)
  ・構成管理ツール配下での利用
   Ansible、Chef、PS DSC(PowerShell Desired State Configuration)、puppetなどの
   構成管理ツールと連動してパッケージ管理を行うようですたぶん.. (-_-)

  個人での利用のため「individual」の説明に従ってインストールを行います。

 ❖ Step 2-1 個人使用のためにChocolateyをインストール
  1. 管理者モードでシェルを起動する
   スタートメニューをマウス右クリックで「ターミナル(管理者)をクリックします。
    Shell
   この操作でPowerShellのコマンドプロンプト画面が表示されます。
    Ps
  2. powershell.exe でのインストール
   スクリプトの実行ポリシーに関する説明が記載されています。
   (参考: Qiita PowerShellの実行ポリシー変更@earthdiver1)
   それを踏まえた上で、「Now run the following command」に記載のコマンドをコピペして実行します。
     Set-ExecutionPolicy Bypass -Scope Process -Force;
     [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
     iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
  
   とりあえず、これでインストールされました。

パッケージの利用
 パッケージの利用は公式サイトの「Chocolatey Community」が表玄関のようです。
 ・Chocolatey Community(https://community.chocolatey.org)

 Find Packages をクリックすると利用可能なパッケージを検索することが出来ます。
 検索すると私が良く使うアプリを見つけることが出来ました。
  ・slack
  ・TeraTarm
  ・サクラエディタ




2020年3月 1日 (日)

DockerをWindows 10に導入しました

最近、開発環境一式がDockerのイメージで公開されていて便利そうなので、
メインで使っているPCに「Docker Desktop for Windows」をインストールしてみました。

Docker Desktop for Windows
00_20200301083401

インストールについては、下記の記事を参考にさせて頂きました。
大変参考になりました。記事公開者さんに感謝します。

  参考文献
  ■ Qiita 【入門】はじめての Docker Desktop for Windows のインストールと CentOS の仮想環境構築のセットアップ

また、Dockerの理解については、下記の記事が大変参考になりました。

  参考文献
  ■ さくらのナレッジ 連載:Docker入門(第一回)~Dockerとは何か、何が良いのか~

インストール後、公開されているいくつかのDockerイメージをダウンロードしてDockerコンテナを作成してみました。

WWWサーバー Linux nginx環境
01_20200301083501

この作業だけで、Windows 10上のWWWサーバーが構築出来ます。

02_20200301083501

そのほか、色々と試してみました。
Ubuntu、CentOS.. Windows上で異なるLinux環境が構築して利用出来るのはステキです。

03_20200301083501

組み込み系の環境もいくつかあるようでので、調べてみたいと思います。

 

2020年2月28日 (金)

Windows 10でisoイメージファイルをDVDに書き込む

先日のLicheePi Nanoの開発環境を構築するために、
余っていたノートPCにUbuntu 18.04.3 LTS をインストールすることにしました。

ひさびさにDVDを焼く作業をしました。
Ubuntu 18.04.3 LTS(ubuntu-ja-18.04.3-desktop-amd64.iso)をダウンロードし、
「さて、どうやってDVD-Rに焼こうか.. ?」
なにげにマウス右クリックすると、「ディスク イメージの書込み」のメニューが..
簡単に書き込めるようになってのね~、知りませんでした。

01_20200227164101

実際にやってみました。
ダウンロードしたisoファイルをマウス右クリックで「ディスクイメージ書込み」を選択し、
次の画面が表示されて、書込み用ドライブを確認して「書込み」押すだけです。

02_20200227163901

あとは進捗情報が表示され作業が進みます。

03_20200227163901

04_20200227163901

05_20200227163901

以前はフリーソフトの書込みツールをダウンロード使ってやっていました。
う~ん、Windows 10 なかなか やりますな。


2019年11月16日 (土)

TextsでWord文書をMarkdown形式に変換してみる

豊四季タイニーBASIC for Arduino機能拡張版 」用のリファレンスマニュアルは
Word 2016で作成し、PDF形式に変換して公開しているのですが、今一閲覧しにくいです。

オンラインドキュメント化したいと思い、「Texts」を使ってWord文書からMarkdown形式に変換してみました。

 ■ Texts  - Rich Editor for Plain Text
    公式サイト http://www.texts.io/

TextsはMarkdown形式の文書を作成できるエディタですが、
Word文書をインポートしてMarkdown形式に変換することが出来ます。

インストールして、初回起動時に「Pandoc」のダウンロードとインストールを要求されるので、
Pandocもインストールします。Pandocはコマンドラインで利用する変換ツールです。

01_20191116114501

さっそく、Word文書をインポートしてみました。
ざっくり変換結果を見ると、テキストに関しては欠落なく変換できているようです。
Wordの図形はダメみたいです。
表は比較的良好ですが、セル結合には対応出来ていないようです。1つ前に詰められてしまいます。

部分的に元のWord文書と比較してみます。

元のWord文書「1.15 美咲フォント対応」部分
06_20191116114901

変換したMarkdown形式の文書をTextsで表示
07_20191116114901


変換したMarkdown形式の文書のテキスト
08_20191116114901

インデントがあったり、スタイル指定していたり、文書を罫線で囲ったりしていると、
引用文(">")扱いとなるようです。
引用文(">")指定は、簡単な文字列置換を行ってプレーンテキスト化した方がよいでしょう。

完全には変換できないものの、変換作業の支援ツールとしては使えると思います。
変換自体は「Pandoc」を使ていると思います。

ただし、Markdown形式ではページの概念がないのでArsciiDoc形式に変換した方が良さそうです。
「Pandoc」単体での利用ではArsciiDoc形式への変換も出来るので、単体利用も調べたいと思います。



 

2019年11月 9日 (土)

「ichigoツール」をGithubにて公開しました

IchigoJam用プログラムアップ&ダウンローダ Ichigoツール をGitHubにて公開しました。
だいぶ前に作成したものですが、ブログからのダウンロードをGitHubの方に集約したいと思います。

 ・公開ページのリンク
    IchigoJam用プログラムアップ&ダウンローダ for Windows
    https://github.com/Tamakichi/VBIchigoTool

  ページには簡単な説明も記載しました。
  
  01_20191109125501

  02_20191109125501

ツールはVisual BASICで作成しています。
Visual Studio 2017/2019でプロジェクトを読み込んでビルド出来ることを確認しました。

MITライセンスにて公開しています。
ツール及びプログラムソースは自由お使い下さい。

他のツールも整理してアップしたいと思います。


2019/11/19 追記


ツールをV1.05に更新しました。
 ・変更点
   - IchigoJamからのプログラムのダウンロード時、IchigoJamで実行中のプログラムを終了させてから
     プログラムのダウンロードを行うように修正しました。
   - 動作確認のためのIchigoJam用のサンプルプログラムを追加しました。

ツールをV1.04に更新しました。
 ・変更点
   IchigoJamへのプログラムのアップロード時、IchigoJamで実行中のプログラムを終了させてから
   プログラムのアップロードを行うように修正しました。
   具体的には、アップロード前に[ESC]コードを送信しています。

2018年9月12日 (水)

ドキュメント作成にAsciiDocを利用してみる (3)

リファレンスマニュアルを作成していると
(1) 機能一覧での各機能の概要・インタフェースの記載
(2) 個別の機能詳細の記載

の記載が必要となるのですが、この(1)(2)は一部冗長的な部分があります。

冗長部は、仕様変更等に修正を継続的に行っていると、
やがて差異や用語の不統一等が発生したります。

これを、なんとか一元管理しないなぁと思い、

AsciiDocで何とかならないこと調べると、
  「タグを使った部分抽出」
が出来ることが分かりました。

下記のように、テキスト内にコメント文にて、tag:タグ名[] ~ end:タグ名[] で囲むことで、
// tag::タグ名[]
   抽出したい文章
// end::タグ名[]

別のAsciiDoc文書中にて
   include::テキストファイル名[tag=タグ名]
と記述することで、部分抽出して挿入することが出来ます。

次の文書は、別の文書から抽出してリストを作成しています。

[options="autowidth",cols="<,<"]
|===
^|コマンド・書式	^|概要
|
include::WAIT.adoc[tag=summary_1]
|
include::WAIT.adoc[tag=summary_2]

|
include::TICK.adoc[tag=summary_1]
|
include::TICK.adoc[tag=summary_2]

|
include::CLT.adoc[tag=summary_1]
|
include::CLT.adoc[tag=summary_2]

|
include::DATE.adoc[tag=summary_1]
|
include::DATE.adoc[tag=summary_2]

|
include::GETDATE.adoc[tag=summary_1]
|
include::GETDATE.adoc[tag=summary_2]

|
include::GETTIME.adoc[tag=summary_1]
|
include::GETTIME.adoc[tag=summary_2]

|
include::SETDATE.adoc[tag=summary_1]
|
include::SETDATE.adoc[tag=summary_2]

|===

HTMLに変換すると次のような感じになります。

コマンド・書式

概要

WAIT 待ち時間(ミリ秒)

時間待ち

TICK ()
TICK (モード)

経過時間取得

CLT

経過時間カウントのリセット

DATE

現在時刻の表示

GETDATE 年格納変数, 月格納変数, 日格納変数, 曜日格納変数

日付の取得

GETTIME 時格納変数 , 分格納変数 , 秒格納変数

時刻の取得

SETDATE 年,月,日,時,分,秒

時刻の設定

抽出される側のWAITコマンドの文書ファイルは次のように記述しています。

:sectnums:
[[WAIT]]
= WAIT 時間待ち
:sectnums!:

// tag::summary_2[]
時間待ち
// end::summary_2[]

== 【書式】
// tag::summary_1[]
*<<WAIT,WAIT>>* 待ち時間(ミリ秒)

// end::summary_1[] == 【引数】 待ち時間;; 0 ~ 32767 (単位 ミリ秒) == 【説明】 引数で指定した時間(ミリ秒単位)、時間待ち(ウェイト)を行います。 + 最大で32767ミリ秒(32.8秒)の時間待ちが可能です。 + 長い時間待ちを行う必要がある場合は、*<<TICK,TICK>>* 関数や *<<GETTIME,GETTIME>>* コマンドを使った方法を検討してください。 +

[%hardbreaks,icons=None,caption="注意"] WARNING: 時間待ち中はキー操作によるプログラム中断を行うことは出来ません。 短い時間の指定にてループ処理を行う等の対策を行ってください。 == 【エラーメッセージ】 Syntax error;; 文法エラー、書式と異なる利用を行った Illegal value;; 待ち時間に範囲外の値を指定した Overflow;; 指定した数値が-32768 ~ 32767を超えている == 【利用例】 .画面上の指定位置に時刻を1秒間隔で更新表示する ---- 10 SETDATE 2017,4,1,12,0,0 20 CLS 30 LOCATE 5,5 40 DATE 50 WAIT 1000 60 GOTO 30 ----

上記の文書はそのままHTMLに変換すると次のようになります。

1. WAIT 時間待ち

時間待ち

【書式】

WAIT 待ち時間(ミリ秒)

【引数】
待ち時間

0 ~ 32767 (単位 ミリ秒)

【説明】

引数で指定した時間(ミリ秒単位)、時間待ち(ウェイト)を行います。
最大で32767ミリ秒(32.8秒)の時間待ちが可能です。
長い時間待ちを行う必要がある場合は、TICK 関数や GETTIME コマンドを使った方法を検討してください。

注意
時間待ち中はキー操作によるプログラム中断を行うことは出来ません。
短い時間の指定にてループ処理を行う等の対策を行ってください。
【エラーメッセージ】
Syntax error

文法エラー、書式と異なる利用を行った

Illegal value

待ち時間に範囲外の値を指定した

Overflow

指定した数値が-32768 ~ 32767を超えている

【利用例】
画面上の指定位置に時刻を1秒間隔で更新表示する
10 SETDATE 2017,4,1,12,0,0
20 CLS
30 LOCATE 5,5
40 DATE
50 WAIT 1000
60 GOTO 30

こんな感じで、記載するファイル(場所)を一か所にして一元管理出来るので、
タグはとても便利な機能です。

タグの記述は、AsciiDoc文書以外のテキストファイルでも利用出来ます。
C言語等のプログラムソースのコメント内に記述を想定しているようです。
うまく利用すれば、プログラムソースからドキュメント作成できると思います。

2018年9月10日 (月)

ドキュメント作成にAsciiDocを利用してみる (2)

AsciiDocを使った、ドキュメント作成の続きです。

下記の記事を参考にして、本格的なPDF形式のマニュアルを作成してみました。
大変参考になりました。望んでいた通りのドキュメントが作成できました。
記事を書かれ、公開して頂きました方々には感謝いたします。

参考にした記事
  ・(1) asciidoctor-pdfで社内ドキュメントを書こう
  ・(2) asciidoc (asciidoctor) で索引(インデックス)を作る方法
  ・(3) Asciidoctor 文法クイックリファレンス(日本語訳)

作成したのは、「豊四季Tiny BASIC for Arduino STM32」の
コマンドリファレンスマニュアルです。

リファレンスマニュアルレベルになると、次の機能が必要となります。
  ・表紙の作成
  ・目次の自動作成
  ・章・節番号を自動で振る
  ・内部文書間の参照(キーワードをクリックするとその記事のジャンプする)の定義
  ・索引の作成(これは、なくてもよいかも)

このあたりの処理は、asciidoctor-pdf が賢く処理してくれます。

作成したマニュアルは次のような感じです。
結構、立派なものが作成できました。
今回の試行錯誤で、かなり使えると判断出来ました。


表紙
(Arrobat Reader で表示しています)

02

目次

03

本文(各コマンド毎のドキュメント)

01

ドキュメント内の水色の項目は、クリックするとマニュアル内の関連記事にジャンプ出来ます。

索引

04

Wordで文書作成するよりも、かなり楽ちんです。

作成したマニュアルの各コマンドの文書は別ファイルで作成し、
include文で集結しています。

下記のトップページと、PDFレイアウト定義ファイルをカスタマイズすることで、
分割した文書を部品的に利用して、比較的簡単に構成を変更することが出来ます。

集結用のトップページの定義
= 豊四季Tiny BASIC for Arduino STM32 V0.86 リファレンスマニュアル
たま吉さん 
v0.01(Draft) 2018/9/10
// 属性定義
:experimental:
:module:    豊四季Tiny BASIC for Arduino STM32
:Author:    たま吉さん
:Email:     tamacat2014@gmail.com
:Date:      2018/09/04
:Revision:  R01
:lang: ja
:doctype: book
:description:
:docname: 豊四季Tiny BASIC for Arduino STM32 リファレンスマニュアル
// ラベルの日本語設定
:toc-title: 目次
:preface-title: はじめに
:appendix-caption: 付録
:caution-caption: 注意
:example-caption: 例
:figure-caption: 図
:important-caption: 重要
:last-update-label: 最終更新
//:listing-caption: リスト
:manname-title: 名前
:note-caption: 注記
:preface-title: まえがき
:table-caption: 表
:tip-caption: ヒント
:toc-title: 目次
:untitled-label: 無題
:version-label: バージョン
:warning-caption: 警告
// 見出し設定
:sectnums:
:chapter-label: 
// 目次作成
:toc:
:toclevels: 3

// 定数リファレンスの組み込み
include::定数.adoc[]
<<<<

// 各コマンドのリファレンスマニュアルの組み込み
:sectnums:
== コマンドリファレンス
:sectnums!:
include::ABS.adoc[]
<<<<
include::ANA.adoc[]
<<<<
include::ASC.adoc[]
<<<<
include::ATTR.adoc[]
<<<<
include::BIN.adoc[]
<<<<
include::BITMAP.adoc[]
<<<<
include::BLOAD.adoc[]
<<<<
include::BSAVE.adoc[]
<<<<
include::BYTE.adoc[]
<<<<
include::CAT.adoc[]
<<<<
include::CHR.adoc[]
<<<<
include::CIRCLE.adoc[]
<<<<
include::CLS.adoc[]
<<<<
include::CLT.adoc[]
<<<<
include::CLV.adoc[]
<<<<
include::COLOR.adoc[]
<<<<
include::CONFIG.adoc[]
<<<<
include::console.adoc[]
<<<<
include::CSCROLL.adoc[]
<<<<
include::DATE.adoc[]
<<<<
include::DELETE.adoc[]
<<<<
include::DMP.adoc[]
<<<<
include::DWBMP.adoc[]
<<<<
include::EEPFORMAT.adoc[]
<<<<
include::EEPREAD.adoc[]
<<<<
include::EEPWRITE.adoc[]
<<<<
include::END.adoc[]
<<<<
include::ERASE.adoc[]
<<<<
include::EXPORT.adoc[]
<<<<
include::FILES.adoc[]
<<<<
include::FOR_TO_NEXT.adoc[]
<<<<
include::FREE.adoc[]
<<<<
include::GETDATE.adoc[]
<<<<
include::GETS.adoc[]
<<<<
include::GETTIME.adoc[]
<<<<
include::GINP.adoc[]
<<<<
include::GOSUB.adoc[]
<<<<
include::GOTO.adoc[]
<<<<
include::GPEEK.adoc[]
<<<<
include::GPIO.adoc[]
<<<<
include::GPRINT.adoc[]
<<<<
include::GSCROLL.adoc[]
<<<<
include::HEX.adoc[]
<<<<
include::I2CR.adoc[]
<<<<
include::I2CW.adoc[]
<<<<
include::IF.adoc[]
<<<<
include::IN.adoc[]
<<<<
include::INKEY.adoc[]
<<<<
include::INPUT.adoc[]
<<<<
include::LDBMP.adoc[]
<<<<
include::LEN.adoc[]
<<<<
include::LET.adoc[]
<<<<
include::LINE.adoc[]
<<<<
include::LIST.adoc[]
<<<<
include::LOAD.adoc[]
<<<<
include::LOCATE.adoc[]
<<<<
include::LRUN.adoc[]
<<<<
include::MAP.adoc[]
<<<<
include::MKDIR.adoc[]
<<<<
include::NEW.adoc[]
<<<<
include::NOTONE.adoc[]
<<<<
include::OUT.adoc[]
<<<<
include::PEEK.adoc[]
<<<<
include::PLAY.adoc[]
<<<<
include::POKE.adoc[]
<<<<
include::POUT.adoc[]
<<<<
include::PRINT.adoc[]
<<<<
include::PSET.adoc[]
<<<<
include::PULSEIN.adoc[]
<<<<
include::RECT.adoc[]
<<<<
include::REDRAW.adoc[]
<<<<
include::REM.adoc[]
<<<<
include::REMOVE.adoc[]
<<<<
include::RENUM.adoc[]
<<<<
include::RETURN.adoc[]
<<<<
include::RGB.adoc[]
<<<<
include::RMDIR.adoc[]
<<<<
include::RND.adoc[]
<<<<
include::RUN.adoc[]
<<<<
include::SAVE.adoc[]
<<<<
include::SAVECONFIG.adoc[]
<<<<
include::SCLOSE.adoc[]
<<<<
include::SCREEN.adoc[]
<<<<
include::SETDATE.adoc[]
<<<<
include::SHIFTIN.adoc[]
<<<<
include::SHIFTOUT.adoc[]
<<<<
include::SMODE.adoc[]
<<<<
include::SOPEN.adoc[]
<<<<
include::SPRINT.adoc[]
<<<<
include::SREAD.adoc[]
<<<<
include::SREADY.adoc[]
<<<<
include::STR.adoc[]
<<<<
include::SWRITE.adoc[]
<<<<
include::TEMPO.adoc[]
<<<<
include::TICK.adoc[]
<<<<
include::TONE.adoc[]
<<<<
include::VPEEK.adoc[]
<<<<
include::WAIT.adoc[]
<<<<
include::WIDTH.adoc[]
<<<<

[index]
== 索引

追記

HTML形式でも出力してみました。

05

左側の目次の幅をもう少し広げたいところです。
PDF形式の出力とは、カスタマイズ方法が異なるようです。
スタイルシートを編集して、paddingを広げればよさそうですが、
何か流儀があるかのか、調査中です。

2018年9月 6日 (木)

ドキュメント作成にAsciiDocを利用してみる

作成したツール等のマニュアルの作成にはいつも苦労します。
WordMarkdown記述で作成しているのですが、もう少しいい方法が無いかと
調べていると、「AsciiDocがいい感じ」と思い、最近使い始めました。

AsciiDocは、Markdownと同じような感じの軽量マークアップ言語です。
テキスト主体で作成します。

良いと思うこと
・インクルド文で、細切れの文書やデータをかき集めて、文書が作成出来る。
・コメントの利用や条件付き文書変換等が出来る。
Markdownのような方言がない。思った通りに表示出来る。

特にやりたいことは、
ドキュメントを2層構造にして、目的別・利用者別に文書を結合・再構成です。

とりあえず、「豊四季TinyBASIC for Arduino STM32」のTONEコマンドの
ドキュメントをAsciiDocで作成してみました。

元の文書(Word 2013で作成)

Word


エディタのチョイス

AsciiDocでの文書作成は、テキストエディタがあれば出来ますが、ビュアーも必要です。
色々調べ、今回は「Visual Studio Code」を使ってみました。
Visual Studio Code」に拡張機能 AsciiDocを組み込んで利用します。

Visual Studio Code による AsciiDoc文書の作成(クリックで拡大表示)
Vsc

左がテキストエディタ、右がビュアーです。
ビュアーはテキストの修正に応じて、リアルタイムに更新されます。

とりあえず、Wordの文書をテキスト形式で「Visual Studio Code」にコピペし再利用。
、「Visual Studio Code」のテキスト置換機能のを有効に使って、項目名等を
AsciiDocの見出しに変換します。

"▢ 項目名" => "=== 【項目名】" に変換

Vsc_2

完成したAsciiDocの記述は次のような感じです。

TONE.adoc

//
// 作成日      2018/09/06
//

include::include\common.adoc[]

== TONE  単音出力

=== 【書式】
[%hardbreaks]
*TONE* 周波数
*TONE* 周波数, 出力期間

=== 【引数】
周波数;;	0 ~ 32767 (Hz)  	0の場合は消音
出力期間;;	0 ~ 32767 (ミリ秒)  0の場合は、継続再生

=== 【説明】
*PB9* ピンより、指定した周波数のパルス出力(デューティ比50%)を行います。 +
*PB9* ピンに圧電スピーカー(圧電サウンダ)を接続すること音を出すことが出来ます。 +

出力期間の指定がある場合は、その期間パスルを出力します(ミリ秒単位)。 +
出力期間の指定がある場合、出力完了待ちを行います。 +
出力期間の指定がない場合は、*NOTONE* コマンドで停止指示をするまでパスルを出力し続けます。 +
( *TONE* 0は *NOTONE* と等価です) +

.音階・周波数対応表
[format="csv",options="autowidth",cols="^,^,^,^,^,^,^,^,^,^,^,^,^"]
|===
include::csv/tone.csv[]
|===

=== 【エラーメッセージ】
Syntax error;;	文法エラー、書式と異なる利用を行った
Overflow;;		指定した数値が-32768 ~ 32767を超えている

=== 【利用例】
.スペースキーを押したら音を鳴らす
----
10 IF INKEY() = 32 TONE 800,50
20 GOTO 10
----

やはり、include文が利用出来ると便利です。
「音階・周波数対応表」の部分は、CSV形式の別ファイルを読み込んでいます。

読み込んでいる csv/tone.csv ファイル

,ド,ド♯,レ,レ♯,ミ,ファ,ファ♯,ソ,ソ♯,ラ,ラ♯,シ
1,33,35,37,39,41,44,46,49,52,55,58,62
2,65,69,73,78,82,87,93,98,104,110,117,123
3,131,139,147,156,165,175,185,196,208,220,233,247
4,262,277,294,311,330,349,370,392,415,440,466,494
5,523,554,587,622,659,698,740,784,831,880,932,988
6,1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976
7,2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,3951
8,4186,4435,4699,4978,5274,5588,5920,6272,6643,7040,7459,7902

これで表の作成が非常に楽出来ます。


作成した文書の公開


GitHUBAsciiDocに対応しており、若干制限がありますが簡単に公開出来ます。
gitsに上記のテキストファイルをアップロードして、表示してみると、
  ちゃんと表示出来ました..
と言いたいと所ですが、残念ながらinclude文が使えないようです。
(使えないと判断した根拠のソース : Asciidoctor: support include directives for other asciidoc files #1095)

仕方が無く、音階・周波数の部分は、CSVデータを直接記述する形式に修正しました。

修正部分(csvデータを直接埋め込み)

.音階・周波数対応表
[format="csv",options="autowidth",cols="^,^,^,^,^,^,^,^,^,^,^,^,^"]
|===
//include::csv/tone.csv[]
,ド,ド♯,レ,レ♯,ミ,ファ,ファ♯,ソ,ソ♯,ラ,ラ♯,シ
1,33,35,37,39,41,44,46,49,52,55,58,62
2,65,69,73,78,82,87,93,98,104,110,117,123
3,131,139,147,156,165,175,185,196,208,220,233,247
4,262,277,294,311,330,349,370,392,415,440,466,494
5,523,554,587,622,659,698,740,784,831,880,932,988
6,1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976
7,2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,3951
8,4186,4435,4699,4978,5274,5588,5920,6272,6643,7040,7459,7902
|===


作成した文書のリンク
https://gist.github.com/Tamakichi/cbc69f27ffb2d2b0b944f3529a2797f2

gists
上の文書は、ブログの記事内に埋め込むことが出来ます。
上記のリンクの文書を埋め込んでみます。

Gists

赤い枠のコードをブログの記事に埋め込みます。

こんな感じ(ちょっと大きすぎかな?)

AsciiDocは、まだまだ使い始めたばかりですが、
とりあえずマニュアル一冊作成してみて、その過程で色々と試してみたいと思います。

AsciiDocの文書作成で参考にした記事・サイト
脱Word、脱Markdown、asciidocでドキュメント作成する際のアレコレ
Asciidoctor 文法クイックリファレンス(日本語訳)
AsciiDoc User Guide

公式サイト
Asciidoctor
Asciidoctor User Manual

2014年11月15日 (土)

Windows 8.1でPerlを使う

Windows 8.1 でPerlを利用したいと思い ActivePerlをインストールしました。
プログラミング環境として Perlを始めよう! をインストールしました。

Perlはあまり使い込んでいないのですがあると便利。早速動作確認をしてみます。

01

なぜか、日本語が文字化けします。
デフォルトのUTF-8形式ではなくシフトJISで保存し直して試すとちゃんと表示できました。

02

03

うーん、どういうことだろう
直接コマンドプロプト上で実行して確認してみます。

04

やはり同じ現象が発生。

調べてみると、「Perl:日本語対応」に答えがありました。
どうも、Windows上ではシフトJISを使う分には文字化けは発生しないようです。
シフトJISがデフォルト?

UTF-8を使うには明示的にエンコードの指定が必要となるようです。

05

今度はちゃんと動作しました。保存時のコード指定、Linux上で作成したPerlプログラムを
Windowsで動かす際はちょっと注意が必要ですね。

エディタのPerlを始めよう!はシンプルで使いやすいです。開発者に感謝!!

追記 2014/11/16
パッケージを追加しようと、付属のppmコマンド実行すると動きません。
どうも、ユーザーディレクトリにマルチバイト文字を使っているとダメっぽいです。
ppm用のディレクトをDドライブに作成(D:\perl\ppm)して、
cmd画面で、SET ACTIVEPERL_PPM_HOME=D:\Perl\ppm
としてからppmコマンドを実行すると起動出来ました。

参考にしたサイト男たちの群青 ActivePerl の ppm が起動しない

シリアル通信パッケージを入れようとしたけど、Active Perlの64ビット版だと
Win32-SerialPortが利用出来ないと判明。32ビット版に変更した方が良さそうみたい。

 

より以前の記事一覧