無料ブログはココログ

« Arduino nano の互換性 | トップページ | DCCアンケート »

2021年11月11日 (木)

C-SizeDCCの自動運転

C-SizeDCCの自動運転フラグ

自動運転センサーディテクタはスケッチのロコアドレスを255にすると、C-SizeDCCの選択アドレスを使って運転します。最大スピードもC-SizeDCCのスピード設定で制限します。

void readIIC(byte inByte, byte inCmd, word inAddr, byte inDat, byte inStat)
{
 if (((inByte == 3) && (aLocAddr == 255)) || (aLocAddr == gLocAddress)) {
  bIICLocalAddr = true; // use mintcan address and speed
 }

半自動的な運転が可能ですが、停車時にうっかりスピードツマミに触るとロコが暴走する危険がありました。そこで、C-SizeDCCの選択アドレスで自動運転している時は、手動操作によるDCCパケットを送らない事にしました。

void changedTargetSpeed(word inAddr, const byte inSpeed)
{
 if (bIICLocalAddr == false) {
  DSCore.SetLocoSpeedEx(gLocProtocol + inAddr, ((word)inSpeed << 3), gSpeedStep);
 }

自動運転アドレスとC-SizeDCCのアドレスが同じ場合も同様です。2バイトアドレスの明確な区分けを行っていないので、自動運転スケッチで実アドレス255のロコを運転する時は、C-SizeDCC側も255を選択しないといけません。
これで、2列車のアドレスをRailComで読み出して自動運転する事が可能になりました。RailComアドレスリーダーを実用レベルに仕上げる課題は残ったままです。

« Arduino nano の互換性 | トップページ | DCCアンケート »

自動運転」カテゴリの記事

コメント

この記事へのコメントは終了しました。