[prev in list] [next in list] [prev in thread] [next in thread]
List: rxtx
Subject: [Rxtx] =?koi8-r?b?UGF0Y2ggZm9yIFdpbkNFIChyeHR4LWRldmVsXzJfMSk=?=
From: Ivan Maidanski <ivmai () mail ! ru>
Date: 2009-11-21 21:10:19
Message-ID: E1NBxDn-0001ph-00.ivmai-mail-ru () f10 ! mail ! ru
[Download RAW message or body]
Hello all!
The attached patch fixes several compilation errors (and eliminates some warnings) in \
WinCE gnu_io_RXTXCommDriver.cpp, gnu_io_RXTXPort.cpp, rxtxHelpers.cpp. Tested with \
arm-mingw32ce-gcc.
PS. I've also upgraded WinCE rxtx sources to version RXTX-2.2pre2 but the patch is \
not ready at this moment.
Thanks.
["rxtx-devel-ivmai1.diff" (application/octet-stream)]
diff -ru CVS/rxtx-devel_2_1/WinCE/gnu_io_RXTXCommDriver.cpp \
updated/rxtx-devel_2_1/WinCE/gnu_io_RXTXCommDriver.cpp
--- CVS/rxtx-devel_2_1/WinCE/gnu_io_RXTXCommDriver.cpp 2007-04-26 08:26:04.000000000 \
+0300
+++ updated/rxtx-devel_2_1/WinCE/gnu_io_RXTXCommDriver.cpp 2009-11-18 \
20:04:50.000000000 +0300 @@ -170,7 +170,7 @@
if ( type == PORT_SERIAL )
{
- const WCHAR *wszDev = env->GetStringChars(dev, NULL);
+ const WCHAR *wszDev = (const WCHAR *)env->GetStringChars(dev, NULL);
HANDLE hPort = CreateFileW(wszDev, // Pointer to the name of the port
GENERIC_READ | GENERIC_WRITE,
// Access (read-write) mode
@@ -202,7 +202,7 @@
)
retVal = JNI_TRUE;
}
- env->ReleaseStringChars(dev, wszDev);
+ env->ReleaseStringChars(dev, (const jchar*)wszDev);
}
else
retVal = JNI_FALSE;
diff -ru CVS/rxtx-devel_2_1/WinCE/gnu_io_RXTXPort.cpp \
updated/rxtx-devel_2_1/WinCE/gnu_io_RXTXPort.cpp
--- CVS/rxtx-devel_2_1/WinCE/gnu_io_RXTXPort.cpp 2007-04-26 08:26:04.000000000 +0300
+++ updated/rxtx-devel_2_1/WinCE/gnu_io_RXTXPort.cpp 2009-11-18 22:49:56.000000000 \
+0300 @@ -97,7 +97,7 @@
EventInfoStruct *EventInfo;
DWORD dwErr;
- LPCWSTR wszName = env->GetStringChars(name, NULL);
+ LPCWSTR wszName = (LPCWSTR)env->GetStringChars(name, NULL);
HANDLE hPort = CreateFileW(wszName, // Pointer to the name of the port
GENERIC_READ | GENERIC_WRITE,// Access (read-write) \
mode 0, // Share mode
@@ -112,7 +112,7 @@
throw_java_exceptionW(env, PORT_IN_USE_EXCEPTION, L"open - CreateFile", lpMsgBuf \
); // Free the buffers.
ReleaseErrorMsg(lpMsgBuf);
- env->ReleaseStringChars(name, wszName);
+ env->ReleaseStringChars(name, (const jchar*)wszName);
return (jint)INVALID_HANDLE_VALUE;
}
@@ -141,7 +141,7 @@
throw_java_exceptionW(env, PORT_IN_USE_EXCEPTION, L"open - SetCommState", \
lpMsgBuf); // Free the buffers.
ReleaseErrorMsg(lpMsgBuf);
- env->ReleaseStringChars(name, wszName);
+ env->ReleaseStringChars(name, (const jchar*)wszName);
return (jint)INVALID_HANDLE_VALUE;
}
@@ -164,7 +164,7 @@
throw_java_exceptionW(env, PORT_IN_USE_EXCEPTION, L"open - SetCommTimeouts", \
lpMsgBuf); // Free the buffers.
ReleaseErrorMsg(lpMsgBuf);
- env->ReleaseStringChars(name, wszName);
+ env->ReleaseStringChars(name, (const jchar*)wszName);
return (jint)INVALID_HANDLE_VALUE;
}
@@ -172,13 +172,13 @@
EscapeCommFunction(hPort, SETRTS);
- if(dwErr = InitialiseEventInfoStruct(hPort, &EventInfo))
+ if((dwErr = InitialiseEventInfoStruct(hPort, &EventInfo)) != 0)
{ // Unable to set up EventInfo structure for event processing
CreateErrorMsg(dwErr, lpMsgBuf);
throw_java_exceptionW(env, IO_EXCEPTION, L"open - InitialiseEventInfoStruct", \
lpMsgBuf); // Free the buffers.
ReleaseErrorMsg(lpMsgBuf);
- env->ReleaseStringChars(name, wszName);
+ env->ReleaseStringChars(name, (const jchar*)wszName);
return (jint)INVALID_HANDLE_VALUE;
}
@@ -191,12 +191,12 @@
)
env->ExceptionClear();
// Free the buffers.
- env->ReleaseStringChars(name, wszName);
+ env->ReleaseStringChars(name, (const jchar*)wszName);
return (jint)INVALID_HANDLE_VALUE;
}
env->SetIntField(jobj, jfEis, (jint)EventInfo);
- env->ReleaseStringChars(name, wszName);
+ env->ReleaseStringChars(name, (const jchar*)wszName);
// Returning HANDLE (which is a pointer) as file descriptor... Anyway, 32 bits are \
32 bits return (jint)hPort;
}
@@ -902,7 +902,7 @@
{
//COMSTAT Stat;
//DWORD dwErrors;
- HANDLE hPort = get_fd(env, jobj);
+ //HANDLE hPort = get_fd(env, jobj);
IF_DEBUG
(
@@ -1073,7 +1073,7 @@
HANDLE hCommEventThread;
DWORD dwThreadID, dwWaitResult, dwEvent;
int RetVal;
- HANDLE hPort = get_fd(env, jobj);
+ //HANDLE hPort = get_fd(env, jobj);
EventInfoStruct *EventInfo = get_eis(env, jobj);
IF_DEBUG
@@ -1155,7 +1155,7 @@
// Clearing event - event thread will continue
EventInfo->event = 0;
// Send events to Java
- if(RetVal = SendEvents(env, jobj, dwEvent, EventInfo, jmSendEvent))
+ if((RetVal = SendEvents(env, jobj, dwEvent, EventInfo, jmSendEvent)) != 0)
{
IF_DEBUG
(
@@ -1193,7 +1193,7 @@
JNIEXPORT void JNICALL Java_gnu_io_RXTXPort_interruptEventLoop(JNIEnv *env, jobject \
jobj) {
jfieldID jfid;
- HANDLE hPort = get_fd(env, jobj);
+ //HANDLE hPort = get_fd(env, jobj);
jclass cls = env->GetObjectClass(jobj);
jfid = env->GetFieldID(cls, "monThreadisInterrupted", "Z");
@@ -1260,6 +1260,10 @@
NewFlag = EV_BREAK;
break;
+ default:
+ /* Shouldn't happen. */
+ /* Return here to prevent warning about uninitialized NewFlag. */
+ return;
}
if(flag == JNI_TRUE)
diff -ru CVS/rxtx-devel_2_1/WinCE/rxtxHelpers.cpp \
updated/rxtx-devel_2_1/WinCE/rxtxHelpers.cpp
--- CVS/rxtx-devel_2_1/WinCE/rxtxHelpers.cpp 2007-04-26 08:26:04.000000000 +0300
+++ updated/rxtx-devel_2_1/WinCE/rxtxHelpers.cpp 2009-11-18 20:16:36.000000000 +0300
@@ -1,8 +1,8 @@
+/*-------------------------------------------------------------------------
| RXTX License v 2.1 - LGPL v 2.1 + Linking Over Controlled Interface.
| RXTX is a native interface to serial ports in java.
| Copyright 1997-2007 by Trent Jarvi tjarvi@qbang.org and others who
| Copyright 2002-2004 Michal Hobot MichalHobot@netscape.net
-/*-------------------------------------------------------------------------
| actually wrote it. See individual source files for more information.
|
| A copy of the LGPL v 2.1 may be found at
@@ -300,7 +300,7 @@
return -1;
}
- jsBuf = env->NewString(buf, wcslen(buf));
+ jsBuf = env->NewString((const jchar*)buf, wcslen(buf));
env->CallVoidMethod(objOut, midPrint, jsBuf);
@@ -506,7 +506,11 @@
}
// Set initial event flags: It should be not empty, but unused here and relatively \
rare event +#ifdef EV_POWER
(*EventInfoPtr)->ef = EV_POWER; //In WinNT you can use EV_EVENT2 instead
+#else
+ (*EventInfoPtr)->ef = EV_EVENT2;
+#endif
return 0;
}
_______________________________________________
Rxtx mailing list
Rxtx@qbang.org
http://mailman.qbang.org/mailman/listinfo/rxtx
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic