我是用Palm Vx,最近在寫一個學生資料管理的系統
希望可以不藉由PDA本身所附贈的HotSyn軟體
也就是說,我想要讓PC to Palm / Palm to PC能自由的傳我想要的資料
而且傳輸媒介是RS-232和紅外線都可以
Palm OS上的程式是用NBasic寫的,PC端的程式則是用VB寫
經由測試的結果,PC端可以接收到Palm Vx經由RS-232傳來的字串
但是Palm Vx卻收不到PC端傳來的字串
是Baud Rate:9600,n,8,1參數不對的問題嗎?但是收得到卻傳不過去就不知為何了
此外,各位前輩知道要用什麼語言軟體寫紅外線傳輸的程式嗎?
感謝各位耐心看完這篇
只要速率 9600 , N , 8 , 1 設定正確,應該是可以正常傳輸的。
需要注意的是,會不會是 Rx 和 Tx 的腳位問題,在 Palm Vx 和 PC Com1 的
接法是要使用 NULL Modem 交握的方式,否則就會有問題。
我是常用 C 來寫,就跟用 RS-232 一樣,只是 IRDA 的錯誤率需要用程式
嚴謹資料檢查 CheckSum16/32 來確保正確性。
然後如果要寫 Palm 資料庫同步的程式,其實用導管 CDK4 開發工具就很
方便了,並且用 COM 元件,在 VB 上可以在 HotSync 上直接同步,將串
列資料用四種方式(完整鏡射/逐一比對/去蕪存菁/不動作),寫回 PC /Palm
雙向同步,而資料庫採用 Access/SQL Server/ODBC 等,都是可以,只不
過很花力氣。
我採用過 Delphi + CDK COM 元件和 VC + CDK 直接寫過,效果是VC很快,
但開發時間長,Delphi or VB 開發快,速度比 VC + CDK 慢(資料量一大
時,你就知道,什麼是烏龜比高鐵了。)
但是 Palm 在 CDK 的發展還是沒什麼大的進度,反而是 SyBase 提出的資料
庫解決方案是目前比 IBM 好用效能也不錯的。
如果只是交作業的話,用 Palm CDK 的範例就很夠用了,如果覺得太複雜,
可以採用 COM 的範例,但是如果不熟悉 CDK 的話,出槌的機率蠻大的。
在 VC/.Net 處理的函式呼叫參考:
long CALLBACK ConfigureDlgProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
static CfgConduitInfoType *pCfgInfo;
TCHAR szPath[256];
switch (Message) {
case WM_INITDIALOG:
if (lParam != 0) {
TCHAR szBuffer[256];
TCHAR szBuf2[256];
LoadString((HINSTANCE)hLangInstance, IDS_SYNC_ACTION_TEXT, szBuffer, sizeof(szBuffer));
SetDlgItemText(hWnd, IDC_ACTIONGROUPBOXTEXT, szBuffer);
LoadString((HINSTANCE)hLangInstance, IDS_CONDUIT_NAME, szBuffer, sizeof(szBuffer));
SetWindowText(hWnd, szBuffer);
// Load the bitmaps properly
LoadCfgDlgBitmaps(hWnd);
pCfgInfo = (CfgConduitInfoType *)lParam;
switch (pCfgInfo->syncTemporary){
case eFast:
case eSlow:
CheckRadioButton( hWnd, IDC_RADIO_SYNC, IDC_RADIO_DONOTHING, IDC_RADIO_SYNC);
LoadString((HINSTANCE)hLangInstance, IDS_SYNC_FILES, szBuffer, sizeof(szBuffer));
break;
case ePCtoHH:
CheckRadioButton( hWnd, IDC_RADIO_SYNC, IDC_RADIO_DONOTHING, IDC_RADIO_PCTOHH);
LoadString((HINSTANCE)hLangInstance, IDS_PCTOHH, szBuffer, sizeof(szBuffer));
break;
case eHHtoPC:
CheckRadioButton( hWnd, IDC_RADIO_SYNC, IDC_RADIO_DONOTHING, IDC_RADIO_HHTOPC);
LoadString((HINSTANCE)hLangInstance, IDS_HHTOPC, szBuffer, sizeof(szBuffer));
break;
case eDoNothing:
default:
CheckRadioButton( hWnd, IDC_RADIO_SYNC, IDC_RADIO_DONOTHING, IDC_RADIO_DONOTHING);
LoadString((HINSTANCE)hLangInstance, IDS_DO_NOTHING, szBuffer, sizeof(szBuffer));
break;
}
// did we get called from the old config call or the new cfg call?
if (pCfgInfo->dwCreatorId != 0) {
SetDlgItemText(hWnd, IDC_STATIC_TEMPORARY, szBuffer);
switch (pCfgInfo->syncPermanent){
case eFast:
case eSlow:
LoadString((HINSTANCE)hLangInstance, IDS_SYNC_FILES, szBuffer, sizeof(szBuffer));
break;
case ePCtoHH:
LoadString((HINSTANCE)hLangInstance, IDS_PCTOHH, szBuffer, sizeof(szBuffer));
break;
case eHHtoPC:
LoadString((HINSTANCE)hLangInstance, IDS_HHTOPC, szBuffer, sizeof(szBuffer));
break;
case eDoNothing:
default:
LoadString((HINSTANCE)hLangInstance, IDS_DO_NOTHING, szBuffer, sizeof(szBuffer));
break;
}
SetDlgItemText(hWnd, IDC_STATIC_PERMANENT, szBuffer);
LoadString((HINSTANCE)hLangInstance, IDS_CURRENT_SETTINGS_GROUP, szBuffer, sizeof(szBuffer));
wsprintf(szBuf2, szBuffer, pCfgInfo->szUser);
SetDlgItemText(hWnd, IDC_CURRENT_SETTINGS_GROUP, szBuf2);
}
}
break;
case WM_COMMAND:
switch (wParam) {
case IDC_RADIO_SYNC:
case IDC_RADIO_PCTOHH:
case IDC_RADIO_HHTOPC:
case IDC_RADIO_DONOTHING:
CheckRadioButton( hWnd, IDC_RADIO_SYNC, IDC_RADIO_DONOTHING, wParam);
break;
case IDCANCEL:
EndDialog(hWnd, 1);
return TRUE;
case IDOK:
if (IsDlgButtonChecked(hWnd, IDC_RADIO_SYNC)) {
pCfgInfo->syncNew = eFast;
} else if (IsDlgButtonChecked(hWnd, IDC_RADIO_PCTOHH)) {
pCfgInfo->syncNew = ePCtoHH;
} else if (IsDlgButtonChecked(hWnd, IDC_RADIO_HHTOPC)) {
pCfgInfo->syncNew = eHHtoPC;
} else {
pCfgInfo->syncNew = eDoNothing;
}
if (IsDlgButtonChecked(hWnd, IDC_MAKEDEFAULT)){
pCfgInfo->syncPref = ePermanentPreference;
} else {
pCfgInfo->syncPref = eTemporaryPreference;
}
EndDialog(hWnd, 0);
return TRUE;
-----------------------------------------------------------------------------------------------
I Love SONY 無線未來 行動自由
M$ MFC +Dx10 + ASM是工作必需,Linux + MacOS X 是
樂趣和創意的來源
內文搜尋
X




























































































