applicfg.h

Go to the documentation of this file.
00001 /*
00002 This file is part of CanFestival, a library implementing CanOpen Stack.
00003 
00004 Copyright (C): Edouard TISSERANT and Francis DUPIN
00005 
00006 See COPYING file for copyrights details.
00007 
00008 This library is free software; you can redistribute it and/or
00009 modify it under the terms of the GNU Lesser General Public
00010 License as published by the Free Software Foundation; either
00011 version 2.1 of the License, or (at your option) any later version.
00012 
00013 This library is distributed in the hope that it will be useful,
00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016 Lesser General Public License for more details.
00017 
00018 You should have received a copy of the GNU Lesser General Public
00019 License along with this library; if not, write to the Free Software
00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00021 */
00022 
00023 #ifndef __APPLICFG_WIN32__
00024 #define __APPLICFG_WIN32__
00025 
00026 #include <windows.h>
00027 #include <string.h>
00028 #include <stdio.h>
00029 
00030 // Define the architecture : little_endian or big_endian
00031 // -----------------------------------------------------
00032 // Test :
00033 // UNS32 v = 0x1234ABCD;
00034 // char *data = &v;
00035 //
00036 // Result for a little_endian architecture :
00037 // data[0] = 0xCD;
00038 // data[1] = 0xAB;
00039 // data[2] = 0x34;
00040 // data[3] = 0x12;
00041 //
00042 // Result for a big_endian architecture :
00043 // data[0] = 0x12;
00044 // data[1] = 0x34;
00045 // data[2] = 0xAB;
00046 // data[3] = 0xCD;
00047 
00048 // Integers
00049 #define INTEGER8 char
00050 #define INTEGER16 short
00051 #define INTEGER24 long
00052 #define INTEGER32 long
00053 #define INTEGER40 long long
00054 #define INTEGER48 long long
00055 #define INTEGER56 long long
00056 #define INTEGER64 long long
00057 
00058 // Unsigned integers
00059 #define UNS8   unsigned char
00060 #define UNS16  unsigned short
00061 #define UNS32  unsigned long
00062 #define UNS24  unsigned long 
00063 #define UNS40  unsigned long long
00064 #define UNS48  unsigned long long
00065 #define UNS56  unsigned long long
00066 #define UNS64  unsigned long long
00067 
00068 // Reals
00069 #define REAL32 float
00070 #define REAL64 double
00071 
00072 // Custom integer types sizes
00073 #define sizeof_INTEGER24 3
00074 #define sizeof_INTEGER40 5
00075 #define sizeof_INTEGER48 6
00076 #define sizeof_INTEGER56 7
00077 
00078 #define sizeof_UNS24  3
00079 #define sizeof_UNS40  5
00080 #define sizeof_UNS48  6
00081 #define sizeof_UNS56  7
00082 
00083 // Non integral integers conversion macros
00084 #define INT24_2_32(a) (a <= 0x7FFFFF ? a : a|0xFF000000)
00085 #define INT40_2_64(a) (a <= 0x0000007FFFFFFFFF ? a : a|0xFFFFFF0000000000)
00086 #define INT48_2_64(a) (a <= 0x00007FFFFFFFFFFF ? a : a|0xFFFF000000000000)
00087 #define INT56_2_64(a) (a <= 0x007FFFFFFFFFFFFF ? a : a|0xFF00000000000000)
00088 
00089 #define INT32_2_24(a) (a&0x00FFFFFF)
00090 #define INT64_2_40(a) (a&0x000000FFFFFFFFFF)
00091 #define INT64_2_48(a) (a&0x0000FFFFFFFFFFFF)
00092 #define INT64_2_56(a) (a&0x00FFFFFFFFFFFFFF)
00093 
00095 // --------------------------------------
00096 
00097 #ifdef UNICODE
00098   #define CANFESTIVAL_DEBUG_MSG(num, str, val)\
00099     {wchar_t msg[300];\
00100      unsigned long value = val;\
00101      swprintf(msg,L"%s(%d) : 0x%X %s 0x%X\n",__FILE__, __LINE__,num, str, value);\
00102      OutputDebugString(msg);}
00103 #else
00104   #define CANFESTIVAL_DEBUG_MSG(num, str, val)\
00105     {char msg[300];\
00106      unsigned long value = val;\
00107      sprintf(msg,"%s(%d) : 0x%X %s 0x%X\n",__FILE__, __LINE__,num, str, value);\
00108      OutputDebugString(msg);}
00109 #endif  
00110 
00112 // ---------------------
00113 #ifdef DEBUG_WAR_CONSOLE_ON
00114     #define MSG_WAR(num, str, val) CANFESTIVAL_DEBUG_MSG(num, str, val)
00115 #else
00116 #    define MSG_WAR(num, str, val)
00117 #endif
00118 
00120 // ---------------------
00121 #ifdef DEBUG_ERR_CONSOLE_ON
00122 #    define MSG_ERR(num, str, val) CANFESTIVAL_DEBUG_MSG(num, str, val)
00123 #else
00124 #    define MSG_ERR(num, str, val)
00125 #endif
00126 
00127 
00128 
00129 typedef void* CAN_HANDLE;
00130 
00131 typedef void* CAN_PORT;
00132 
00133 #endif // __APPLICFG_WIN32__

Generated on Mon Jul 2 19:10:16 2007 for CanFestival by  doxygen 1.5.1