ざうるす

とうページに関する結果に対して保証できません。

まず、ここ読んでください。

ざうるす

ーーPDA何を買おうへんーー

通勤電車でパソコンでとりこんだメールとかを読めたらいいなぁと思いPDAを購入することを決意しました。
(結構てきとうに登録したメールマガジンがたまっていくんだなぁー。)

ということで、パームの安いのでもと思っていました。駆動時間も流そうだし・・・

お店行って触ってみるとよくでるんだなぁ画面きれいだし、文字認識もいいし、店員さんと話しているとポケットPCも捨てがたくなってくるしさて困ったもんなんだなぁ。

まぁ、色々悩んでザウルスになりました。チャンチャン。

ーー最近へんーー

通勤電車での使用は、まだけっこうテレがあり隠すようにして見ています。
まぁ、あさから携帯でメールを打ち込んでる人いるくらいだから、どうどうと読んだらいいのかなぁー

ザウルス関連のページ

シャープさんのザウルスに関するページ

Win98の入ったNECLavieNX(LB26C/62A)で、ザウルスMI-E1から送信したデータを受信して、その内容をc:\test\2.txtに書きこむことにチャレンジ!

LavieNXの赤外線通信(Irda、光通信)ポートがCOM4でした。任意に変えてみてください。

使用言語はVC++6です。

よくパソコンハングします。原因はなぜ?

データが受信されなくなってから何秒かたって終了するようにしています。そのため、ザウルスは送信完了したと思っていても、通信路をふさいだりしていたときタイムアウトをおこして終了します。途中までですがファイルを作成します。このへん不勉強です。
フロー制御というのが??状態です。まさにお風呂に入って頭が沸騰してる状態です。
どっかのシステムの通信とよく似てるなぁー。

 
#include <stdafx.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>

#define r_buff (100)
#define i_hcom "COM4"
#define o_hcom "C:/test/2.txt"

void main()
{
 //宣言
 
char i_buff[r_buff];
 HANDLE i_h=0;
 HANDLE o_h=0;
 DWORD i_ok=0;
 DWORD o_ok=0;
 COMMTIMEOUTS CommTimeouts;
 void er2();

 //読み込みオープン等
 
i_h=CreateFile(
  i_hcom,
  GENERIC_READ,
  0,
  0,
  OPEN_EXISTING,
  FILE_ATTRIBUTE_NORMAL,
  0);
  if(i_h==INVALID_HANDLE_VALUE){
  i_h=0;
  goto sub1;
  }
 //書き込みオープン等
 
o_h=CreateFile(o_hcom,GENERIC_WRITE,0,
 0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
 if(o_h==INVALID_HANDLE_VALUE){
  o_h=0;
  er2();
  goto sub1;
 }

 DCB dcb;
 GetCommState(i_h,&dcb);
 dcb.fOutxDsrFlow=TRUE;
 dcb.fDsrSensitivity=TRUE;
 dcb.fDtrControl=DTR_CONTROL_HANDSHAKE;
 SetCommState(i_h,&dcb);

 //タイムアウト
 
GetCommTimeouts (i_h, &CommTimeouts);
 CommTimeouts.ReadIntervalTimeout=MAXWORD;
 CommTimeouts.ReadTotalTimeoutConstant=10000;
 SetCommTimeouts (i_h, &CommTimeouts);

 printf("データを送信してください\n");
 for(;;){
  BOOL rw=ReadFile(i_h,
  (LPVOID)i_buff,r_buff,&i_ok,NULL);
  if(rw!=TRUE){
   printf("error1\n");
   break;
  }
  printf("%s\n",i_buff);
  rw=WriteFile(o_h,
  (LPVOID)i_buff,i_ok,&o_ok,NULL);
  if(rw!=TRUE){
   printf("error2\n");
   break;
  }
  if(i_ok!=r_buff){printf("Point 3\n");break;}
  if(o_ok!=r_buff){printf("error4\n");break;}
 }
 printf("終了します\n");

 sub1:
  if(i_h!=0)CloseHandle(i_h);
  if(o_h!=0)CloseHandle(o_h);
  printf("何かボタンを押してください。\n");
  getch();
  return;
}

void er2(){
 printf("ディレクトリーの設定がおかしのでは?\n");
}
使い方

上のプログラムのi_hcomo_hcomの設定をしてから、実行ファイルを作って実行します。

データを送信してくださいとでます。

ザウルスのスケジュールなどの、操作メニューボタンをおして通信の中の光通信で光通信方式をIrDA115kbs(パワーザウルス)で送信します。

すると下のようなのができます。(太字斜線が"D"の数なのかなぁ?) 

"H","1e","MIE1 ","20010304205548","0001","00000001"
"I","SCRT","tPID","mDTM","mISC","CTGR","LKIF","TIM1","TIM2","MEM1","ALON","ALRM","CNTC"
"M","04","MIE1","0001","SCDL","BOXFILE","SCHEDUL1.BOX","1.1","20","20010304205536"
"S","BIT","BINARY","TIME","BINARY","CATEGORY","BINARY","TIME","TIME","CODE","BIT","TIME","UCHAR"
"C","ATTRIB","IGNORE","TIME","IGNORE","CATEGORY","3TO4","TIME","TIME","SJIS1","ALARMSW","TIME","1BHEX2"
"T","アトリビュート","シンクロID","修正時刻","PIM_DB_DATA","カテゴリー","リンク情報","開始時刻","終了時刻","スケジュール内容","データ属性","アラーム時刻","コンタクトデータ種類"
"D"," ",,"20010304115454",,"",,"20010114 ",,"OXの誕生日"," ",,