2017年10月26日

LazyBLEWrapper v0.13公開(処理の変更と整理)

・メモリリーク防止の観点からコンテキストを保持しないように変更。
・final
・connectで必ずdisconnectするように変更。
・BLE関係のメソッドをUIThreadで実行するように設定。
・メソッドの並び替え(ドキュメントをJavaらしい書き方にすべきかも)。
・disconnectを丁寧にするように。(Threadでの実行が必須に)。
・GATTのnullチェックを強化。
・forceDisconnectを追加

Android特有の色々癖があるようなので、それに合わせて安全に変更。
スパゲッティがさらにスパゲッティに。

そして、今回味わったいろいろはすでに2年前に書いてあった。
kyobashi.dexでAndroidのBLEがつらい話してきた #kyobashidex
その上、この人の作っているBletiaは、一度目にしていたのだがスルーしていた。
しかし、改めて見てみると、すごい使いやすそう。もうこれで良かったのでは?

詳しくはQiitaへ。
posted by gpsnmeajp at 20:30| Comment(0) | TrackBack(0) | 雑感

2017年10月25日

LazyBLEWrapper v0.12公開(Indicationに対応ほか)

LazyBLEWrapper v0.12を公開しました。
micro:bitのUARTに必要だったのでIndicationに対応したほか、
UUIDのチェック用の関数、ログを黙らせる関数(正直この実装は悪手な気はしないでもない)を搭載しました。

詳しくはQiitaへ。

posted by gpsnmeajp at 14:34| Comment(0) | TrackBack(0) | 雑感

2017年10月24日

AndroidのBLEを超シンプルにするライブラリ作った(LazyBLEWrapper.java)

HPのトップページにAndroidのカテゴリが増えていたので、気づいた方もいらっしゃったかもしれませんが、新しいライブラリを作成しました。

ぼけーっとマイコンとスマートフォンをBLEでつなげてみたいなー、と思い立ち、
AndroidでBLEを使ってみようと思ったら、ちょっと眠い頭ではきついことに気づきました。

非同期処理がたくさん。シングルスレッドのマイコン頭では正直管理しきれない。
WebBluetoothは、Promiseのおかげもありますが大分シンプルなのに対し、
AndroidのBLEはなんじゃこりゃ、と思いました。

まあ、BLEもCentralだったりPeripheralだったりになれたり、色々特殊な場合も考慮しないと
いけないので、仕方ないのだとは思いましたが...

ライブラリも探しましたが、しっくり来るものもなく、仕方ないので自分好みの挙動をするライブラリを作ってしまいました。
せっかくの非同期処理を同期処理にしてしまう頭の悪いライブラリですが、もしよろしければお使いください。

詳細は以下のQiita記事をご覧ください。

AndroidのBLEを超シンプルにするライブラリ作った
https://qiita.com/gpsnmeajp/items/8fa8b3df03fb64837b44
posted by gpsnmeajp at 21:11| Comment(0) | TrackBack(0) | 雑感

2017年10月18日

PCの起動がクッソ重い問題の対処

最近、というか、クリーンインストール後から、PCの起動が遅くなった。
Core i7(4710HQ)と、メモリ16GBのマシンなのに異様に遅い。

何より困るのが、単なる起動ではなく、休止状態からの復旧時も恐ろしいほど重いということ。
タスクマネージャを見ると、CPUではなく、ディスクアクセスがフルになっているのがわかった。
HDDマシンなので、SSDにすれば解決するかもしれないが、それもなんとも言えない。

幾つか手を打つとかなり改善されたので、その手順をメモしておく。

0. タスクマネージャより、不要なスタートアップを片っ端から無効化
1. 電源オプションより「次の時間が経過後ハードディスクの電源を切る」が「1分」!?になっていたので、「60分」に変更。
2. 同じく「PCI Express」の「リンク状態の電源管理」を「最大限の省電力」から「適切な省電力」に
3. 同じく「プロセッサの電源管理」を「5%」から「20%」に
4. sfc /scannow を実行
5. dism /online /cleanup-image /restorehealth を実行
6. chkdsk /f /r c: を実行

ここまでやって、かなり改善されたが、タスクマネージャの表示が怪しかったので追加で以下を実行
7. IPv6を無効化
8. SuperFetchサービスを無効化(こいつが超絶ディスクアクセスを食う)
9. 仮想メモリの設定を8192MB固定に

これで、快適に使用できるようになった。
posted by gpsnmeajp at 19:46| Comment(0) | TrackBack(0) | 日記

2017年10月10日

FlashTools Serial Terminal v0.01

ブラウザからFlashAirのシリアルポートを叩くツールを作ってみました。無駄にArduino IDEのシリアルモニタっぽいです。
高速に受信すると取りこぼすので、実用性は不明です。



http://sabowl.sakura.ne.jp/gpsnmeajp/files/FTST.zip
posted by gpsnmeajp at 18:12| Comment(0) | TrackBack(0) | プログラム

2017年10月09日

FlashTools Lua Editor 1.07a

昨日のアップデートのデザイン変更による各種不具合の修正と、エディタのモード自動切り替えに対応。
CodeMirrorの対応する全ての形式が(Pythonとかも含め)適切に開けるようになります。
また、Filerに現在ディレクトリへのリンクを出力するようにしました。
これにより、よく使うフォルダをブラウザのブックマークに登録しておくことで即座に開くことができるようになります。
ついでに、IE使用時特有の軽微な不具合を修正しました。


更新内容
メニューに更新情報表示機能を追加
ファイルメニューのデザイン調整(iPadでの破綻対策、PCでの幅を広く、レスポンシブに、長いファイル名が切れる不具合の修正)
タイムアウト時の表示が出なくなっていた不具合修正
URLのパスを無視してルートを表示する不具合修正
フォルダパスを参照するためのリンクを追加
Loadingがなくなっていたのを修正
拡張子での編集モードの自動変更(Code mirror Lazy modeの有効化、ほぼ全ての拡張子に対応)
codemirrorを更新
インデント幅を4に変更(作者の好みです)
IEだけ..の判定が狭い不具合の修正
Remove All Filesが、IEだけ切れてキーワードが見えない不具合の修正

ダウンロード
https://sites.google.com/site/gpsnmeajp/tools/flashair_tiny_lua_editer
posted by gpsnmeajp at 16:48| Comment(0) | TrackBack(0) | 電子工作

2017年10月08日

FlashTools Lua Editor v1.07を公開

FTLEを更新しました。
主にW-04のファームウェアアップデートに伴うprint文の低速化に対応したものとなります。
ちょっとしたファイルで1分近くの読み込み時間がかかるようになってしまったため、
FTLEの読み込み機構を調整し、以前と同程度とまでは行きませんが、数秒から十数秒程度の読み込み時間で済むように調整しました。

ただ、W-04のメモリの多さに依存している機能のため、今回からW-03はサポート対象外になりました。
(一応、W-03使用時には以前と同じ動作になるように設計してありますが、積極的にサポートはしません)
またその実装上、1行に500文字以上詰め込まれたファイルは正常に読み込めない場合があります。
(メモリエラーが発生します。)

また、要望によりファイラーを強化し、ファイルの新規作成、フォルダの新規作成や、
ファイルの移動、一括削除などを画面上で行えるようにしました。割りと便利です。

また、FTLEやファイラーに、空白文字が入った時に異常動作する問題があったため、
それを修正しました。

85B58CEE-7BEB-481B-AA6D-D753F2BE517A.png

更新内容は以下のとおりです。
・W-04 4.00.01のprint文低速化に対応
・FlashTools.luaの高速化、CSSの調整
・Version判定の変更
・read.luaの高速化(24秒→1.5秒)に。(W-03はサポート対象外になりました。一応フォールバック動作します)
・ファイラーの読み込みを若干高速化
・ファイラーの拡張制限を解除
・ファイラーに新規ファイル作成・フォルダ作成・ファイル移動(名前変更)機能を追加
・ファイラーのデザインを抜本的に変更
・ファイラーおよびエディタの空白文字ファイルに対する異常動作の修正

ダウンロードはこちらから
https://sites.google.com/site/gpsnmeajp/tools/flashair_tiny_lua_editer
posted by gpsnmeajp at 23:39| Comment(0) | TrackBack(0) | 雑感

2017年10月07日

FlashTools Minimal Shell v0.01 beta

FlashAirのシリアルポートを利用した簡易シェルのベータ版を公開しました。
抜本的なリファクタリングと動的ロード機能の調整を行い、より簡単に機能拡張ができるようになりました。
所定の形式で作成したLuaスクリプトを/binに入れるだけでお好みの機能を追加することができます。
以下のGIFアニメのように、動作中にファイルが追加されても受け付けます。

クリックでフルサイズで見ることができます。
(リンクから飛んできた人は、一度ブログトップに移動してからこの記事を再度開き直す必要があるかもしれません。)
FTMS.gif

以下のテンプレートで作成されたLuaスクリプトを/binフォルダに入れてください。
便利なスクリプトができましたら報告していただけるとうれしいです。

--Description
local _name_ = "hello"
local _help_ = "hello [times] : Show \"Hello World\""

--Program
function _ (arg)
--begin user program

for i=1,tonumber(arg) do
term.print("Hello World!")
end

--end of user program
end


------------------------------------------------
--Bootstrap
shell.debugmsg(_name_," begin")
if(select(2, ...) == "help")then
shell.debugmsg(_name_," help mode")
term.print(_help_)
else
shell.debugmsg(_name_," run mode")
_(select(1, ...))
end
shell.debugmsg(_name_," end")


また、シェル機能実装にあたって通信機能の抽象化などを行いましたので、
それらを切り出してライブラリとして使っていただいても構いません。

uart.open
uart.close
uart.write
uart.writeRaw
uart.read
uart.fflush

term.setlastbuf
term.print
term.printraw
term.backspace
term.getc
term.gets

shell.setdebug
shell.debugmsg

shell.setpwd
shell.getpwd

shell.exist
shell.existDir

shell.run
shell.getAbsPath



BSD-3 Licenseです
https://sabowl.sakura.ne.jp/gpsnmeajp/files/FTMS.zip
posted by gpsnmeajp at 22:14| Comment(0) | TrackBack(0) | 電子工作

2017年10月06日

FlashTools Minimal Shellアルファ版

前回適当に作ったFlashAirのserialを使ったシェルっぽいものを、もう少し真面目に作りました。

外部コマンド実行機能をつけ、今まで内部コマンドにしていたものをほぼ全て外部化しました。
内蔵していたいろいろな関数もライブラリ化しました。
こうすることで、binフォルダにLuaスクリプトを配置するだけで、簡単に機能を拡張することができます。

tree.png

既存のLuaスクリプトも、print文をputsに置き換えてあるため、シリアルポートから結果を見ることができます。
LUA_RUN_SCRIPTにboot_shell.luaを指定することで、ブラウザレスで実行することができます。

※ファイルの一括削除などの危険なコマンドを含んでいる上に、動作保証はしませんのでご注意下さい
※ライブラリの整理をまだしっかりやっていないため、アルファ版です。今後構成等は大きく変化する予定です。

BSD-3 Licenseです
https://sabowl.sakura.ne.jp/gpsnmeajp/files/FTMS.zip
posted by gpsnmeajp at 22:33| Comment(0) | TrackBack(0) | 電子工作

FlashAirのserialを使ってシェルっぽいもの

FlashAirにせっかくシリアル通信機能がついたので、適当にババっとシェルっぽいものを作ってみた。
ちょうどコマンドインタプリタが作りたい時期だったので、ぴったりでした。

shelllike.png

シリアルコンソール的な感じで、変換アダプタなりなんなりを噛ませて繋いでください。
一応、FTLE上で走らせる前提になってます。開発途中なので。ブラウザから実行してください。
(設定すれば起動時実行もできるとは思います。)

3.3Vの変換アダプタを使ってくださいね。
Tx: D0
Rx: CMD

lsとcdとcatとexitくらいしか使えません。
LuaFileSystemの機能が思ってた以上に削られててびっくりしたよね。


require "/FTLE/breakpoint"

--[[
LuaFileSystemで使えるもの一覧

dir
rmdir
touch
mkdir
attributes
]]

last_cmd = ""
pwd = "/"

--文字列として送信する
function put(s)
fa.serial("write",tostring(s))
collectgarbage()
end

--1文字送信する
function putc(c)
fa.serial("write",c)
end

--改行付きで文字列を送信する(printと同じく可変長で受け付ける)
function puts(...)
for i = 1, select("#", ...) do
local s = select(i, ...)
if(s == nil)then
s=""
end
put(s)
put(" ")
end
put("\r\n")
end

--受信バッファを空にする
function clean()
while fa.serial("read") ~= nil do
breakpoint()
collectgarbage()
end
end

--1ライン消去
function linedel(s)
for i=0,s:len() do
putc("\x08") --表示上の文字を削る
putc(" ")
putc("\x08")
end
end

--1文字受け取る。受け取るまでロックする
function getc()
while true do
local c = fa.serial("read")
if(c ~= nil)then
return string.format("%c",c)
else
sleep(1)
collectgarbage()
breakpoint()
end
end
end

--文字列を受け取る。受け取るまでロックする
function gets()
local buf = ""
while true do
local c = getc()
if(c == "\x1B")then
if(getc() == "\x5B")then
if(getc() == "\x41")then --↑キーを押した場合は前回の入力を返す
linedel(buf) --行を消し
putc(">")
put(last_cmd) --改行なしで出力
buf = last_cmd
end
end
c="" --何もなかったことにする
end

--改行コード
if(c == "\x0D" or c == "\x0A")then
puts() --改行
clean();
return buf
end

--BS, DEL
if(c == "\x08" or c == "\x7F")then
if(buf:len() > 0)then --1文字以上のとき
putc("\x08") --表示上の文字を削る
putc(" ")
putc("\x08")

buf = buf:sub(1,-2) --1文字削る
end
end

--Break / Ctrl + C
if(c == "\x03")then
error("SIGINT")
end


--puts(string.format("%02X",string.byte(c))) --16進数でエコーバックする
if(c >= "\x20" and c <="\x7e" )then --表示可能文字のとき
putc(c) --エコーバックする
--puts(string.format("%02X",string.byte(c))) --16進数でエコーバックする
buf = buf .. c --バッファに追加
end
end
end

--初期化とウェルカムメッセージ
function init()
fa.serial("init")
puts(fa.control("eva"))
puts("Welcome to FlashTools Minimal Shell v0.1")
end

-----------------------------
--シェルレベルで必要な機能

function getAbsolutePath(path)
if(path == ".")then
return pwd
end
--一つ上に戻る
if(path == "..")then
local x,y,path = pwd:find("([^%c]+)%/")
if(path == nil)then
return "/"
else
return path
end
end
local head = path:sub(1,1)
if(head == "/")then --先頭が/なら絶対パス
return path
else
if(pwd == "/")then
return "/"..path --ルートのときは特別です
else
return pwd.."/"..path --先頭が/じゃないなら相対パス
end
end
end
getAbsolutePath("DCIM")

-----------------------------
--コマンド実装

function cmd_help()
puts("--- help ---")
puts("EXIT : exit shell")
puts("ERROR : test shell error handling")
puts("CAT [path] : view file")
puts("LS [path] : file list")
puts("CD [path] : Change directory")

--[[
EXIT
VIEW
CD
LS
RM

CP
mv
call

]]
end

function cmd_cat(arg)
local path = getAbsolutePath(arg)
local f = io.open(path)
if(f == nil)then
puts("cat: file not found.")
return
end
while true do
local d = f:read("*l")
if(d == nil)then
break
end
d = d:gsub("\x0D","") --改行キラー
d = d:gsub("\x0A","")
puts(d)
end
end

function cmd_ls(arg)
local mode = ""
local path = pwd
if(arg ~= "")then
path = getAbsolutePath(arg)
end

puts(path)
for file in lfs.dir(path) do
local info = lfs.attributes(path.."/"..file)
if(info.mode == "directory")then
mode = " DIR:"
end
if(info.mode == "file")then
mode = "FILE:"
end
puts(mode,file)
end
end

function cmd_cd(arg)
if(arg == "")then
arg = "."
end

local path = getAbsolutePath(arg)
if(pcall(lfs.dir,path) == true)then --存在チェック(無存在でエラー吐くので保護実行)
pwd = path
puts(path)
else
puts("cd: not found")
end
end


-----------------------------

--コマンド処理
function process()
while true do
putc(">")
last_cmd = gets()
local cmd,x,arg = string.match(last_cmd, "(%g+)(%s*)([%g%s]*)") --コマンドと引数に分ける。コマンド間のスペースは複数入れてもOK
if(cmd ~= nil)then
cmd = cmd:upper() --コマンドは大文字にする
else
cmd = ""
end

--puts("CMD:",cmd)
--puts("ARG:",arg) --Argはあえて前処理しない。アプリケーションに任せる

if(cmd == "EXIT")then
puts("Bye!")
return
elseif(cmd == "ERROR")then
error("Test Error")
elseif(cmd == "HELP")then
cmd_help(arg)
elseif(cmd == "CAT")then
cmd_cat(arg)
elseif(cmd == "LS")then
cmd_ls(arg)
elseif(cmd == "CD")then
cmd_cd(arg)
else
puts("command not found")
end
end
end

init()

success = false
while (not success) do
success, errmsg = pcall(process)
if(success == false)then
puts()
puts("--- Shell Error ---")
puts(errmsg)
puts("-------------------")

--Ctrl+Cで止められたら便利かなと
if(errmsg:match("SIGINT") ~= nil)then
break
end
end
end

puts("-- Shell terminated --")
print("end")
posted by gpsnmeajp at 00:15| Comment(0) | TrackBack(0) | プログラム

2017年10月05日

未公開のfa.control機能

なんだか怪しい機能を見つけました。ただ、使い方がわかってるのはevaのみです。

fa.control("eva")
→eva.cgiと同等の出力を得る。serialと組み合わせると便利そう。
 osライブラリが生きていればもっと色々できたのだが...

fa.control("confset")
fa.control("confget")
→なんらかの設定をしたりしそうな関数だが不明。
 confsetは1を、confgetは-1を返す。

fa.control("cmd48")
→見るからにCMD48(READ_EXTR_SINGLE)を発行しそうな関数。
 実行すると512個の配列が帰る。オプションで指定すれば行けそう。

fa.control("cmd49")
→見るからにCMD49(WRITE_EXTR_SINGLE)を発行しそうな関数。
posted by gpsnmeajp at 21:34| Comment(0) | TrackBack(0) | メール投稿

FlashAir W-04の新FWのserial関数(UART通信機能)の使い方

FlashAir W-04の新ファームウェアに追加されたserial関数(UART通信機能)の使い方の解析ができました。
なお、関係ないですがprint文が1回あたり300msほど掛かるようになっています。
リアルタイムに出力が見える反面、かなり遅いです。

初期化

fa.serial("init")

戻り値は常にnil
115200bpsに初期化される。

2018/06/30追記
ファームウェアバージョンW4.00.03においては、ボーレートの変更ができるようになっている

fa.serial("init",9600)

300bps〜921600bpsまで確認した。1bps単位で通信できる模様?
9600bpsや31250bpsでも動作する模様。

開放?

fa.serial("deinit")

未初期化状態に戻る?
戻り値は常にnil


送信

fa.serial("write","Hello World")
fa.serial("write","Hello World",11) --送信バイト数指定?
fa.serial("write",0xAA)

--2018/06/30追記。テーブルも行ける
dat = {0x0D,0x0A}
fa.serial("write",dat)

戻り値は常にnil

受信

x = fa.serial("read")

バッファにデータが有ると、1Byteを数値として返す
データがない時はnil
端子が開放されていると255を返すことがある

バッファの長さは14Byte

速度: 115200bps (W4.00.03では変更可)
8bit 1stop

Tx: D0
Rx: CMD


サンプル

fa.serial("init")
print(fa.serial("write","Hello World"))
s=""
for i=0,16 do
x = fa.serial("read")
if(x ~= nil)then
s = s .. string.format("%c",x)
end
end
print(s)
print("OK")
posted by gpsnmeajp at 18:56| Comment(0) | TrackBack(0) | メール投稿

FlashAirのserial(telnet版)

なんか送信だけはできそうなメッセージが出た。

> serial
serial
> serial write
serial write
serial write -x(hex)/-s(string) data
hex data should be like "02 AF 0E"
> serial read
serial read
posted by gpsnmeajp at 17:58| Comment(0) | TrackBack(0) | メール投稿

FTLEのDebug機能は新ファームウェアでは動作しません

FWアップデートによりDebugライブラリが削除されたため、
FTLEのDebug機能は新FWではもはや動作しません
これはFlashAir側の仕様変更であり、FTLE側での対処はできません。
Debug機能をお使いになりたい場合はアップデートをお控えください。

FWアップデート後は、代替としてbreakpoint()を利用してください。
posted by gpsnmeajp at 17:46| Comment(0) | TrackBack(0) | メール投稿

FlashAir W-04新ファームの検証速報1

メール投稿のテストも兼ねて、速報的に記事を書いてゆく。
現時点で見つけた機能
・FW更新ともに、隠し領域のファイルがすべて修復されるようになっている。
・debug, coroutine, osライブラリが削除された。残念。
・serial関数が増えている。TELNETにも存在。(探査結果は以下に示す)
・WSD_BUF_ERR_OVERFLO問題は未解決(W04では3KBを超えるrequestは全く受信できない)
・fa.udp({mode="stop"})でのフリーズ(?)は変わらず
・fa.serialはメッセージがダンマリなので、@ayasehiroさん並みの気合探索が必要そう
・Luaのprint文の応答がリアルタイムになっている(Chrome側の仕様変更?)


探査結果

assert = function: 961808
tostring = function: 9619E8
require = function: 9995B0
next = function: 961542
rawset = function: 9613BE
math = table: 99B584
ipairs = function: 9615D2
fa = table: 98E78C
_G = table: 98E970
setmetatable = function: 9612B2
select = function: 961844
io = table: 998DC8
dofile = function: 9617B4
xpcall = function: 961980
mod = function: 96075C
error = function: 961226
print = function: 961004
pairs = function: 96157A
getmetatable = function: 96127A
arg = table: 99A5A4
rawequal = function: 961318
string = table: 998E94
SOCK_DGRAM = 2
bit32 = table: 99B1F8
loadstring = function: 9616F2
load = function: 9616F2
SOCK_STREAM = 1
unpack = function: 95F626
DISCARD_BUFFER = 0
collectgarbage = function: 9613FA
package = table: 998770
module = function: 99956C
rawlen = function: 96134C
table = table: 99A3D4
type = function: 9614A4
tonumber = function: 9610A2
pcall = function: 961932
lfs = table: 998BE4
cjson = table: 990310
loadfile = function: 961606
sleep = function: 9607AE
_VERSION = Lua 5.2
rawget = function: 96138A
dump = function: 960710
-------
Bridge
GetSecretCode
sysclk
stack
ping
Connect
Establish
control
ftp
ConnectedSTA
i2c
serial
Scan
task
rename
hash
reboot
request
spi
websocket
getStatus
search
ClrSecretCode
GetScanInfo
SetCert
HTTPGetFile
MailSend
sharedmemory
remove
ip
Disconnect
SetSecretCode
SetCurrentTime
SetRmHeader
StartWPS
ReadResponse
pio
ReadStatusReg
udp
SetChannel
WlanLink
strconvert


Console [level:1(enduser)]
help show help
version show version
mod Modify Memory
dump Dump Memory
ip Address Setting
ping ping
reboot reboot system
fat file system
wlan Wireless LAN control
sd SD Card Access
userpg start user program
wsd wsd
lua LUA
update fwupdate
websocket WebSocket Client (TWSC)
i2c i2c test
serial serial

Console [level:1048(factory)]
help show help
version show version
mod Modify Memory
dump Dump Memory
stat show status
ip Address Setting
ping ping
reboot reboot system
print console output
fat file system
wlan Wireless LAN control
sd SD Card Access
factory Read/Write Factory Information (0xD0000)
current factorycurrent
userpg start user program
wsd wsd
lua LUA
update fwupdate
websocket WebSocket Client (TWSC)
i2c i2c test
serial serial

Console [level:1048(Developer)]
help show help
version show version
mod Modify Memory
fdump Memory dump to file
dump Dump Memory
stat show status
ip Address Setting
ping ping
reboot reboot system
setup TELEC command
send TELEC command
stop TELEC command
show TELEC command
deauth deauth command
print console output
sleep sleep setting
fat file system
wlan Wireless LAN control
dhcpd DHCP server
dhcpc DHCP client
nbios NetBios service
wps Wi-Fi Protected Setup
sd SD Card Access
http HTTP Client
httpd HTTP Daemon
tz HTTP Daemon Time Zone [-48..56]
rfic set RF-IC serial data rfic
iperf Measuring performance
sysclk change System clk
ps ps [on/off]
pw pw
pio pio
posted by gpsnmeajp at 17:39| Comment(0) | TrackBack(0) | メール投稿

FlashAir W-04の新ファームウェア4.00.01

FlashAir W-04の新ファームウェアが出たようだ。
危なく見落とすところだった。twitterから離れるとこういうところが面倒だ。

色々不具合等があったので、そこが改良されていると嬉しいなと思いつつ、
検証は後ほど。


posted by gpsnmeajp at 16:24| Comment(0) | TrackBack(0) | 電子工作

2017年10月03日

NiftyのスマートサーブVPNがうまく繋がらないときの対処

Niftyのスマートサーブのレビューをしようとして、ちょっとハマったので記録。

月額315円、初期費用無料で、専用端末付き、
ゼロコンフィギュレーションで簡単にできますよー、としたかった。

実際、スマートサーブ自体の設置は電源とLANを刺すだけ。
認証設定もiPhoneからだとプロファイルの生成配布をNiftyのサイトでやってくれるので簡単。
なのだが、多重NATな環境故か、設定が必要だった。

*症状
Windowsで接続しようとすると
「リモートコンピューターへの接続を確立できませんでした。この接続用にネットワーク設定の変更が必要である可能性があります。」
1.png

iPhoneで接続しようとすると
「L2TP-VPNサーバが応答しませんでした。もう一度接続してください。それでも問題が解決しない場合は、設定を確認し、管理者に問い合わせてください」
A.png
あるいは
「PPPサーバへの接続を確立できませんでした。もう一度接続してください。それでも問題が解決しない場合は、設定を確認し、管理者に問い合わせてください」
B.png

で、スマートサーブの「モバイル接続機能」の「基本情報」ページに行くと以下のようなログが出力されている。
「DHCP取得エラー」
4.png

スマートサーブのターミナル本体は「ステータス2が点滅」している。

*原因
この場合、どうやらスマートサーブのターミナルとセンター間でのVPNコネクションが張れていないようである。
スマートサーブはL2TP/IPsecを使ってコネクションを張り、HTTPSを使ってファームウェアの設定等を行う。
このうちHTTPSは正常に通信できるが、L2TP/IPsecが通信できないのが「ステータス2点滅」の状態らしい。

ルータがIPsecを妨害してしまっているために起こる模様。
(ただし2本以上の場合に問題になるという話が多いのだが、)

*対処方法
ルータの設定画面から「IPsecパススルー」を有効にする。
3.png

*接続成功
接続できると以下のようになる。
C.png

D.png

*同時接続禁止
VPNは1つのアカウントで2つ以上の同時接続はできない。
SoftEtherなどを使っている場合は、接続台数に合わせて増やせば良い。
スマートサーブでは、2ID目以降の追加は、月額100円ずつ+される。
もっとも、センターを経由して通信している以上仕方ないとも言える。

同時接続しようとすると以下のエラーが出る
「指定したユーザー名またはパスワードが認識されないか、選択した認証プロトコルがリモートアクセスサーバーで許可されていないため、リモート接続が拒否されました」
alredy.png

VPN接続「認証に失敗しました」
E.png
posted by gpsnmeajp at 22:44| Comment(0) | TrackBack(0) | トラブル解決

2017年10月01日

引越し完了

ブログの引っ越しって簡単にできるようになってるんですね。知りませんでした。
一筋縄では行かないだろうなぁ、と思っていたら案の定で、
さくらのブログでインポート可能なのはMT形式、一方Bloggerは(独自の?)XML形式。

しかし、MT形式のブログは多いらしく、変換のための情報もありました。
海外でも使われてるんでしょうか。
google-blog-converters-r89で変換することができました。

なぜかBloggerに引っ越す記事が多かったですが。
さくらのブログは、Seesaaブログと同じエンジン(というかSeesaaから提供されているらしい)なので、
参考にできる情報が多くて助かります。

Seesaaブログはスパム判定されると即BANらしいですが、さくらインターネットさんでは
そういうことはないでしょう。多分。少なくとも日本語を理解してくれると期待しています。

参考情報
Google Blogger からこのはてなブログにインポートしました - ゆたんぶろぐ

GoogleのBloggerからはてなブログに記事を移行する方法 - 元マニラ住人の青年のブログ

画像の引用先がBloggerになってるのが、ちょいと面倒。
ネット上で、跡地としてブログが残っている理由がやっと理解できました。
画像の移動をサボった結果ですね。

ところで、Bloggerでは便利な投稿アプリ等があったのですが、さくらのブログにはないですね。
(もっともBlogger公式のアプリは消滅しましたが。サードパーティのアプリが数日だけだが便利だった)
外部投稿用の機能はあるようですが...

ただ、古き良き「メール投稿」システムがあるようなので、そっちを使うことにします。

posted by gpsnmeajp at 22:30| Comment(0) | TrackBack(0) | 雑感

テスト投稿

これはテスト投稿です。
posted by gpsnmeajp at 16:16| Comment(0) | 日記

Bloggerもそのうち廃止になるのだろうか

正直なことを言って、GoogleはBloggerやSiteに力を入れていない、
というより、もはや廃止対象になりつつあるのではないかと思うことがあります。

ひさびさにBloggerをスマホから更新しようとして、昔使っていたBlogger公式アプリがなくなっていたり、
公式設定画面をiPadから操作してると意味不明な箇所で落ちたり、
そもそもBloggerもSiteもスマホからの更新を考えていない雰囲気があったりと。

メインでサポートする気があるなら絶対に落とさないであろう箇所は放って置かれていますし、
サービスの改善も長いこと行われていない(使いにくくはなっていっている)ことからして、
もう先はそんなに長くないのかもしれません。

というわけで、WordPress等への移行も視野に入れておく必要があるのかもしれませんね。


追記

bloggerが突如スパム判定されてロックアウトされるという事象も、
わりかし頻繁に起きている様子。
根強く申請すれば解除されるそうだが... それもそれで恐ろしいなぁ...
posted by gpsnmeajp at 02:37| Comment(0) | TrackBack(0) | 未分類