2015年3月20日金曜日

FlashAirとMicrosoftAzureを連携してやる(ダウンロード編)

引き続き、ダウンロードもしてやりましょう。

なお、認証が難しいので、今回はAzureストレージのコンテナの設定を「パブリックBLOB」にします。
秘密の画像は置かないように。

まず、SDカードに次のプログラムをおきましょう。
$ vi /Volumes/FLASHAIR/download.lua
local function waitWlanConnect()
    while 1 do
        local res = fa.ReadStatusReg()
        local a = string.sub(res, 13, 16)
        a = tonumber(a, 16)
        if (bit32.extract(a, 15) == 1) then
            print("connect")
            break
        end
        if (bit32.extract(a, 0) == 1) then
            print("mode Bridge")
            break
        end
        if (bit32.extract(a, 12) == 1) then
            print("mode AP")
            break
        end
        sleep(2000)
    end
end

waitWlanConnect()

res = 0

while 1 do
  res = fa.HTTPGetFile("http://アカウント.blob.core.windows.net/コンテナ名/ファイル名", "/DCIM/保存するファイル名")
  sleep(600000)
end



FlashAirのLuaには、sleep関数(引数はミリ秒)が追加されています。親切設計です。
Wi-Fiに接続するのを確認して、定期的にファイルをダウンロードする仕様です。

このプログラムを起動時(SDカードを挿したとき)に実行するように設定します。
$ vi /Volumes/FLASHAIR/SD_WLAN/CONFIG
LUA_RUN_SCRIPT=/download.lua


ネットワーク設定などは前回を参考に。

これで定期的にファイルが増える(すでにあるファイルは後ろに番号がつく)のが確認できるかと思います。

こうやって見ると、Azureだからと言って特別なことは少ないのかなー




0 件のコメント: