IoT&HomeServer計画まとめ(1)
2020-06-12 2020-07-02
そろそろまとめましょう
長らく技術検討したりしてきましたが、そろそろまとめに入ります。
まとまったら、いよいよα版完成へと進みます。
まとめる順番は、IoTコントローラ➡ホームサーバ➡WebSocketとWebサーバ➡スマフォ側のjavascript
みたいな感じになるかなー。
Pythonでの基本的なつくり方
基本的なつくりかたは、こんなです。
import なんだり
import なんだり
def なんだり
def なんだり
if __name__ == '__main__':
メインクラス生成 C
サブプロセス実行
C.run()
if __ name __ == ‘main‘: 以下で、【どのように使いたいか 】 を決めて実装します。
これが、ことのほか重要で、ここが狂うと、メンテナンスが非常にやりにくくなります。
これをやらせるのはこれ。
ここの階層はここ。
これを呼ぶのはこっから。
こういうことが、作る人の思想が反映される気がします。
IoTコントローラ。まとめ方針。
とりあえずこんな感じで。
#----------------------------------
from hiraCntl import hiraCntl
#----------------------------------
# UDPで知らせる方。
#----------------------------------
def register():
while True:
C = hiraSockUDPC()
C.hexec("FINRED_BROADING")
print("upto FINRED_BROADING")
time.sleep(30)
#----------------------------------
if __name__ == '__main__':
C = hiraCntl()
p = multiprocessing.Process(target = register)
p.start()
C.start()
その他、必要なものをimportしたり、コメント書いたりとかはありますが、
骨格的にはこんな感じです。
まぁregisterをhiraCntlにもってってもいーんだけど^^;
hiraCntlが全体を司る。
いろんなスレッドがあっても、関数とかは、ここにもってきちゃう。
プロセスを起動するときもこっから起動して、タイムアウトとか監視する。
そんな感じです。
もちろん、 if __name __ == ‘main‘: 以下 をひとつの関数にして、
それを呼ぶだけのSRCがあってもいいですね。
そうすれば、コンパイルするときも、単位としてはいいかな。