こんにちは、針山散策を今日もほのぼのと行います。
今回は、RTOSリアルタイムOSで扱うイベント生成について注意点について記載します。
イベントというのは、ソフトウェアだと”きっかけ”で言い換えることができると思います。
モータ制御で言うと、原点にあるセンサーに反応したら原点到達のイベントを
自分タスク以外の他タスク投げる。
みたいに使います。
よく企業で状態遷移表を作成しますが、その際、イベントと状態の関係が表示されていると思います。
そのイベントのことです。
このイベントを立てるのはソースによりますが、今回の場合はイベント用の変数に代入する方式だったので
イベントが同時に2つ発生することは想定していませんでした。
仮に複数イベントサポートする場合は
1 ビット単位でイベントを持たせる。
2 優先度を設計しておく
などしておく必要があります。
さて、イベントについてですが、ユーザソースで、イベントを立てる(起床する)のにif()~if()を連発していました。
これだと、1番目のif内でイベントを立てていたりすると、その後のifで、もしイベントが立てるようなことがあると、
上書きされてしまいます。
(実際にセンサの情報が上がったよイベントを立てていたのに他のイベントで上書きされていました。)
if()~else if()~…などでイベントが発生していないことを条件に加えるようにしましょう。
[今日のひとこと]
9/21、9/22は世間はお休みなのに
私の所属する会社は営業していました。
休日扱いではないのでお金は追加でもらえるわけでもなく、
残業規制で月10時間しか働けません。
副業解禁を期待して登録者数増やせるようにしたいです。
管首相様、どうか副業規制強制解除お願いします。
それにより、ブラック企業から抜け出せる人が多く出てきます。