SSブログ

F28まで押せるコントローラの検討 その4 [DCCコントローラ]

 昨日は、そろそろ蛍の季節かなあと思って、近く(と言っても歩いて40分ぐらいかかるところ)の山まで見に行きましたが、まだのようでした。4匹ぐらいしかいませんでした。例年通り6月のはじめ(来週末)に見に行こうと思います。
 で、うちにも10万円の申込書が来ました。家族には、「世帯主として全部私の懐に入れます」宣言をしておきましたが、まあ、一時帰休のせいで、わりと似たような額の給料が減りそうですので、生活費に消えるでしょう・・・。早速、申し込んでおきました。マスクもそうですが、いつ来るのやら。
 あとは緊急事態宣言が解除されたので、近くの海まで行ってみました。
re_IMG_20200530_164108.jpg

 で、本題ですが、F28まで押せるコントローラを作るので、Fujigaya2CheapControllerもLongAddress対応、F28まで押せて、アクセサリも使えるようにしよう!というコンセプトで改造を開始しました。
 以前にYaasanさんからショートアドレスだけでファンクションもF4ぐらいまでなら簡単だけど、全部入りは難しい。なぜならDCCの仕様がツギハギだから!という話を聞いていました。
 今回、作りながら、(そして、まだ終わっていませんが)よーくわかりました。
 まずは、アドレス。
 命令の送信は 
 [プリアンブル] [アドレス] [命令] [チェックサム]という順番で送るというのが、大まかな流れなのですが、アドレスにはショートアドレスと、ロングアドレスがあります。それぞれのアドレスのとき
Aがアドレスのビットで、

ショートアドレス:[0AAA AAAA] 1~127を送信可能
ロングアドレス:[11AA AAAA] [AAAA AAAA] 2バイト使って128以降?のアドレスを送信可能

とすでにここまでで、アドレスによって送信Byte数が違います。(なんか128~XXXがdigitraxと、メルクリンとかで違うという話があるらしいが知りません)
次にそのあとのF0~F28 の命令送信です。Dの各ビットが1でOn,0でOffとなるのですが、ツギハギっぷりに磨きがかかって、

F0-F4:[100DDDDD]  でなぜか並びがF0F4F3F2F1
F5-F8:[1011DDDD] 並びはF8F7F6F5
F9-F12:[1010DDDD] 並びはF12F11F10F9
F13-F20:[11011110] [DDDDDDDD] 並びはF20・・・F13
F21-F28:[11011111] [DDDDDDDD] 並びはF28・・・F21

と、カオスです。アドレス種類*ファンクション種類で、パケット数が2~4Byteと変わってしまうことがわかりましたので、現状固定バイトで作っている送信部分を全体的に作り直すことにしました。
今回からGitHubでVersion管理をするかと思って、使い始めていますが、変更コメントの入れ方が適当すぎて、人に見せられないのですが、Ayanoさんのみたら、潔くnewとしか書いていませんでしたね。まあ、人と共作するわけじゃないし、時々後戻りできれば良いだけだから、私もそうしようかなあと思いました。
 で、j今日は力尽きたので、明日アクセサリ制御部分を作ろうかなあと思っています。
 
コメント(0) 

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。