|
|
- /*-------------------------------------------------------------------------
- | rxtx is a native interface to serial ports in java.
- | Copyright 2002-2004 Michal Hobot MichalHobot@netscape.net
- | Copyright 1997-2004 by Trent Jarvi taj@parcelfarce.linux.theplanet.co.uk
- |
- | This library is free software; you can redistribute it and/or
- | modify it under the terms of the GNU Library General Public
- | License as published by the Free Software Foundation; either
- | version 2 of the License, or (at your option) any later version.
- |
- | This library is distributed in the hope that it will be useful,
- | but WITHOUT ANY WARRANTY; without even the implied warranty of
- | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- | Library General Public License for more details.
- |
- | You should have received a copy of the GNU Library General Public
- | License along with this library; if not, write to the Free
- | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- --------------------------------------------------------------------------*/
- #if !defined(Included_RXTXHELPERS_H)
- #define Included_RXTXSERIAL_H
-
- /* javax.comm.SerialPortEvent constants */
- #define SPE_DATA_AVAILABLE 1
- #define SPE_OUTPUT_BUFFER_EMPTY 2
- #define SPE_CTS 3
- #define SPE_DSR 4
- #define SPE_RI 5
- #define SPE_CD 6
- #define SPE_OE 7
- #define SPE_PE 8
- #define SPE_FE 9
- #define SPE_BI 10
-
- #define PORT_SERIAL 1
- #define PORT_PARALLEL 2
- #define PORT_I2C 3
- #define PORT_RS485 4
- #define PORT_RAW 5
-
- #define CreateErrorMsg(dwError, lpMsgBuf) \
- FormatMessage( \
- FORMAT_MESSAGE_ALLOCATE_BUFFER | \
- FORMAT_MESSAGE_FROM_SYSTEM | \
- FORMAT_MESSAGE_IGNORE_INSERTS, \
- NULL, \
- dwError, \
- 0, \
- (LPTSTR) & (lpMsgBuf), \
- 0, \
- NULL \
- ), \
- ((WCHAR *)lpMsgBuf)[wcslen((WCHAR *)lpMsgBuf)-2] = '\0'
-
- #define ReleaseErrorMsg(lpMsgBuf) LocalFree((LPVOID)(lpMsgBuf))
-
- #if defined(DEBUG)
- # define IF_DEBUG(x) {x}
- #else
- # define IF_DEBUG(x)
- #endif
-
- /* java exception class names */
- #define UNSUPPORTED_COMM_OPERATION "javax/comm/UnsupportedCommOperationException"
- #define ARRAY_INDEX_OUT_OF_BOUNDS "java/lang/ArrayIndexOutOfBoundsException"
- #define OUT_OF_MEMORY "java/lang/OutOfMemoryError"
- #define IO_EXCEPTION "java/io/IOException"
- #define PORT_IN_USE_EXCEPTION "javax/comm/PortInUseException"
-
-
- typedef struct
- {
- /* Port handle */
- HANDLE fd;
- /* flags for events */
- DWORD ef;
- /* event handle for Monitor interthread signalling*/
- HANDLE eventHandle;
- /* current serial event */
- DWORD event;
- /* EventThread sets this flag to TRUE when it's ready */
- bool eventThreadReady;
- } EventInfoStruct;
-
-
- long get_java_int_var(JNIEnv *, jobject, char *);
- bool get_java_boolean_var(JNIEnv *, jobject, char *);
- bool get_java_boolean_var2(JNIEnv *, jobject, jclass, char *);
- void throw_java_exception(JNIEnv *, const char *, const char *, const char *);
- void throw_java_exceptionW(JNIEnv *, const char *, const wchar_t *, const wchar_t *);
- HANDLE get_fd(JNIEnv *, jobject);
- EventInfoStruct *get_eis(JNIEnv *, jobject);
- int printj(JNIEnv *, wchar_t *, ...);
- DWORD __stdcall CommEventThread(LPVOID);
- //void setEventFlags(JNIEnv *env, jobject jobj, bool ef[]);
- int InitialiseEventInfoStruct(HANDLE, EventInfoStruct **);
- int SendEvents(JNIEnv *, jobject, DWORD, EventInfoStruct *, jmethodID);
-
- #endif //Included_RXTXHELPERS_H
|