私はスマートホームプロジェクトに取り組んでいます。いくつかのXBeereadios、LED、GPS同期時計、ウォーターカウンターなど、たくさんのピースがあります。OOPアプローチを使用しようとしたため、多くのクラスとサブクラスを作成しました。これで、コードで行う必要があるのは、ハードウェアを定義し、クラス組み込み関数で親に接続して楽しむことだけです。アイデアを得るには:
coordinator = XBee24ZBCoordinator('/dev/ttyS1', 115200,
"\x00\x13\xA2\x00\x40\x53\x56\x23", 'coord')
spalnya = XBee24ZBRemote('\x00\x13\xA2\x00\x40\x54\x1D\x12', 'spalnya')
spalnya.connectToCoordinator(coordinator)
vannaya = XBee24ZBRemote('\x00\x13\xA2\x00\x40\x54\x1D\x17', 'vannaya')
vannaya.connectToCoordinator(coordinator)
led = LED()
led.connectTo(spalnya.getPin('DO4'), 'DO')
led.on()
led.off()
しかし、私はそれをコードでやりたくありません。この「ネットワーク」のトポロジを定義するiniファイルが必要です。したがって、私はこのファイルを人間が読み取りおよび編集できるようにしたいと考えています。論理的な選択はiniです(構成ファイルの手動編集に関しては、jsonとしてのej jsonに対して、少なくとも私にとってはあまり友好的ではありません)。今、私は得ました:
[xbee-coordinator]
type = XBee24ZBCoordinator
name = coord
comport = COM4
comspeed = 115200
必要なオブジェクトインスタンスとそれらの間の接続を読み取って作成する関数BuildNetwork('my.ini')を作成できます。どうすればいいのですか?クラスXBee24ZBCoordinatorがありますが、iniから取得するwharは単なる文字列です...