【問題】Palm與PC間傳輸的問題

我是用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參數不對的問題嗎?但是收得到卻傳不過去就不知為何了

此外,各位前輩知道要用什麼語言軟體寫紅外線傳輸的程式嗎?
感謝各位耐心看完這篇
2004-09-01 3:16 發佈
文章關鍵字 問題 Palm PC
嗯,不管您用的是 Code Warrior ,eVB (mscom)/eVC(serial device) ,NBasic 等,

只要速率 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
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?