NMPB08 shared libraries
|
00001 00002 #ifndef _NMPB08_ROAD_INCLUDED_ 00003 #define _NMPB08_ROAD_INCLUDED_ 00004 00005 // -------------------------------------------------------------------------------------- 00032 // -------------------------------------------------------------------------------------- 00033 00034 #ifndef _COMPILE_NMPB 00035 #ifdef _WIN32 00036 #define _COMPILE_NMPB extern "C" __declspec(dllexport) 00037 #else 00038 #define _COMPILE_NMPB extern "C" 00039 #endif 00040 #endif 00041 00042 // ==== constants =================================== 00043 00047 enum RoadVehicleType 00048 { 00052 VehicleType_VL = 1, 00056 VehicleType_PL = 2 00057 } ; 00058 00062 enum RoadFlowType 00063 { 00067 FlowType_CONST = 0, 00071 FlowType_ACC = 1, 00075 FlowType_DEC = 2, 00079 FlowType_START = 3, 00083 FlowType_STOP = 4 00084 } ; 00085 00089 enum RoadSurfaceType 00090 { 00094 RoadSurface_Default = 0, 00098 RoadSurface_R1 = 1, 00102 RoadSurface_R2 = 2, 00106 RoadSurface_R3 = 3, 00110 RoadSurface_DR1 = 4, 00114 RoadSurface_DR2 = 5, 00118 RoadSurface_DR3 = 6, 00122 RoadSurface_UserDefined = 7 00123 } ; 00124 00125 // Road surfaces correspondences with the RoadSurfaceType enumeration 00129 const int BBUM_0_6 = RoadSurface_R1; 00133 const int BBDR_0_10 = RoadSurface_DR1; 00137 const int BBTM_0_6_type2 = RoadSurface_R1; 00141 const int BBTM_0_6_type1 = RoadSurface_R1; 00145 const int BBTM_0_10_type2 = RoadSurface_R1; 00149 const int BBSG_0_10 = RoadSurface_R2; 00153 const int BBTM_0_10_type1 = RoadSurface_R2; 00157 const int BBUM_0_10 = RoadSurface_R2; 00161 const int ECF = RoadSurface_R2; 00165 const int BBSG_0_14 = RoadSurface_R3; 00169 const int BBTM_0_14 = RoadSurface_R3; 00173 const int ES_6_10 = RoadSurface_R3; 00177 const int BC = RoadSurface_R3; 00181 const int ES_10_14 = RoadSurface_R3; 00182 00183 00187 enum RoadSpectrumType 00188 { 00192 Spectrum_dBA = 0, 00196 Spectrum_oct_A = 1, 00200 Spectrum_3oct_A = 2, 00204 Spectrum_oct_lin = 3, 00208 Spectrum_3oct_lin = 4 00209 } ; 00210 00211 // ======= data structures ====================== 00212 00216 struct RoadTrafficComponent 00217 { 00221 RoadVehicleType vehicleType ; 00225 double trafficFlow ; 00229 double trafficSpeed ; 00233 RoadFlowType flowType ; 00234 } ; 00235 00239 struct RoadTraffic 00240 { 00244 RoadSurfaceType surfaceType ; 00248 double surfaceAge ; 00252 double ramp ; 00256 int nbComponents ; 00260 RoadTrafficComponent *traffic ; 00264 double _Lw_values[18] ; 00265 } ; 00266 00276 _COMPILE_NMPB double* NMPB08_Lwm (RoadTraffic* roadTraffic, RoadSpectrumType spectrumType) ; 00277 00287 _COMPILE_NMPB double* NMPB08_Lwm_rolling (RoadTraffic* roadTraffic, RoadSpectrumType spectrumType) ; 00288 00298 _COMPILE_NMPB double* NMPB08_Lwm_traction (RoadTraffic* roadTraffic, RoadSpectrumType spectrumType) ; 00299 00316 _COMPILE_NMPB double* NMPB08_Lw_rolling (RoadVehicleType type, 00317 double vehicleSpeed, 00318 RoadSurfaceType surfaceType, 00319 double surfaceAge, 00320 RoadSpectrumType specType) ; 00321 00338 _COMPILE_NMPB double* NMPB08_Lw_traction (RoadVehicleType type, 00339 double vehicleSpeed, 00340 RoadFlowType flowType, 00341 double ramp, 00342 RoadSpectrumType specType) ; 00343 00365 _COMPILE_NMPB bool NMPB08_DefineRoadSurfaceType(int idRoadSurface, 00366 double AVL, double BVL, double Vref_VL, 00367 double APL, double BPL, double Vref_PL, 00368 double const* spectrum); 00369 00370 00371 #endif