objective-cをちょい研究!ブログ -19ページ目

objective-cをちょい研究!ブログ

WILLCOMを卒業してiOS開発者に転身しました。。
コメント&トラックバック大歓迎です。

送信ライトメールデータを格納する場所だけど、どうもATレジスタのATS301あたりが怪しい。


ATコマンド調査結果 ~後記~

ATS301=000… で格納できるのが、数字633桁まで。


3で割ると211文字である。


拡張ライトEメールで送信できるのが、全角103文字、半角207文字まで。


ATコマンドでライトメールを送る場合のヘッターは、128 145 000 013 の4文字なので、211文字から4を引くとぴったり207文字になる。



ライトメール送信コマンドの ATDI を叩いても送信してくれなかった。

ATS202とATS360とATS361にデータを入れてライトメールを送ると、360と361もリセットされるので、この辺も怪しそう。


ZERO3から拡張ライトEメール送れるようになると、かなり便利なんだけど・・・

受信したライトEメールデータの詳細を調査しました。


ATコマンドでライトEメール受信


ライトEメールを受信すると次のような文字列を受信します。
1100/048049…/008006024024…/119…


■メール情報
一番最初の4桁の数字はメール情報のビットフラグでした。
確認できたのは次の3パターン


1100
通常メール


1110
サイズオーバーメール


1101
添付付きメール


■UID
次の45桁の数字はUIDでした。
UIDとは、メールを一意に識別できるユニークID(UID)のことです。
3桁で1文字のアスキーコードで、15文字の数字でした。


■日付
次の15桁の数字は受信日付でした。
3桁毎に区切ると、


008 006 024 024 049
年 月 日 時 分


16進数に変換すると実際の時間が見えてきます。

08 06 18 18 31


2008年6月18日18時31分となります。


■メールデータ
最後のブロックは、前回説明したとおりメール本文が載っています。

ZERO3メールの未読情報は次の2つで管理しているみたい。


・00.MSG
\Application Data\SeeTooMail\Accounts\[アカウント名]\Storage\TREE\00\00.msg
フォルダ毎の未読件数を管理


http://soft.candychip.net/?W-ZERO3 メール/データ仕様/TREEフォルダ
飴屋さん


・00.EML
Eメールデータ毎の未読件数を管理

16バイト目で未読状態
19バイト目で保護状態


ライトメールの受信メールは以下のファイルに格納されています。
\Application Data\lightmail\LMAIL_IN.DAT


1メールあたりのデータサイズは228byteの固定長。


■メールデータの構造


・メール番号(4byte)
&H1234番(16進数)の場合 → 43120000


・不明(1byte)


・未読フラグ(1byte)
未読(01)/既読(00)


・保護フラグ(1byte)
保護(01)/保護しない(00)


・不明(1byte)
・不明(1byte)
・不明(1byte)


・受信時間(18byte)
YYYY/MM/DD HH/MM


・送信元電話番号(32byte)


・送信元電話帳名(32byte)

電話帳から引っ張ってきた名前


・内容(122byte)

バイナリエディタで直接書き換えたら122byteまで表示できた


・不明(14byte)

全部0に書き換えても一見問題なさそう


未読ステータスを直接書き換えてみた。


未読LEDランプも未読件数も変化なしだった。
フォルダを移動すればファイルを再読込するようで、右上の未読件数の表示は変わっていた。
未読件数を0件にしてみたが変化無し。未読LEDのランプ制御は未読メールにカーソルを当てたときだけ制御しているみたい。