2008.05.16

[Palm]WristPDAのバッテリコンパートメントのクリアランスを計測

PD3048は入らんもんかと、WristPDAのバッテリコンパートメントのクリアランスを計測してみました。
5mm説というのがあって、それを検証してみようと思ったのでした。
5mmなら、PD3048が入ることになります。

粘土タイプの耳栓愛用者なので、常備してあるそれを詰めて一度蓋を閉め、取り出してノギスで計測。
確かに5mmありました。PD3032が公称3.2mm、実測でも上下の端子込みで3.2mmぐらいですから、入りそうですね。







WristPDAのフォーラムに、backplateを自作してコンパートメントを拡張し、大容量バッテリを搭載したmclien氏が1年ぶりに投稿していました。現在、以下の二つのバージョンを製作中とのこと。

  • 完成品: 650mAh (標準より2.5mm〜3mm厚い)
  • 製作中: 410mAh version (うまくいけば標準より0.5mmから1mm 厚い程度に収まりそう)

MLでは、

  • 650mAのバッテリとbackplateのセットで30ユーロ
  • 650mAのバッテリとbackplate、作業料込みで35ユーロ+送料(ベルトを外せば送料は大体4ユーロ)

とも書いてます。

ただ、フォーラムには気になることも書いてます。
「バッテリが死んだWristPDAを一つ持っているが、その基板上に、爆発したような部品を一つ見つけた。
充電時に供給した電流量が多かったのが原因ではないか、と推測できる。(PCのUSBポートからのものがそうだったか、あるいは外部電源からのものがそうだったかは明言できないが)」
「過充電について」というタイトルがついているので、この改造に関係したことのように取れますが、どういう因果関係で持ち出された話なのか読み取れません。
爆発したようなありさまの部品の写真を後でアップするとのことなので、ヲチしてようと思います。

| | Comments (0) | TrackBack (0)

2007.11.22

[Palm]WristPDA用SDK

WristPDA用のSDKがFossilから消えちゃってますね。
リンクはしないんで探してみてください。

WristPDA_SDK.zip

| | Comments (0) | TrackBack (0)

2006.12.10

WristPDA(Fossil FX2008 / ABACUS AU5005等)のPD3032使用バッテリ交換サービス開始

結構PD3032の郵送による頒布ページにアクセスはあるものの、レスポンスが薄いのでWristPDA(Fossil FX2008 / ABACUS AU5005等)用バッテリを新品に交換するサービスを始めてみます。やはり半田付け作業は無理な相談でしょうか?

バッテリ単体がご所望の場合はこちらをどうぞ「WristPDA用バッテリPD3032の郵送による頒布(通信販売)開始

交換に使うPD3032は2006年10月30日に納品された新品です。

受付可能台数

バッテリの残数に依存します。2006/12/10時点で22個です。
PD3032の補充は、するつもりはありません。

交換料金

1台:4,000円
(発送料、返送料ご負担いただきます。返送は着払いで行ないます)

発送は、深夜受け取りの都合上「ゆうパック」でお願いします。
返送は、ヤマト運輸の宅急便の着払いで行ないます。

応募方法

メールアドレス

wristpda
gmail.com

に、以下の要項を埋めてメールをお送りください。

郵便番号:
住所(都道府県より、建物名までお書きください):
氏名:
交換希望台数:
代金振り込み時の名義:

交換完了までの流れ

  1. (あなた)WristPDAの動作チェックをお願いします。バッテリが死んでいる場合は、USB給電で動作させてください。USB給電をしても動作しない、または動作がおかしい場合は交換を諦めてください。
  2. (あなた)前項の要領でメールをお送りいただきます。
  3. (私)いただいたメールへの返信にて、合計金額と入金先銀行口座をお知らせします。
  4. (あなた)入金が終わりましたら、同時に、交換が必要なWristPDAを発送してください。スタイラスは抜いて手元に保管してください。また、その旨メールにてお知らせください。
  5. (私)交換作業を終了し、発送しましたら、発送通知メールをお送り致します。
  6. (あなた)品物が到着致しましたら、内容ご確認いただき、できましたら到着通知メールをいただけると助かります。(任意)

発送方法

バッテリの交換が必要なWristPDAは、当方までゆうパックにて、元払いで発送お願いします。

スタイラスは抜いた状態で発送してください。

動作確認をしてからお送りください。お送りいただいたWristPDAを開腹する前の起動チェック段階で異常が見られた場合は、そのまま返送致します。

返送方法

ヤマト運輸 宅急便の着払いにて発送致します。

入金方法

前述の通り、指定銀行口座振込となります。振込手数料はご負担ください。

発送までにかかる日数

できるだけ早く発送するよう努力します。最速で到着日発送です。しかし、出張等があり、即時のご対応ができない場合がございます。繁忙期は泊まり込みの作業をすることもあります。
状況はご連絡致しますので、今日明日の対応ができない場合があることを、あらかじめご了承ください。

バッテリの保証について

バッテリは1週間の保証と致します。
もしバッテリに異常があれば、1週間以内にご連絡ください。
それ以降は理由のいかんを問わず対応しないものとします。

| | Comments (0) | TrackBack (0)

2006.11.14

WristPDA用バッテリPD3032の予備への充電方法

WristPDA用のバッテリPD3032を頒布すると大抵の方は2個持っていかれるのですが、予備に回したバッテリの維持が問題です。

リチウムイオンバッテリの自己放電率は月間5%ほど、新品のPD3032の充電容量は20%〜30%だと思われます。
リチウムイオンバッテリは過放電にも弱いので、放電し切った状態になることは避けなければなりません。
単純計算だと1年もしないうちに放電してしまいそうですが、電圧が低くなってくると自己放電率も低くなるため、2年ぐらいは放置していても大丈夫だという説明を見付けることができます。
ただ、我らがPD3032にそのまま適用できるかどうか心配ではあります。

リチウムイオン電池の基礎(株式会社ベイサン)

WristPDAを日常使っていると、1年半もするとバッテリの持ちが心もとなくなってくるので、2年持つなら特に予備の維持は気にせず、1個目がダメになるころに普通に2個目に交換すればいいことになりますが、データが無いので果たして本当に放置しっぱなしで大丈夫か心配です。

念を入れるならばテスタで定期的に電圧チェックをし、電圧が低くなってきたら充電してやればいいわけですが、WristPDAにはPD3032が半田付けされているため、気軽に予備電池にすげ替えて充電することができません。

自分なら半田付けし直して充電して、また元に戻すということをやってしまいますが、写真のようにICクリップを使って並列に接続したところ、本体にPD3032を付けたまま、予備のPD3032にも充電することが可能でした。
並列状態でしばらく置いておくと充電容量がそろうという話ですので、充電前に6時間ぐらい置いておきました。
(写真のようにICクリップをワニ口クリップで挟む使い方は悪い例なのでマネしないようにしてください。ショートの可能性を高めます)

R0011366

R0011370

半田付けは極力避けたい、という方は参考にしてみてください。

ただ、私は理屈が分かってません。これをすると何らかの故障や事故が発生するかもしれません。
例えば、バッテリの内部抵抗が半分になるため、1個の状態より多く電流が流れることが予想されます。
リスクがあることを承知の上、自己責任で試してください。

自分はWristPDAが壊れることは覚悟の上で、乾電池式のUSB電源を使い、ベランダで試しました。
結果的には、特に故障は見られず、PD3032は満充電になっていました。

なお、リチウムイオンバッテリを、満充電状態で置いておくのはよくないと説明されています。
およそ容量50%程度で保存するのがいいそうです。

| | Comments (2) | TrackBack (1)

WristPDA用バッテリPD3032の郵送による頒布(通信販売)開始

交換サービス始めました (2006/12/10): WristPDA(Fossil FX2008 / ABACUS AU5005等)のPD3032使用バッテリ交換サービス開始

WristPDA(Fossil FX2008 / ABACUS AU5005等)用バッテリ、PD3032の郵送による頒布を行ないます。

PD3032は2006年10月30日に納品された新品で、WristPDAへの取り付けに必要なタブ付き(金具付き)です。

頒布価格

バッテリ単価:3,500円
郵送による頒布対応手数料:500円

手数料は、バッテリ希望個数を問わず発送1回につき500円です。
手数料にはクロネコ メール便による送料を含みます。

その時点での在庫残による物理的制限以外に、個数制限はありません。
頒布は在庫限りです。
なお、このタイプのタブ(金具)が付いたPD3032の1個単位での入手ができるのは、世界でもここだけだと思います。

国外・離島への発送は要相談とさせてください。

応募方法

メールアドレス

wristpda
gmail.com

に、以下の要項を埋めてメールをお送りください。

郵便番号:
住所(都道府県より、建物名までお書きください):
氏名:
PD3032頒布希望個数:
代金振り込み時の名義:

品物到着までの流れ

  1. (あなた)前項の要領でメールをお送りいただきます。
  2. (私)いただいたメールへの返信にて、合計金額と入金先銀行口座をお知らせします。
  3. (あなた)入金が終わりましたら、その旨メールにてお知らせください。
  4. (私)入金を確認致しましたら、発送致します。
  5. (私)発送後に発送通知メールをお送り致します。
  6. (あなた)品物が到着致しましたら、内容ご確認いただき、できましたら到着通知メールをいただけると助かります。(任意)

発送方法

クロネコ メール便にて発送致します。

入金方法

前述の通り、指定銀行口座振込となります。振込手数料はご負担ください。

発送日

できるだけ早く発送するよう努力しますが、出張等があり、即時のご対応ができない場合がございます。繁忙期は泊まり込みの作業をすることもあります。
状況はご連絡致しますので、今日明日の対応ができない場合があることを、あらかじめご了承ください。

返品について

返品はお受けできません。

保証について

これまでは対面式、在庫からの自由選択式、目前でのテスターによる検品後の手渡しゆえに無保証としてきましたが、郵送による頒布となれば私の方で選ぶことになりますので、1週間の保証と致します。
もしバッテリに異常があれば、1週間以内にご連絡ください。
それ以降は理由のいかんを問わず対応しないものとします。

在庫がある場合は、異常のあるものとの交換対応となります。
不良品の返送にかかる費用はご負担ください。

在庫が無い場合は返金処理を致しますので、口座等おうかがいすることになります。

| | Comments (0) | TrackBack (0)

2006.11.10

11月11日(土)秋葉原にてWristPDA用バッテリーPD3032頒布会開催

(追記)郵送による頒布を始めました。WristPDA用バッテリPD3032の郵送による頒布(通信販売)開始

11月11日、秋葉原でWristPDA用バッテリー、PD3032の頒布会を開催します。

流動要素を確定しました。(11月10日16:30追記)

バッテリーPD3032頒布会について

WristPDAを放っておくと過放電でバッテリーがだめになってしまいますし、使っていると元々バッテリーライフが短いので、性能劣化で比較的早期に実用レベル以下になってしまいます。
そんなこんなでWristPDAのバッテリーでお困りの方がいらっしゃると思います。

欲しい人は欲しいWristPDA用バッテリPD3032ですが、入手は困難です。
国内で小売しているところはありません。
しかし、何とか入手しまして、現在35個持っています。
私自身もWristPDAユーザーで、困ったあげく特攻でロット買いしたわけです。

PD3032は、2006年10月30日に納品された新品です。
全品テスターで当たって規定の3.7V付近の電圧が出ていることは確認しています。

テスターでのチェック作業の動画

こんなにいっぱい持っていてもしょうがないので、これを一つ\3,500で頒布致します。頒布は頒布会を通して行ないます。
まだ数に余裕があるので、特に個数制限はしません。2個持っていかれて、1個は交換作業代行(後述)に回す、といったパターンの方が多いです。

郵送による頒布(通販)も始めました。

頒布会は、以下のような形で行ないます。
これは先週に引き続き2回目の開催となります。初回開催時の参加者の方々には、お喜びいただけたようです。

日にち:11月11日
時  間:午後6時
場  所:秋葉原
集合場所:LAOX Computer館1Fの中央通り側入り口付近

※変更の可能性がありますので、10日お休み前にチェックをお願いします。

免責について

品質については無保証です。
無保証ではありますが、在庫の中から自由に選んでいただき、目の前でテスターにて電圧を見ていただき、納得いただいた上でお渡しします。
交換には半田づけが必要です。希望があり、条件が揃えば(次項にて説明)、交換作業代行が可能です。交換作業代行は無償です。
ただ、作業結果についても無保証とさせてください。

さして難しい作業ではないので、実績としては過去5例全数成功です。

当日の流れ

交換作業代行は私一人で行ないますので、作業は1台ずつこなしていくことになります。
当然、後の方になるほど待ち時間が多くなります。
順番は、エントリ順としたいと思います。
交換にかかる作業時間は、実績としては1台当たり15分程度です。

待っている間はどちらにいらしても結構ですが、作業が終わり次第メールを飛ばしますので、ほぼリアルタイムでチェックが可能なメールアドレスをご用意ください。

  1. 頒布会開始時間(午後6時)に集合場所(LAOX Computer館1F中央通り側入り口付近)に集合
  2. 手近なカフェ、喫茶店等でバッテリーを頒布(道端でもいいですが)
  3. 交換作業が必要なWristPDAを回収して、マルツメイク館 で作業に入る
  4. 作業終了次第メールを飛ばして、順次引き取りに来ていただく

エントリー

参加表明に当たっては、

・必要なバッテリーの個数
・交換の必要性と台数
・メールアドレス(ほぼリアルタイムで連絡が取れれば捨てアドで結構です)

を書いて、以下メールアドレスにお送りください。
11日当日のご連絡でも、対応するべく努力致します。

wristpda
gmail.com

交換作業代行を希望される方は、WristPDAにUSB給電して、動作することを確認してください。
私は修理屋ではないので、壊れたものは直せません。

| | Comments (1) | TrackBack (0)

2006.11.04

本日WristPDA用純正同等バッテリーPD3032頒布会開催中

(追記)郵送による頒布を始めました。WristPDA用バッテリPD3032の郵送による頒布(通信販売)開始

突然ながら、本日11月4日にWristPDA用バッテリの頒布会をやることにしました。
時間はAM11:00以降なら、今日一日中対応するつもりです。

テスターで確認した限りではモノ(PD3032)は大丈夫なようです。

チェック作業を撮影した動画

1個3,500円です。
交換作業が必要なら無償でやります。 作業内容は一つ前のエントリをご参照ください。
ただし保証無しです。
その時点で残っているバッテリー全数とテスターを渡しますので、好きなものを選んでいただいて結構です。

待ち合わせ場所は自宅最寄り駅前のマクドナルド店頭。渋谷からおよそ5分の駅です。

wristpda
gmail.com

興味がありましたら、上記メールアドレスにご連絡いただき、希望時間、必要な個数、交換作業の必要・不要と台数をお知らせください。

交換作業が必要な場合は、マクドナルドで回収した後、自宅で作業、取って返しでお渡し、という流れで考えてます。それゆえの自宅最寄り駅です。
作業の間、時間をつぶしていただくことになります。

1台10分〜15分の作業、行き来で10分、その合計程度を待ち時間の目安と考えてください。

50個納品、うち6個を自分用として確保、別口で5個はけて、8個〜16個程度予約といった状況で、残りは23個〜31個です。

現在、
11:00
12:30(2件)
に先約が入っています。

4日になって読んだという方も、興味があれば連絡してみてください。
自宅近辺ですので、臨機応変に対応します。

頒布内容に関してはいぶかしく思う人もおり、赤裸裸なやりとりを以下で行なっております。
ご参照ください。

http://pc8.2ch.net/test/read.cgi/mobile/1127367235/

最新情報はコメントにも書かれていく流れかと思いますので、コメントもご参照ください。

数に限りがあるゆえ、品切れの際はご容赦ください。

| | Comments (5) | TrackBack (0)

2006.11.02

WristPDA(ABACUS AU5005)のバッテリー交換(純正同等品を使用)

(追記)郵送による頒布を始めました。WristPDA用バッテリPD3032の郵送による頒布(通信販売)開始

WristPDA(ABACUS AU5005)のバッテリーが過放電で逝ってしまったので、バッテリー交換をしました。

これまでに公開されているWristPDAのバッテリー交換作業との違いは、ストック状態にこだわったところです。
せっかくの腕時計型PDA、やはり腕時計然としたスマートな外観を保ちたいものです。

元々バッテリーの持続時間が短いWristPDA、放っておいて逝くのはしょうがないにしても、劣化によっても比較的早期に実用レベル以下になってしまうことが予想され、バッテリー交換はユーザにとってかなり危急度の高いテーマと言えるのではないでしょうか。

だれかの参考になるかもしれないので、手順をまとめました。

免責

この記事を参考にして作業する場合は、自己責任でお願いします。

昨今世間を騒がす存在となっているので説明不要かと思いますが、リチウムイオンバッテリーは扱いを間違うと危険な代物です。よく、その危険性について理解した上で作業に臨んでください。

道具を用意する

いくつかある選択肢の「のべ」道具数となっているので、後続の説明を読んでください。

  1. 交換用バッテリー
  2. 精密ドライバー(+) 可能ならマグネット付き
  3. 半田ごて40W 2本
  4. 半田
  5. 半田吸い取り線もしくは自動半田吸い取り器(自動半田吸い取り器は20,000円ぐらいするので現実的でないですが)
  6. ドラフティングテープ
  7. タイラップ
  8. 結束バンド
  9. 新聞紙を丸めたもの等
  10. 経年劣化の少ない絶縁用のテープ/シール等

バッテリーを入手する

どうにかしてバッテリーを入手します。
特に入手経路、価格等は秘します。

R0011313

裏蓋を外す

裏蓋四隅にあるビス4本を外します。

R0011317

無くすと痛いので、写真のようにビニール袋かトレーのようなものの中で作業するようにしてください。

R0011318

プッシュボタンがすっ飛ぶという話もあります。バネが飛んだら見付けるのは不可能でしょう。

R0011319

ケースからモジュールを取り出す

基板の四隅にあるビスを外します。

R0011320

レバーの反対側からモジュールを抜き取ります。

写真撮影のために袋から出していますが、ここまではビニール袋の中で作業すべきです。

R0011324

ドラフティングテープでマスキングする

ドラフティングテープを用意します。

R0011325

ドラフティングテープで写真のようにマスキングします。

ケアレスミスを防ぐためです。

R0011329

半田ごてが1本しか無い場合

半田ごてが1本しか無い場合は、写真のようにバッテリーのマイナス側をニッパーなどで切断します。

この際、ニッパーで隣の端子とショートさせないように細心の注意を払ってください(過放電状態でも念のため)。

R0011330

切断したら、半田ごてで残った方を暖めて、バッテリーを取り外してください。

注意すべきは、力で外そうとしないこと。自然に外れる状態になるまで暖めます。

さもないと、基板を痛めて壊してしまう可能性があります。

かといって、基板を暖め過ぎてもよくないので、加減が必要です。

半田ごてが2本ある場合

半田ごてが2本ある場合は、写真のようにタイラップや結束バンド、新聞紙を丸めたものなどを活用して2本の半田ごてを合体させます。

R0011334

角度とこて先の距離が、写真のようにちょうどいい案配になるようにします。

R0011335

これでバッテリーの両方の足を暖めて外します。

注意すべきは、力で外そうとしないこと。自然に外れる状態になるまで暖めます。

さもないと、基板を痛めて壊してしまう可能性があります。

かといって、基板を暖め過ぎてもよくないので、加減が必要です。

R0011336

ランドの掃除(自動半田吸い取り器がある場合)

外した跡に残った半田を掃除します。

自動半田吸い取り器がある場合は、それを使って残った半田を吸い取ります(よもや、これを持っているような人はこんな記事読まないでしょうが)。コトは一瞬でカタが付きます。

R0011338

ランドの掃除(自動半田吸い取り器が無い場合)

外した跡に残った半田を掃除します。

半田吸い取り線を用意して半田ごてで暖めながら、残った半田を毛細管現象を利用して吸い取ります。

R0011342

一般に自動半田吸い取り器を使う場合より時間がかかるので、周囲の部品を熱で壊さないよう、手で周囲を触りながら休み休みやった方がいいでしょう。

写真は20Wの極細タイプの半田ごてを仮に当てているだけです。半田吸い取り線には向いていないので、実際には40Wぐらいの半田ごてを使ってください。

半田吸い取り線がくっついてしまった場合は、力を入れて剥がそうとしないこと。

バッテリーを外す場合と同じですが、ランドが剥がれてしまい、再起不能になる可能性があります。

交換後の様子

交換後はこんな感じです。

前出の20Wの極細コテでやったので、熱量が足りずあまり奇麗にいってませんね。

R0011344

本体から外したバッテリーと交換用バッテリーとの対比

写真手前が、本体から外した古いバッテリー。
写真奥が、用意した新しいバッテリーです。

表(マイナス面)。

R0011345

裏(プラス面)。シールで絶縁してあります。交換用のバッテリーは絶縁されていなかったので、適当にドラフティングテープを貼って絶縁しました。

R0011346

その先の提言

放置するとすぐバッテリーが過放電で逝ってしまうWristPDA。
バッテリーを直に取り付けず間にスイッチを介して、使わないときはスイッチを切っておくのも一考かと思います。

写真は仮に置いているだけです。実際にはバッテリーの片方の端子に被服線を半田付けし、その上に熱収縮チューブをかぶせて絶縁します。対になるランドにも被服線を半田付けして、その2本の被服線の間にスイッチをつなぐ、といった感じになるでしょう。基板へはバッテリーの片方の足だけ半田付けするわけです。

写真のような表面実装用DIPスイッチなら切り詰めた端子にバッテリーからの被服線を半田付けし、それが丸ごと入る太さの熱収縮チューブを用意して、端子部分の絶縁をするといいと思います。ショートはとても危険なので、細心の注意を払う必要があります。

R0011307

WristPDAはPD3032という180mAのバッテリーを使っていますが、300mAの容量を持つPD3048というバッテリーが存在します。PD3048はPD3032より1.6mm厚いので、クリアランスが十分取れるか不安です。
その場合は、以下のようなパーツを作って嵩を稼ぐといいのではないかと思います。

Wristpdaparts3d

Illustratorでトレースしたデータがあるので、それを加工サービス(CNC加工サービスや、レーザー加工サービス等)に出すと、うまくできるのではないかな、と空想しています。
こういった類いの案件に前向きな加工屋さんがあったら教えてください。

| | Comments (0) | TrackBack (1)

2006.10.28

バグ修正: PalmOS(WristPDA)用アプリGarbageDay v.0.2

すいません。PalmOS(WristPDA)用アプリGarbageDayにバグがあったので直しました。
SleepからのWake時にも画面更新するようにしました。
ダウンロードは以前のエントリから。

PalmOS(WristPDA)用アプリGarbageDay v.0.2

ところで、Treo90の液晶がワキガ臭いのに昨日気づいたんですが、何なんでしょうか……。
ときどき嗅いでしまいます。

自分用メモ

SleepからのWake時のイベントを処理したい場合はNSBSystemLibが必要。
NSBSystemLibに定義されているSetWakeEventを使う。

Start Up CodeのNSBSystemLibロード時とかに、SetWakeEventでイベントコードを指定。

LoadLibrary "NSBSystemLib", "NSL"
NSL.SetWakeEvent 30001

フォームのEvent Codeには、例えば以下のように書いて、Wake時のイベントを処理する。
flushevents()の実行が必要だが、無差別に実行するとclick等の後続イベントが処理されなくなるので、影響が限定的になるようにする。

If geteventtype() = 30001 Then
'flushevents()しないと、SetWakeEventにイベントコードをセット
'している場合、Wake時にハングする
NSL.flushevents()
drawKind()
SetEventHandled
Exit Sub
End If

| | Comments (0) | TrackBack (0)

2006.10.27

PalmOS(WristPDA)用アプリGarbageDay v.0.2

NS Basic/Palmで思い出したようにWristPDAで使うアプリを作ってみました。
本当に糞つまんないアプリで恐縮ですが、枯れ木も山の賑わいということで……。

----------------------------------------
PalmOS用分別ゴミ種別表示アプリ "GarbageDay"
----------------------------------------
Name: GarbageDay
Version: v.0.2
Author: moyashi
種別: Free Software
配布サイト: http://moyashi.air-nifty.com/
----------------------------------------

[ Made with NS Basic / Palm 5.0.6 ]

Garbageday01

Garbageday02

ダウンロード

「garbageday_v02.zip」をダウンロード

履歴

v.0.2

 土曜日の午後に起動するとエラーが出ていたので修正
 SleepからのWake時に画面更新をするようにした

v.0.1

 初版

動機

鳥頭ゆえになかなか分別ごみの種別が覚えられないので作りました。
しかし、作る過程で覚えてしまいました。

免責

無保証です。

動作確認環境

PalmOS v.4.1.2 (WristPDA)

WristPDAで動かすことを念頭に置いて書きましたが、恐らく多くのPalmデバイ
スで動作可能かと。

インストール

GarbageDay.prc
NSBRuntime.prc
NSBSystemLib.prc

上記のファイルをHotSyncしてPalmデバイスにインストールしてください。

使い方

初回起動時は初期設定を保存するデータベースを作成する旨のメッセージが表
示されます。異常を示すものではありません。

起動したら、Menu項目のPreferencesを選択し、各曜日の分別ゴミの種別を指定
してOKボタンを押してください。

PushButton上の表示文字と、分別ゴミ種別対応は以下の通りです。

 kanen -- 可燃ごみ
 funen -- 不燃ごみ
 sigen -- 資源ごみ
 none -- 回収無し

メイン画面に戻ると、その日の朝、もしくは翌日朝の回収ごみの種別が表示さ
れます。

12:00PM~23:59PMは、翌日朝の回収ごみの種別を。00:00AM~11:59AMはその日
の朝の回収ごみの種別を表示します。

自分用メモ

文字列変数にオブジェクト名を代入しておくと、それでオブジェクトにアクセスできるというのを知って、Preferences画面で助かった。

Dim objName As String
objName = ”Field" + Str(1003)

objName.text = "Test"

オブジェクト配列みたいなのが使えるとのこと。
フォーム上のコントロールには関数Controls()に整数の引数を渡すことでアクセスできるそうだ。

Controls(1).text

CONTROLS(index as integer).propertyName

フォーム上のすべてのコントロールには、1からForm.countまでのindexが付いている。
でも、これIDEのプロパティインスペクタでは分からないんだよね。
プロパティインスペクタに表示されて、なおかつ任意のindexに付け替えられると楽なのに。

Controls()をループの中で回す際には、コントロールのtypeプロパティで種別を判定して処理、といったことができそうだ。

サスペンドから復帰した際に画面の更新をしたいのだけど、それってどうやるのだろうか。
FormのEvent Codeに来るイベントをフックすればできるかな。
NSBSystemLibのSleep and Wake Event Functions辺りでできそうだ。Tech Note 14に記述あり。(Tech Note 14日本語訳)

| | Comments (0) | TrackBack (1)

2006.02.23

NS Basic/Palm 5.0.5におけるマイナーな機能拡張と修正点

NS Basic/Palmが5.0.5にバージョンアップ! それも2月9日のことですが。
mizunoさんのところにも載らないようなのでバージョンアップ内容をあげてみた。
本家にも載ってないから、これは公開しちゃいけないものなのか?

前のバージョンでは、一部IDEの機能が使えなかったので、助かった。
マメなバージョンアップがあって、ユーザとしては安心できます。
適当な翻訳なので、参考程度に……。

WristPDAは、最近別のことに夢中でいじってない……。

1.二つの文字列を連結できる連接演算子「&」が使えるようになった
2. 共有ライブラリ「DevInfoLib」と「DocReaderLib」がインストールされるようになった
3. Codemaxのバージョンが4.0.0.11になった
4. 大きな数を扱う際の問題を修正した (1E53, 1E54)
5. いくつかのスクロールバーファンクションにおけるシミュレーターからの警告問題を修正した
6. プロパティー「Scroller.MaxValue」が適切にglueファンクションを使うようになった
7. 一つの構文の中で使える文字列変数が100まで増えた
8. IDE関連: フォーム削除時に、確認のダイアログを出すようになった
9. IDE関連: オプションの「Brace matching」をはじめ、その他コードウインドウのオプションが適切にセーブされるようになった
10. IDE関連: コードウインドウのキーボードコマンドの初期設定が適切にセーブされるようになった
11. IDE関連: メソッド「ListBox.Remove」がコード補完候補に表示されるようになった
12. IDE関連: メソッド「Grid.BindToDatabase」がコード補完候補に表示されるようになった
13. IDE関連: 予約語「LET」が正しくカラーシンタックスハイライティングされるようになった
14. IDE関連: プロジェクトエクスプローラーを極端に左へ移動しても、もはやエラーを起こさなくなった
15. IDE関連: プロパティーウインドウの上端を極端な位置にすることが、もはや問題ではなくなった
16. IDE関連: ScrollBar.CurrentがScrollBar.Valueと同様にふるまうようになった
17. TreoTestサンプルをアップデート: emailを送るのにSendEMailファンクションを使うようにした(SendEmailファンクションを使うemail送信サンプルを追加した?)

なお、FossilからWristPDAの販売が終了とのこと。ただ、SDKはまだここから落とせるそう。

| | Comments (0) | TrackBack (0)

2005.11.25

続々・NS Basic/PalmでWristPDAのボタン入力を判定

前回記事に、またHALさんからアドバイスをいただいた。

結局、NS Basic/PalmによるWristPDAのボタン入力判定は、以下のようになった。
これで完璧……だと思いたい。ダブルプッシュの判定もやってみた。
ダブルプッシュはsysinfo(1)で取得したTickを計測して実現。
長押し判定もやりたいけど、どうやって実現しようか?

'ダブルプッシュ判定無し版

Sub Form1003_Event()
If geteventtype() = nsbKeyOrButton Then
Select Case getkey()
Case &hb
Field1004.Text = "Page Up"
Case &hc
Field1004.Text = "Page Down"
Case &h2e
Field1004.Text = "Rocker Up"
SetEventHandled
Case &h2f
Field1004.Text = "Rocker Down"
SetEventHandled
Case &h30
Field1004.Text = "Rocker Enter"
End Select
End If

End Sub

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

'ダブルプッシュ判定付き版

Sub Project_Startup()
Global UpDoublePush as Integer
Global DownDoublePush as Integer
Global EnterDoublePush as Integer
End Sub

Sub Form1003_Event()
Dim DoublePushTick as Integer
DoublePushTick = Val(Field1010.Text)
If geteventtype() = nsbKeyOrButton Then
Select Case getkey()
Case &hb
Field1004.Text = "Page Up"
Case &hc
Field1004.Text = "Page Down"
Case &h2e
Field1004.Text = "Rocker Up"
If (sysinfo(1) - UpDoublepush) < DoublePushTick Then
Field1008.Text = "Up Double Push"
Else
Field1008.Text = "Not Up Double Push"
End If
UpDoublepush = sysinfo(1)
SetEventHandled
Case &h2f
Field1004.Text = "Rocker Down"
If (sysinfo(1) - DownDoublepush) < DoublePushTick Then
Field1008.Text = "Down Double Push"
Else
Field1008.Text = "Not Down Double Push"
End If
DownDoublepush = sysinfo(1)
SetEventHandled
Case &h30
Field1004.Text = "Rocker Enter"
If (sysinfo(1) - EnterDoublepush) < DoublePushTick Then
Field1008.Text = "Enter Double Push"
Else
Field1008.Text = "Not Enter Double Push"
End If
EnterDoublepush = sysinfo(1)
End Select
End If

End Sub

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

でもこれだと、ボタンを押していない時間が長いと、ダブルプッシュ判定の変数がオーバーフローするかな。

wristpda_getkey

--
検索用: nsbasic

| | Comments (0) | TrackBack (0)

2005.11.24

続・NS Basic/PalmでWristPDAのボタン入力を判定(未完)

前回の記事の引き続き。
WristPDAには欠かせない存在であるHALさんより、前回の記事にアドバイスをいただいた。
曰く、

具体的には FrmDispatchEvent() が false を返した場合に2度目のキーイベントが生成されるので,そうならないように自前のイベントハンドラで true を返してやればいいはずです。

とのことで、これそのものの実現はよく分からなかったものの、以下のようにSetEventHandledを書くと、Rocker Down/Upの2回目のイベントは来なくなるので、普通に判定すればOKになった。
でも、これを施術したアプリを起動中、電源が落ちなくなった……。
冒険はまだ続く。

もう古いので、こちら参照。

Sub Form1003_Event()
If geteventtype() = nsbKeyOrButton Then
Select Case asc(getkey())
Case 11
Field1004.Text = "Page Up"
Case 12
Field1004.Text = "Page Down"
Case 46
Field1004.Text = "Rocker Up"
Case 47
Field1004.Text = "Rocker Down"
Case 48
Field1004.Text = "Rocker Enter"
Case 17
Stop
End Select
End If
SetEventHandled
End Sub

| | Comments (2) | TrackBack (0)

2005.11.22

NS Basic/PalmでWristPDAのボタン入力を判定

もう古いのでこっち参照。

NS Basic/PalmでWristPDAのボタン入力判定をやってみた。
全部GetKey()で値を返してくれたが、Rockerボタンがやっかい。
これは1度の入力につき、2回イベントが発生。それぞれ別の値を返してくる。
Rocker Upが46-->11、Rocker Downが47-->12といった感じだ。
1回目の46, 47はユニーク(固有)だが、2回目の11, 12はPage Up、Page Downと同じ値。
だから、46か47が来たら、その時点ではフラグを立てるだけでやり過ごし、11か12が来たら、フラグが立っているかどうかで、Rocker Up/Downか、Page Up/Downのどっちかと判定すればOK。

Rocker Up/Downの反応が鈍いのは、入力判定に2イベントループ分の時間がかかるからなのかと納得。

Asc()でIntegerに変換してから判定しているけど、Hexのまま判定したら、少しはレスポンスへの貢献があるだろうか。

'Startupでフラグ用のGlobalな変数を用意。
Sub Project_Startup()
Global RockerFlag as Integer
RockerFlag = 0
End Sub

'フォームのEventでボタン入力判定
Sub Form1003_Event()
If geteventtype() = nsbKeyOrButton Then
Select Case asc(getkey())
'Rocker Up2回目、もしくはPage Up
Case 11
If RockerFlag = 1 Then
Field1004.Text = "Rocker Up"
RockerFlag = 0
Else
Field1004.Text = "Page Up"
End If
'Rocker Down2回目、もしくはPage Down
Case 12
If RockerFlag = 1 Then
Field1004.Text = "Rocker Down"
RockerFlag = 0
Else
Field1004.Text = "Page Down"
End If
Case 46
'Rocker Up初回はフラグ立てるだけ
RockerFlag = 1
Case 47
'Rocker Down初回もフラグ立てるだけ
RockerFlag = 1
Case 48
'Rocker Enter
Field1004.Text = "Rocker Enter"
End Select
End If
End Sub
----
検索用: nsbasic

| | Comments (2) | TrackBack (0)

2005.11.19

NS/Basic Palmで実行ファイルに共有ライブラリを埋め込む

WristPDA用のアプリを作ろうとすると、デカフォントのためにNSBSystemLib.prcという共有ライブラリが必要になるけれども、それまでユーザにインストールさせるのは負担。
そんな場合は、実行ファイルの中に共有ライブラリをリソースとして埋め込む手が使えると知った。

共有ライブラリが必要な処理の前(普通はStartupだろう)に、共有ライブラリの存在判定をして、無かったらリソースからの展開処理を実行。
下記の例でいくと、「dbcreatedatabasefromresource("DBIM", 1009)」が実行されると、実行ファイルに埋め込んだNSBSystemLib.prcがメモリ中に復元され、共有ライブラリのインストールが完了。

実行ファイルに埋め込まれたNSBSystemLib.prcと、メモリに展開されたNSBSystemLib.prcとで、メモリを倍消費することになるが、Fatal Error知らずで、こりゃいいかも。

Sub Project_Startup()
Dim res as Integer
Dim dblib as Database

'NSBSystemLibが存在するかどうか、試しに開いてみる
res = dbopen(dblib, "NSBSystemLib", 0)
'NSBSystemLibが存在しなかったら、
If res > 0 Then
'リソースからデータベースファイル(共有ライブラリ)を作る
'Object IDは、プロジェクトにリソースとして放り込んだNSBSystemLibのもの
dbcreatedatabasefromresource("DBIM", 1009)
Else
'もし存在してたら、開いたNSBSystemLibを閉じる
res = dbclose(dblib)
End If
'共有ライブラリの読み込み
LoadLibrary "NSBSystemLib", "NSL"
End Sub

----
検索用: nsbasic

| | Comments (0) | TrackBack (0)

2005.11.17

続・NS Basic/PalmでWristPDAのラージフォントを使う

やっぱりFieldでもラージフォント(Font ID 18, 23)使えました。
ProjectのStartupで例によってNSBSystemLibを読み込み、以下のようにすればOKです。

FieldSetFontの最初の引数はオブジェクトのID。Field1005ってNameのオブジェクトのIDは、デフォルトでは1005なので、1005ですね。第二引数はFont IDなので、WristPDAのデカ太フォントだと23です。
返り値は受け取らない形です。

Sub Form1003_After()
Field1005.Text = "FieldでFont ID 23を利用するテストです。"
NSL.FieldSetFont 1005, 23
End Sub

LargeFontTest2

名前の通り、指定はFieldにしか効かないのが残念。

----
検索用: nsbasic

| | Comments (0) | TrackBack (0)

NS Basic/PalmでWristPDAのラージフォントを表示する

NS Basic/Palmは、標準的な方法だとFont ID 7までのフォントしか使えず、WristPDA上で見ると、文字が小さくて辛いですが、NSBSystemLibを使った師の教えを実行したら、NS Basic/PalmでもWristPDAのラージフォント(Font ID 18, 23)を表示できました。

この手は以前書いたようにDrawCharでしか使えないようなので、Fieldなどのコントロール内の文字を大きくすることはできませんが、それでも助かることは確か。

スクリーンショットのボタン上のデカテキストは、ボタンのLabelを空白にしておいて、その上にDrawCharsで座標合わせて描いてます。名付けてUniFEP方式(w
POSE上では描いている様が丸分かりですが(VirtualPC上のPOSEなもんで)、WristPDAの実機では大丈夫。
FormのAfterに書いておけば、画面を変遷するアプリでも、ちゃんとFormの描画時に描き直してくれるので大丈夫。ボタンを押したときの反転においても、四角いフチが露呈するというようなことも無く、実に自然。

Fieldで文字入力するときの文字を大きくできないのが実に残念ですが……。

追記:ちょ、ちょっと待った。Fieldは同じNSBSystemLibのFieldSetFontでできそうではないか。後で試します……。

LargeFont

'スタートアップで共有ライブラリ読み込み。実行環境にもNSBSystemLib.prc必要。

Sub Project_Startup()

LoadLibrary "NSBSystemLib", "NSL"

End Sub

'FormのAfterで文字を直接描画。

Sub Form1003_After()

Dim res as Integer

'フォームに直接書く
res = NSL.FontSetFont(18)
DrawChars "テスト(Font ID 18)" ,2 ,30

res = NSL.FontSetFont(23)
DrawChars "テスト(Font ID 23)" ,2 ,60

res = NSL.FontSetFont(7)
DrawChars "テスト(Font ID 7)" ,2 ,90

res = NSL.FontSetFont(18)
DrawChars "ボタン" ,55 ,128

End Sub

----
検索用: nsbasic

| | Comments (0) | TrackBack (0)

2005.11.03

Mac OS X用Palm Desktop 4.2.1 revB、revDで緊急の問題

ムスティさんのところで、Palm Desktop 4.2.1 revB及びrevDの注意点という記事が。rev B、rev Dをインストールすると、アクセス権がおかしなことになるそうだ。
Palm Desktop 4.2.1 rev B及びrev Dのインストール経験のある方は、アクセス権の修復を。

| | Comments (0) | TrackBack (0)

2005.11.02

NS Basic/Palm習作(WristPDA用アプリ)

WristPDA用に何か作ろうということで、NS Basic/Palmデモ版で作ってみた。

本の発売日から発行日と返品期限を求めるくだらないものだ。
Jot、Graffiti、スタイラスを使わずに人差し指で操作するインターフェイスというのを考えながら作ってみた。

app1

app2

フォームデザイナー上では、FONTはNS Basic/PalmデフォルトのFONT ID 0~7までしか指定できず、最大12ドットだからまだ字が小さい。

NSBSystemLib.inf / NSBSystemLib.prcがあれば、

当該プログラムのStartup codeに Sub main() LoadLibrary "NSBSystemLib", "NSL" End Sub をいれ After codeに

Dim WristPDAFontID as Integer

WristPDAFontId = NSL.FontSetFont(18)
DrawChars "TEST" ,10 ,40 'フォームに直接書く
WristPDAFontId = NSL.FontSetFont(23)
DrawChars "TEST" ,60 ,40 'フォームに直接書く

こんな風にしてNSBSystemLibのFieldSetFontやFontSetFontを使えば7以上のFONT IDが指定できるようだ。
しかし、デモ版には共有ライブラリNSBSystemLib.inf / NSBSystemLib.prcが添付されてない(デモ版の制限)ので、残念ながら試すことができない。

FieldSetFontは指定したフィールドのFONT IDに、FontSetFontは、直後のDrawCharsのFONT IDに影響を与えるもののようだ。
NS Basic/Palmは、NS Basic/CEのAddObjectステートメントのように、コードからコントロールを配置することができないようで、これではコントロールに大きな文字を使ったりができなさそう。
つまり、フォームデザイナーでもFONT ID 7以上に指定できないばかりか、コードからFontSetFontでFONT IDを指定してからコントロールを配置しようにも、コントロールを配置するファンクションが無いので八方塞がり。コントロールにFONT IDのR/Wなプロパティがあればいいが、これはフォームデザイナーのみで設定可能なプロパティということで、コードからは見えない。

コントロールのLabelを空白にしておいて、その上にDrawCharsでLabelを書けばいいのかもしれないが、なんかPSIONの日本語化キットであるところのEnFourのUniFEPの手法みたいで気持ち悪いなぁ(笑)。

やっぱりGCCでチクチク開発するしかないのだろうか。

| | Comments (0) | TrackBack (0)

2005.10.26

WristPDAとMac OS X用PalmDesktop4.2.1でHotSync可能にするパッチ登場

ムスティさんのところから、Mac OS X用PalmDesktop4.2.1でWristPDAとHotSync可能にするパッチPD Sync Wrist PDAがリリースされました。
このほか、PalmDesktop4.0J(MacOS9)、PalmDesktop2.6.3J(MacOS9)でWristPDAを認識可能にするパッチもリリースされてます。
自分提案の方法だと、新しいPalmと併用したい人の場合、困ることもあると思うので、PalmDesktop4.2.1で認識可能なPalmデバイスに加え、さらにWristPDAも認識可能にするムスティさんのパッチを使う方がいいでしょう。

ってまあ、だれも読んでないBlogに書いてもしょうがないんですが。
これでかなり広汎なMacユーザに訴求する機種になったんで、コミュニティが活発になることに期待。

一応WristPDAのSDKを落としてきたけど、Cで書くわけですよね。
一本ぐらいは何か作ってみたいけどできるかな。
Cには苦手意識がある……。NS Basic/Palmに逃げそう。
どなたか開発HowToを公開してくれないかな。

| | Comments (2) | TrackBack (1)