地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
3.0 KiB

/*
libxbee - a C library to aid the use of Digi's Series 1 XBee modules
running in API mode (AP=2).
Copyright (C) 2009 Attie Grande (attie@attie.co.uk)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* this file contains code that is used by Win32 ONLY */
#ifndef _WIN32
#error "This file should only be used on a Win32 system"
#endif
/* ################################################################# */
/* ### Win32 Code ################################################## */
/* ################################################################# */
#pragma comment(lib, "Advapi32.lib")
#pragma comment(lib, "User32.lib")
#define dllid "attie-co-uk.libxbee"
#define dlldesc "libxbee - XBee API Library"
/* libxbee's GUID is {7A6E25AA-ECB5-4370-87B5-A1D31840FE23} */
#define dllGUID "{7A6E25AA-ECB5-4370-87B5-A1D31840FE23}"
#define Win32Message() MessageBox(0,"Run xbee_setup() first!...","libxbee",MB_OK);
HMODULE glob_hModule = NULL;
/* this uses miliseconds not microseconds... */
#define usleep(a) Sleep((a)/1000)
#define xbee_thread_create(a,b,c) (((a) = CreateThread(NULL,0,(void *)(b),(void *)(c),0,NULL)) == NULL)
#define xbee_thread_cancel(a,b) TerminateThread((a),(b))
#define xbee_thread_join(a) WaitForSingleObject((a),INFINITE)
#define xbee_thread_tryjoin(a) WaitForSingleObject((a),0)
#define xbee_mutex_init(a) (((a) = CreateEvent(NULL,FALSE,TRUE,NULL)) == NULL)
#define xbee_mutex_destroy(a) CloseHandle((a))
#define xbee_mutex_lock(a) WaitForSingleObject((a),INFINITE)
#define xbee_mutex_trylock(a) WaitForSingleObject((a),0)
#define xbee_mutex_unlock(a) SetEvent((a))
#define xbee_sem_init(a) (((a) = CreateEvent(NULL,FALSE,FALSE,NULL)) == NULL)
#define xbee_sem_destroy(a) CloseHandle((a))
#define xbee_sem_wait(a) WaitForSingleObject((a),INFINITE)
#define xbee_sem_wait1sec(a) WaitForSingleObject((a),1000)
#define xbee_sem_post(a) SetEvent((a))
#define xbee_cond_init(a) InitializeConditionVariable(&(a))
#define xbee_cond_destroy(a)
#define xbee_cond_wait(a,b) SleepConditionVariableCS(&(a),&(b),INFINITE)
#define xbee_cond_signal(a) WakeConditionVariable(&(a))
#define xbee_cond_broadcast(a) WakeAllConditionVariable(&(a))
#define xbee_feof(a) (xbee->ttyeof)
#define xbee_ferror(a) (0)
#define xbee_close(a) (((a)==xbee->log)?fclose((a)):CloseHandle((a)))
HWND win32_hWnd = 0;
UINT win32_MessageID = 0;