00001 /************************************************************************************************** 00002 Title : SSM Protocol 00003 Programer : Yosuke FURUSAWA. 00004 Copyright : Copyright (C) 2007-2010 Yosuke FURUSAWA. 00005 License : 4-clause BSD License 00006 Since : 2007/11/xx 00007 00008 Filename : ssm.h 00009 Last up date : 2010/08/22 00010 Kanji-Code : Shift-JIS 00011 TAB Space : 4 00012 **************************************************************************************************/ 00013 00014 00015 #ifndef _SSM_H_ 00016 #define _SSM_H_ 00017 00018 00019 /*================================================================================================= 00020 マクロ定義 00021 =================================================================================================*/ 00022 /* タイヤの直径を求める */ 00023 #define SSM_TIRE_R(x,y,z) ((((x * y) / 50.0) + (z * 25.4)) * 3.1415926) 00024 00025 00026 #define SSM_GEAR_FINAL (0) 00027 #define SSM_GEAR_1 (1) 00028 #define SSM_GEAR_2 (2) 00029 #define SSM_GEAR_3 (3) 00030 #define SSM_GEAR_4 (4) 00031 #define SSM_GEAR_5 (5) 00032 #define SSM_GEAR_6 (6) 00033 #define SSM_GEAR_7 (7) 00034 00035 #define SSM_MODE_OPENSSM (0) 00036 #define SSM_MODE_OPENPORT (1) 00037 00038 00039 /*================================================================================================= 00040 構造体 00041 =================================================================================================*/ 00042 typedef struct SSM { 00043 unsigned int tire_width; 00044 unsigned char tire_flat; 00045 unsigned char tire_inch; 00046 double tire_circle; 00047 00048 double gear_ratio[8]; 00049 00050 unsigned int price; 00051 00052 unsigned char mode; 00053 00054 unsigned int wait; 00055 unsigned int last; /* 最後に実行した時刻 */ 00056 unsigned int cycle; /* 実行周期 */ 00057 unsigned int error; /* 通信エラーの回数 */ 00058 } SSM_T; 00059 typedef SSM_T* pSSM_T; 00060 00061 typedef struct SSM_DATA { 00062 unsigned int engine; 00063 double throttle; 00064 unsigned char speed; 00065 double boost; 00066 int coolant; 00067 int intakeair; 00068 double battery; 00069 double maf; 00070 double afr; 00071 int ignition; 00072 int knock; 00073 double fuel; 00074 double fuel_rate; 00075 unsigned char shift; 00076 } SSM_DATA_T; 00077 typedef SSM_DATA_T* pSSM_DATA_T; 00078 00079 00080 /*================================================================================================= 00081 グローバル変数 00082 =================================================================================================*/ 00083 extern SSM_T ssm; 00084 extern SSM_DATA_T ssm_data; 00085 00086 00087 /*================================================================================================= 00088 プロトタイプ宣言 00089 =================================================================================================*/ 00090 extern void SSM_init(void); 00091 extern BOOL SSM_main(void); 00092 00093 00094 #endif