ReadCmdline.c 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832
  1. #include <sys/time.h>
  2. #include <sys/timeb.h>
  3. #include <sys/types.h>
  4. #include <sys/stat.h>
  5. #include <sys/types.h>
  6. #include <sys/ioctl.h>
  7. #include <sys/socket.h>
  8. #include <sys/ipc.h>
  9. #include <sys/shm.h>
  10. #include <sys/shm.h>
  11. #include <sys/mman.h>
  12. #include <linux/wireless.h>
  13. #include <arpa/inet.h>
  14. #include <netinet/in.h>
  15. #include <unistd.h>
  16. #include <stdarg.h>
  17. #include <stdio.h> /*標準輸入輸出定義*/
  18. #include <stdlib.h> /*標準函數庫定義*/
  19. #include <unistd.h> /*Unix 標準函數定義*/
  20. #include <fcntl.h> /*檔控制定義*/
  21. #include <termios.h> /*PPSIX 終端控制定義*/
  22. #include <errno.h> /*錯誤號定義*/
  23. #include <errno.h>
  24. #include <string.h>
  25. #include <time.h>
  26. #include <ctype.h>
  27. #include <ifaddrs.h>
  28. #include <math.h>
  29. #include <stdbool.h>
  30. #include "../../define.h"
  31. #include "VCCU.h"
  32. typedef unsigned char byte;
  33. #define PASS 1
  34. #define FAIL -1
  35. #define ARRAY_SIZE(A) (sizeof(A) / sizeof(A[0]))
  36. struct SysConfigAndInfo *ShmSysConfigAndInfo;
  37. struct StatusCodeData *ShmStatusCodeData;
  38. struct PrimaryMcuData *ShmPrimaryMcuData;
  39. struct CHAdeMOData *ShmCHAdeMOData;
  40. struct CcsData *ShmCcsData;
  41. struct FanModuleData *ShmFanModuleData;
  42. struct RelayModuleData *ShmRelayModuleData;
  43. struct ATE *ate;
  44. struct ChargingInfoData *_chargingData[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
  45. int gunCount = CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY;
  46. char *msg = "stop : set ate stop (x) : \n"
  47. "targetCurrent : set&get ate targetCurrent (x) : \n"
  48. "targetVoltage : get ate targetVoltage (x) \n"
  49. "maximumCurrent : set&get ate maximumCurrent (x) \n"
  50. "maximumVoltage : set&get ate maximumVoltage (x) \n"
  51. "presentVoltage : set&get ccs presentVoltage (x) \n"
  52. "linkVoltage : set&get ate linkVoltage (x) \n"
  53. "contactorVoltage : set&get ate contactorVoltage (x) \n"
  54. "chademoPrmission : set chademo ate ChargingPermission (x) \n"
  55. "totalBatteryCap : set chademo ate totalBatteryCap (x) \n"
  56. "maxBatteryCurrent : set chademo ate maxBatteryCurrent (x) \n"
  57. "maxBatteryVoltage : set chademo ate maxBatteryVoltage (x) \n"
  58. "requireVoltage : set&get chademo ate requireVoltage (x) \n"
  59. "requireCurrent : set&get chademo ate requireCurrent (x) \n"
  60. "presentBattVoltage : set&get chademo ate presentBattVoltage (x) \n"
  61. "minimumChargeCurrent : set&get chademo ate minimumChargeCurrent (x) \n"
  62. "soc : set chademo ate soc (x) \n"
  63. "relay : set chademo ate relay (x) \n"
  64. "cstate : set chademo ate state (x) \n"
  65. "startstate : set start ate state (x) \n"
  66. "crelaystate : set chademo relay ate state (x) \n"
  67. "ccstate : set chademo relay 192 state (x) \n"
  68. "vccuinfo : show vccuinfo state \n"
  69. "chademoinfo : chademoinfo state \n"
  70. "chromainfo : chromainfo state \n"
  71. "modeChange : modeChange state (x) \n"
  72. "ateState : ateState (x) \n";
  73. #define ShmATEKey 1020
  74. int InitShareMemory()
  75. {
  76. int result = PASS;
  77. int MeterSMId;
  78. //initial ShmSysConfigAndInfo
  79. if ((MeterSMId = shmget(ShmSysConfigAndInfoKey, sizeof(struct SysConfigAndInfo), IPC_CREAT | 0777)) < 0)
  80. {
  81. result = FAIL;
  82. }
  83. else if ((ShmSysConfigAndInfo = shmat(MeterSMId, NULL, 0)) == (void *) -1)
  84. {
  85. result = FAIL;
  86. }
  87. else
  88. {}
  89. /*
  90. //initial ShmStatusCodeData
  91. if ((MeterSMId = shmget(ShmStatusCodeKey, sizeof(struct StatusCodeData), 0777)) < 0)
  92. {
  93. result = FAIL;
  94. }
  95. else if ((ShmStatusCodeData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
  96. {
  97. result = FAIL;
  98. }
  99. else
  100. {}
  101. if(CHAdeMO_QUANTITY > 0)
  102. {
  103. if ((MeterSMId = shmget(ShmCHAdeMOCommKey, sizeof(struct CHAdeMOData),
  104. IPC_CREAT | 0777)) < 0) {
  105. result = FAIL;
  106. } else if ((ShmCHAdeMOData = shmat(MeterSMId, NULL, 0))
  107. == (void *) -1) {
  108. result = FAIL;
  109. } else {
  110. }
  111. }
  112. if ((MeterSMId = shmget(ShmCcsCommKey, sizeof(struct CcsData),
  113. IPC_CREAT | 0777)) < 0) {
  114. result = FAIL;
  115. } else if ((ShmCcsData = shmat(MeterSMId, NULL, 0)) == (void *) -1) {
  116. result = FAIL;
  117. } else {
  118. }*/
  119. /*
  120. if ((MeterSMId = shmget(ShmPrimaryMcuKey, sizeof(struct PrimaryMcuData), IPC_CREAT | 0777)) < 0)
  121. {
  122. result = FAIL;
  123. }
  124. else if ((ShmPrimaryMcuData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
  125. {
  126. result = FAIL;
  127. }
  128. if ((MeterSMId = shmget(ShmFanBdKey, sizeof(struct FanModuleData), IPC_CREAT | 0777)) < 0)
  129. {
  130. result = FAIL;
  131. }
  132. else if ((ShmFanModuleData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
  133. {
  134. result = FAIL;
  135. }
  136. if ((MeterSMId = shmget(ShmRelayBdKey, sizeof(struct RelayModuleData), IPC_CREAT | 0777)) < 0)
  137. {
  138. result = FAIL;
  139. }
  140. else if ((ate = shmat(MeterSMId, NULL, 0)) == (void *) -1)
  141. {
  142. result = FAIL;
  143. }
  144. */
  145. if ((MeterSMId = shmget(ShmATEKey, sizeof(struct ATE), IPC_CREAT | 0777)) < 0)
  146. {
  147. result = FAIL;
  148. }
  149. else if ((ate = shmat(MeterSMId, NULL, 0)) == (void *) -1)
  150. {
  151. result = FAIL;
  152. }
  153. return result;
  154. }
  155. bool FindChargingInfoData(byte target, struct ChargingInfoData **chargingData)
  156. {
  157. for (byte index = 0; index < CHAdeMO_QUANTITY; index++)
  158. {
  159. if (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].Index == target)
  160. {
  161. chargingData[target] = &ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index];
  162. return true;
  163. }
  164. }
  165. for (byte index = 0; index < CCS_QUANTITY; index++)
  166. {
  167. if (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].Index == target)
  168. {
  169. chargingData[target] = &ShmSysConfigAndInfo->SysInfo.CcsChargingData[index];
  170. return true;
  171. }
  172. }
  173. for (byte index = 0; index < GB_QUANTITY; index++)
  174. {
  175. if (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].Index == target)
  176. {
  177. chargingData[target] = &ShmSysConfigAndInfo->SysInfo.GbChargingData[index];
  178. return true;
  179. }
  180. }
  181. return false;
  182. }
  183. void RunStatusProc(char *v1, char *v2)
  184. {
  185. int _index = atoi(v1);
  186. if (!FindChargingInfoData(_index, &_chargingData[0]))
  187. {
  188. printf ("FindChargingInfoData error\n");
  189. return;
  190. }
  191. if (strcmp(v2, "-1") == 0 || strcmp(v2, "") == 0)
  192. {
  193. // get
  194. printf ("index = %x, status = %x\n", _index, _chargingData[_index]->SystemStatus);
  195. }
  196. else
  197. {
  198. // set
  199. _chargingData[_index]->SystemStatus = atoi(v2);
  200. }
  201. }
  202. void StopATE( char *v1){
  203. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  204. printf("ATEStatus = %d \n", ShmSysConfigAndInfo->ate.ATEStatus);
  205. }else{
  206. if(strcmp(v1, "0") == 0 ){
  207. ShmSysConfigAndInfo->ate.ATEStatus = 0;
  208. }else if(strcmp(v1, "1") == 0 ){
  209. ShmSysConfigAndInfo->ate.ATEStatus = 1;
  210. }else if(strcmp(v1, "2") == 0 ){
  211. ShmSysConfigAndInfo->ate.ATEStatus = 2;
  212. }else if(strcmp(v1, "3") == 0 ){
  213. ShmSysConfigAndInfo->ate.ATEStatus = 3;
  214. }
  215. }
  216. }
  217. void targetCurrent(char *v1){
  218. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  219. printf("targetCurrent = %d \n", ShmSysConfigAndInfo->ate.targetCurrent_Value);
  220. }else{
  221. int value = atoi(v1);
  222. ShmSysConfigAndInfo->ate.targetCurrent_Value = value;
  223. printf("targetCurrent = %d \n", ShmSysConfigAndInfo->ate.targetCurrent_Value);
  224. }
  225. }
  226. void targetVoltage(char *v1){
  227. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  228. printf("targetVoltage = %d \n", ShmSysConfigAndInfo->ate.targetVoltage_Value);
  229. }else{
  230. int value = atoi(v1);
  231. ShmSysConfigAndInfo->ate.targetVoltage_Value = value;
  232. printf("targetVoltage = %d \n", ShmSysConfigAndInfo->ate.targetVoltage_Value);
  233. }
  234. }
  235. void maximumCurrent(char *v1){
  236. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  237. printf("maximumCurrent = %d \n", ShmSysConfigAndInfo->ate.maximumCurrent_value);
  238. }else{
  239. int value = atoi(v1);
  240. ShmSysConfigAndInfo->ate.maximumCurrent_value = value;
  241. printf("maximumCurrent = %d \n", ShmSysConfigAndInfo->ate.maximumCurrent_value);
  242. }
  243. }
  244. void maximumVoltage(char *v1){
  245. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  246. printf("maximumVoltage = %d \n", ShmSysConfigAndInfo->ate.maximumVoltage_value);
  247. }else{
  248. int value = atoi(v1);
  249. ShmSysConfigAndInfo->ate.maximumVoltage_value = value;
  250. printf("maximumVoltage = %d \n", ShmSysConfigAndInfo->ate.maximumVoltage_value);
  251. }
  252. }
  253. void presentVoltage(char *v1){
  254. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  255. printf("presentVoltage = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVSEPresentVoltage.VCCU_V2G_EVSEPresentVoltage_Va);
  256. }else{
  257. int value = atoi(v1);
  258. ShmSysConfigAndInfo->ate.vccu.v2g_EVSEPresentVoltage.VCCU_V2G_EVSEPresentVoltage_Va = value;
  259. printf("presentVoltage = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVSEPresentVoltage.VCCU_V2G_EVSEPresentVoltage_Va);
  260. }
  261. }
  262. void linkVoltage(char *v1){
  263. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  264. printf("linkVoltage = %d \n", ShmSysConfigAndInfo->ate.linkVoltage);
  265. }else{
  266. int value = atoi(v1);
  267. ShmSysConfigAndInfo->ate.linkVoltage = value;
  268. printf("linkVoltage = %d \n", ShmSysConfigAndInfo->ate.linkVoltage);
  269. }
  270. }
  271. void contactorVoltage(char *v1){
  272. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  273. printf("contactorVoltage = %d \n", ShmSysConfigAndInfo->ate.contactorVoltage);
  274. }else{
  275. int value = atoi(v1);
  276. ShmSysConfigAndInfo->ate.contactorVoltage = value;
  277. printf("contactorVoltage = %d \n", ShmSysConfigAndInfo->ate.contactorVoltage);
  278. }
  279. }
  280. void setChademoPrmission(char *v1){
  281. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  282. printf("Permission = %d \n", ShmSysConfigAndInfo->ate.Permission);
  283. //return;
  284. }else{
  285. int value = atoi(v1);
  286. ShmSysConfigAndInfo->ate.Permission = value;
  287. printf("Permission = %d ", ShmSysConfigAndInfo->ate.Permission);
  288. }
  289. }
  290. void setTotalBatteryCap(char *v1){
  291. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  292. printf("TotalBatteryCap = %d \n", ShmSysConfigAndInfo->ate.TotalBatteryCap);
  293. //return;
  294. }else{
  295. int value = atoi(v1);
  296. ShmSysConfigAndInfo->ate.TotalBatteryCap = value * 10;
  297. printf("TotalBatteryCap = %d ", ShmSysConfigAndInfo->ate.TotalBatteryCap);
  298. }
  299. }
  300. void setMaxBatteryCurrent(char *v1){
  301. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  302. printf("MaxBatteryCurrent = %d \n", ShmSysConfigAndInfo->ate.MaxBatteryCurrent);
  303. //return;
  304. }else{
  305. int value = atoi(v1);
  306. ShmSysConfigAndInfo->ate.MaxBatteryCurrent = value * 10;
  307. printf("MaxBatteryCurrent = %d ", ShmSysConfigAndInfo->ate.MaxBatteryCurrent);
  308. }
  309. }
  310. void setMaxBatteryVoltage(char *v1){
  311. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  312. printf("MaxBatteryVoltage = %d \n", ShmSysConfigAndInfo->ate.MaxBatteryVoltage);
  313. //return;
  314. }else{
  315. int value = atoi(v1);
  316. ShmSysConfigAndInfo->ate.MaxBatteryVoltage = value * 10;
  317. printf("MaxBatteryVoltage = %d ", ShmSysConfigAndInfo->ate.MaxBatteryVoltage);
  318. }
  319. }
  320. void SetChargingPermission(char *v1, char *v2, char *v3, char *v4){
  321. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  322. printf("Permission = %d \n", ShmSysConfigAndInfo->ate.Permission);
  323. //return;
  324. }else{
  325. int value = atoi(v1);
  326. ShmSysConfigAndInfo->ate.Permission = value;
  327. //printf("Permission = %d ", ShmSysConfigAndInfo->ate.Permission);
  328. }
  329. if(strcmp(v2, "-1") == 0 || strcmp(v2, "") == 0 ){
  330. //printf("Permission = %d \n", ShmSysConfigAndInfo->ate.Permission);
  331. }else{
  332. int value = atoi(v2);
  333. ShmSysConfigAndInfo->ate.TotalBatteryCap = value * 10;
  334. //printf("TotalBatteryCapa = %d ", ShmSysConfigAndInfo->ate.TotalBatteryCapacity);
  335. }
  336. if(strcmp(v3, "-1") == 0 || strcmp(v3, "") == 0 ){
  337. //printf("Permission = %d \n", ShmSysConfigAndInfo->ate.MaximumBatteryCurrent);
  338. }else{
  339. int value = atoi(v3);
  340. if(value > 0){
  341. ShmSysConfigAndInfo->ate.MaxBatteryCurrent = value * 10;
  342. }else{
  343. if(strcmp(v3, "0") == 0 ){
  344. ShmSysConfigAndInfo->ate.MaxBatteryCurrent = value * 10;
  345. }
  346. }
  347. printf("=====%d, %d \n", value, ShmSysConfigAndInfo->ate.MaxBatteryCurrent);
  348. //printf("MaximumBatteryCurrent = %d ", ShmSysConfigAndInfo->ate.MaximumBatteryCurrent);
  349. }
  350. if(strcmp(v4, "-1") == 0 || strcmp(v4, "") == 0 ){
  351. //printf("Permission = %d \n", ShmSysConfigAndInfo->ate.Permission);
  352. }else{
  353. int value = atoi(v4);
  354. ShmSysConfigAndInfo->ate.MaxBatteryVoltage = value * 10;
  355. printf("=====%d, %d \n", value, ShmSysConfigAndInfo->ate.MaxBatteryVoltage);
  356. //printf("MaximumBatteryCurrent = %d ", ShmSysConfigAndInfo->ate.MaximumBatteryVoltage);
  357. }
  358. printf(" Permission : %d, TotalBatteryCapacity : %d, MaximumBatteryCurrent : %d, MaximumBatteryCurrent : %d \n", ShmSysConfigAndInfo->ate.Permission, ShmSysConfigAndInfo->ate.TotalBatteryCap, ShmSysConfigAndInfo->ate.MaxBatteryCurrent, ShmSysConfigAndInfo->ate.MaxBatteryVoltage);
  359. }
  360. void SetRequireVoltage(char *v1){
  361. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  362. printf("RequireVoltage = %d \n", ShmSysConfigAndInfo->ate.RequireVoltage);
  363. //return;
  364. }else{
  365. int value = atoi(v1);
  366. ShmSysConfigAndInfo->ate.RequireVoltage = value * 10;
  367. printf("RequireVoltage = %d ", ShmSysConfigAndInfo->ate.RequireVoltage);
  368. }
  369. }
  370. void SetRequireCurrent(char *v1){
  371. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  372. printf("RequireCurrent = %d \n", ShmSysConfigAndInfo->ate.RequireCurrent);
  373. //return;
  374. }else{
  375. int value = atoi(v1);
  376. ShmSysConfigAndInfo->ate.RequireCurrent = value * 10;
  377. printf("RequireCurrent = %d ", ShmSysConfigAndInfo->ate.RequireCurrent);
  378. }
  379. }
  380. void SetPresentBattVoltage(char *v1){
  381. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  382. printf("PresentBattVoltage = %d \n", ShmSysConfigAndInfo->ate.PresentBattVoltage);
  383. //return;
  384. }else{
  385. int value = atoi(v1);
  386. ShmSysConfigAndInfo->ate.PresentBattVoltage = value * 10;
  387. printf("PresentBattVoltage = %d ", ShmSysConfigAndInfo->ate.PresentBattVoltage);
  388. }
  389. }
  390. void SetMinimumChargeCurrent(char *v1){
  391. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  392. printf("MinimumChargeCurrent = %d \n", ShmSysConfigAndInfo->ate.MinimumChargeCurrent);
  393. //return;
  394. }else{
  395. int value = atoi(v1);
  396. ShmSysConfigAndInfo->ate.MinimumChargeCurrent = value * 10;
  397. printf("MinimumChargeCurrent = %d ", ShmSysConfigAndInfo->ate.MinimumChargeCurrent);
  398. }
  399. }
  400. /*
  401. void SetPresentInputRequirement(char *v1, char *v2, char *v3, char *v4){
  402. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  403. //printf("Permission = %d \n", ShmSysConfigAndInfo->ate.Permission);
  404. }else{
  405. int value = atoi(v1);
  406. ShmSysConfigAndInfo->ate.RequireVoltage = value * 10;
  407. //printf("Permission = %d ", ShmSysConfigAndInfo->ate.Permission);
  408. }
  409. if(strcmp(v2, "-1") == 0 || strcmp(v2, "") == 0 ){
  410. //printf("Permission = %d \n", ShmSysConfigAndInfo->ate.Permission);
  411. }else{
  412. int value = atoi(v2);
  413. ShmSysConfigAndInfo->ate.RequireCurrent = value * 10;
  414. //printf("TotalBatteryCapacity = %d ", ShmSysConfigAndInfo->ate.TotalBatteryCapacity);
  415. }
  416. if(strcmp(v3, "-1") == 0 || strcmp(v3, "") == 0 ){
  417. //printf("Permission = %d \n", ShmSysConfigAndInfo->ate.MaximumBatteryCurrent);
  418. }else{
  419. int value = atoi(v3);
  420. ShmSysConfigAndInfo->ate.PresentBattVoltage = value * 10;
  421. //printf("MaximumBatteryCurrent = %d ", ShmSysConfigAndInfo->ate.MaximumBatteryCurrent);
  422. }
  423. if(strcmp(v4, "-1") == 0 || strcmp(v4, "") == 0 ){
  424. //printf("Permission = %d \n", ShmSysConfigAndInfo->ate.Permission);
  425. }else{
  426. int value = atoi(v4);
  427. ShmSysConfigAndInfo->ate.MinimumChargeCurrent = value * 10;
  428. //printf("MaximumBatteryCurrent = %d ", ShmSysConfigAndInfo->ate.MaximumBatteryVoltage);
  429. }
  430. printf(" RequireVoltage : %d, RequireCurrent : %d, PresentBattVoltage : %d, MinimumChargeCurrent : %d \n", ShmSysConfigAndInfo->ate.RequireVoltage, ShmSysConfigAndInfo->ate.RequireCurrent, ShmSysConfigAndInfo->ate.PresentBattVoltage, ShmSysConfigAndInfo->ate.MinimumChargeCurrent);
  431. }
  432. */
  433. void SetSoc(char *v1){
  434. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  435. printf("Soc = %d \n", ShmSysConfigAndInfo->ate.chademo.id0D_req.Soc);
  436. }else{
  437. int value = atoi(v1);
  438. ShmSysConfigAndInfo->ate.chademo.id0D_req.Soc = value;
  439. printf("Soc = %d ", ShmSysConfigAndInfo->ate.chademo.id0D_req.Soc);
  440. }
  441. printf("%d \n",ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.ControlPilot_DutyCycle.bits.value);
  442. }
  443. void SetRelay(char *v1){
  444. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  445. printf("relay = %d \n", ShmSysConfigAndInfo->ate.chademo.id0D_req.K1K2Status);
  446. }else{
  447. int value = atoi(v1);
  448. ShmSysConfigAndInfo->ate.chademo.id0D_req.K1K2Status = value;
  449. printf("relay = %d ", ShmSysConfigAndInfo->ate.chademo.id0D_req.K1K2Status);
  450. }
  451. }
  452. void SetState(char *v1){
  453. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  454. printf("state = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.state);
  455. }else{
  456. int value = atoi(v1);
  457. ShmSysConfigAndInfo->ate.chademo.id03.state = value;
  458. printf("state = %d ", ShmSysConfigAndInfo->ate.chademo.id03.state);
  459. }
  460. }
  461. void SetCState(char *v1){
  462. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  463. printf("cstatus = %d \n", ShmSysConfigAndInfo->ate.cstatus );
  464. }else{
  465. int value = atoi(v1);
  466. ShmSysConfigAndInfo->ate.cstatus = value;
  467. printf("cstatus = %d ", ShmSysConfigAndInfo->ate.cstatus );
  468. }
  469. }
  470. void SetStartState(char *v1){
  471. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  472. printf("start state = %d \n", ShmSysConfigAndInfo->ate.status);
  473. }else{
  474. int value = atoi(v1);
  475. ShmSysConfigAndInfo->ate.status = value;
  476. printf("start state = %d ", ShmSysConfigAndInfo->ate.status);
  477. }
  478. }
  479. void SetRelayState(char *v1){
  480. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  481. printf("relay state = %d \n", ShmSysConfigAndInfo->ate.chademo.relaystatus);
  482. }else{
  483. int value = atoi(v1);
  484. ShmSysConfigAndInfo->ate.chademo.relaystatus = value;
  485. printf("relay state = %d ", ShmSysConfigAndInfo->ate.chademo.relaystatus);
  486. }
  487. }
  488. void SetATEState(char *v1){
  489. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  490. printf("ATEState = %d \n", ShmSysConfigAndInfo->ate.ATEState);
  491. }else{
  492. int value = atoi(v1);
  493. ShmSysConfigAndInfo->ate.ATEState = value;
  494. printf("ATEState = %d ", ShmSysConfigAndInfo->ate.ATEState);
  495. }
  496. }
  497. void getVCCUInfo(){
  498. printf("VCCU_Vehicle_LinkVoltage = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeFromVehicle.VCCU_Vehicle_LinkVoltage);
  499. printf("VCCU_Vehicle_ContactorVoltage = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeFromVehicle.VCCU_Vehicle_ContactorVoltage);
  500. printf("VCCU_Vehicle_ContactorStatus = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeFromVehicle.bits.VCCU_Vehicle_ContactorStatus);
  501. printf("VCCU_Vehicle_ChargePermission = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeFromVehicle.DATA.bits.VCCU_Vehicle_ChargePermission);
  502. printf("VCCU_Vehicle_IsolationMeasurem = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeFromVehicle.DATA.bits.VCCU_Vehicle_IsolationMeasurem);
  503. printf("VCCU_Vehicle_PlugLockPermissio = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeFromVehicle.DATA.bits.VCCU_Vehicle_PlugLockPermissio);
  504. printf("VCCU_Vehicle_PlugUnlockPermiss = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeFromVehicle.DATA.bits.VCCU_Vehicle_PlugUnlockPermiss);
  505. printf("VCCU_ControlPilot_Frequency = %d \n", ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.ControlPilot_Frequency.bits.VCCU_ControlPilot_Frequency);
  506. printf("ControlPilot_Voltage = %d \n", ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.ControlPilot_Voltage.bits.value);
  507. printf("VCCU_ChargeUnit_Mode = %d \n", ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.DATA.bits.VCCU_ChargeUnit_Mode);
  508. printf("VCCU_ChargeUnit_State = %d \n", ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.DATA.bits.VCCU_ChargeUnit_State);
  509. printf("VCCU_ControlPilot_Wakeup = %d \n", ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.DATA.bits.VCCU_ControlPilot_Wakeup);
  510. printf("ControlPilot_Voltage = %d \n", ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.ChargeUnit_MaxCurrent);
  511. printf("ControlPilot_Voltage = %d \n", ShmSysConfigAndInfo->ate.vccu.controlPilotStatus.ControlPilot_DutyCycle.bits.value);
  512. printf("VCCU_Vehicle_ContactorRequest = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeToVehicle.bits.VCCU_Vehicle_ContactorRequest);
  513. printf("VCCU_Vehicle_IsolationMea_0000 = %d \n", ShmSysConfigAndInfo->ate.vccu.chargeToVehicle.bits.VCCU_Vehicle_IsolationMea_0000);
  514. printf("VCCU_PlugPresent_Status = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA2.VCCU_PlugPresent_Status);
  515. printf("VCCU_PlugPresent_SelfDiagnosti = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA2.VCCU_PlugPresent_SelfDiagnosti);
  516. printf("VCCU_PlugPresent_Resistance = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA2.VCCU_PlugPresent_Resistance);
  517. printf("VCCU_PlugPresent_Wakeup = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA3.VCCU_PlugPresent_Wakeup);
  518. printf("VCCU_PlugLock_MotorStatus = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA3.VCCU_PlugLock_MotorStatus);
  519. printf("VCCU_POSFeedback_SelfDiagnosti = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA3.VCCU_POSFeedback_SelfDiagnosti);
  520. printf("VCCU_Inlet_HWVariant = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA4.VCCU_Inlet_HWVariant);
  521. printf("VCCU_PlugLock_Output0_SelfDiag = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA4.VCCU_PlugLock_Output0_SelfDiag);
  522. printf("VCCU_PlugLock_Output1_SelfDiag = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA4.VCCU_PlugLock_Output1_SelfDiag);
  523. printf("VCCU_Inlet_MotorStatus = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA5.bits.VCCU_Inlet_MotorStatus);
  524. printf("VCCU_DigitalInput_Wakeup = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA5.bits.VCCU_DigitalInput_Wakeup);
  525. printf("VCCU_DigitalInput_Status = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA5.bits.VCCU_DigitalInput_Status);
  526. printf("VCCU_S3Switch_Status = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA7.bits.VCCU_S3Switch_Status);
  527. printf("VCCU_S3Switch_DebouncedStatus = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA7.bits.VCCU_S3Switch_DebouncedStatus);
  528. printf("VCCU_Inlet_ConnectionStatus = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA7.bits.VCCU_Inlet_ConnectionStatus);
  529. printf("VCCU_DigitalInput_DebouncedSta = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.DATA7.bits.VCCU_DigitalInput_DebouncedSta);
  530. printf("VCCU_Inlet_MaxCurrent = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.VCCU_Inlet_MaxCurrent);
  531. printf("VCCU_POSFeedback_Voltage = %d \n", ShmSysConfigAndInfo->ate.vccu.inletStatus.VCCU_POSFeedback_Voltage);
  532. printf("VCCU_V2G_EVErrorCode = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA1.VCCU_V2G_EVErrorCode);
  533. printf("VCCU_V2G_BulkChargingCompleteF = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA1.VCCU_V2G_BulkChargingCompleteF);
  534. printf("VCCU_V2G_BulkChargingComplete = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA1.VCCU_V2G_BulkChargingComplete);
  535. printf("VCCU_V2G_BulkSOCFlag = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA2.VCCU_V2G_BulkSOCFlag);
  536. printf("VCCU_V2G_ChargingComplete = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA2.VCCU_V2G_ChargingComplete);
  537. printf("VCCU_V2G_EVCabinConditioning = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA2.VCCU_V2G_EVCabinConditioning);
  538. printf("VCCU_V2G_FullSOCFlag = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA2.VCCU_V2G_FullSOCFlag);
  539. printf("VCCU_V2G_EVReady = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA3.VCCU_V2G_EVReady);
  540. printf("VCCU_V2G_EVRESSConditioningFla = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA3.VCCU_V2G_EVRESSConditioningFla);
  541. printf("VCCU_V2G_EVRESSConditioning = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA3.VCCU_V2G_EVRESSConditioning);
  542. printf("VCCU_V2G_EVCabinConditioningFl = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA3.VCCU_V2G_EVCabinConditioningFl);
  543. printf("VCCU_V2G_EVPowerDeliveryParame = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA4.VCCU_V2G_EVPowerDeliveryParame);
  544. printf("VCCU_V2G_StateM_EnergyTra_0000 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_VehicleStatus.DATA4.VCCU_V2G_StateM_EnergyTra_0000);
  545. printf("VCCU_V2G_StateM_StateMachineSt = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_StateM.VCCU_V2G_StateM_StateMachineSt);
  546. printf("VCCU_V2G_StateM_StateMachineMe = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_StateM.VCCU_V2G_StateM_StateMachineMe);
  547. printf("VCCU_V2G_StateM_StateMachineEr = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_StateM.VCCU_V2G_StateM_StateMachineEr);
  548. printf("VCCU_V2G_StateM_EnergyTransfer = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_StateM.VCCU_V2G_StateM_EnergyTransfer);
  549. printf("VCCU_V2G_StateM_InternetAvaila = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_StateM.DATA.bits.VCCU_V2G_StateM_InternetAvaila);
  550. printf("VCCU_V2G_Appl_SccFuncModeReq = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_StateM.DATA.bits.VCCU_V2G_Appl_SccFuncModeReq);
  551. printf("VCCU_V2G_Appl_SccChargeModeReq = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_StateM.DATA.bits.VCCU_V2G_Appl_SccChargeModeReq);
  552. printf("VCCU_V2G_EVTargetVoltage_Value = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetVoltage.VCCU_V2G_EVTargetVoltage_Value.value);
  553. printf("VCCU_V2G_EVTargetVoltage_UnitF = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetVoltage.VCCU_V2G_EVTargetVoltage_UnitF.value);
  554. printf("VCCU_V2G_EVTargetVoltage_Unit = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetVoltage.VCCU_V2G_EVTargetVoltage_Unit.value);
  555. printf("VCCU_V2G_EVTargetVoltage_Multi = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetVoltage.VCCU_V2G_EVTargetVoltage_Multi.value);
  556. printf("VCCU_V2G_EVTargetCurrent_Value = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetCurrent.VCCU_V2G_EVTargetCurrent_Value.value);
  557. printf("VCCU_V2G_EVTargetCurrent_UnitF = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetCurrent.VCCU_V2G_EVTargetCurrent_UnitF.value);
  558. printf("VCCU_V2G_EVTargetCurrent_Unit = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetCurrent.VCCU_V2G_EVTargetCurrent_Unit.value);
  559. printf("VCCU_V2G_EVTargetCurrent_Multi = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVTargetCurrent.VCCU_V2G_EVTargetCurrent_Multi.value);
  560. printf("VCCU_V2G_EVMaximumVoltage_0003 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumVoltageLimit.VCCU_V2G_EVMaximumVoltage_0003.value);
  561. printf("VCCU_V2G_EVMaximumVoltage_0001 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumVoltageLimit.VCCU_V2G_EVMaximumVoltage_0001.value);
  562. printf("VCCU_V2G_EVMaximumVoltage_0000 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumVoltageLimit.VCCU_V2G_EVMaximumVoltage_0000.value);
  563. printf("VCCU_V2G_EVMaximumVoltageLimit = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumVoltageLimit.DATA1.VCCU_V2G_EVMaximumVoltageLimit);
  564. printf("VCCU_V2G_EVMaximumVoltage_0002 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumVoltageLimit.DATA1.VCCU_V2G_EVMaximumVoltage_0002);
  565. printf("VCCU_V2G_EVMaximumCurrent_0003 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumCurrentLimit.VCCU_V2G_EVMaximumCurrent_0003.value);
  566. printf("VCCU_V2G_EVMaximumCurrent_0002 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumCurrentLimit.VCCU_V2G_EVMaximumCurrent_0002.value);
  567. printf("VCCU_V2G_EVMaximumCurrent_0001 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumCurrentLimit.VCCU_V2G_EVMaximumCurrent_0001.value);
  568. printf("VCCU_V2G_EVMaximumCurrentLimit = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumCurrentLimit.DATA1.VCCU_V2G_EVMaximumCurrentLimit);
  569. printf("VCCU_V2G_EVMaximumCurrent_0000 = %d \n", ShmSysConfigAndInfo->ate.vccu.v2g_EVMaximumCurrentLimit.DATA1.VCCU_V2G_EVMaximumCurrent_0000);
  570. }
  571. void getChademoInfo(){
  572. printf("id03 state = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.state);
  573. printf("id03 ProximitySignal = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.ProximitySignal);
  574. printf("id03 PilotVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.PilotVoltage);
  575. printf("id03 AlarmCode2 = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.AlarmCode2);
  576. printf("id03 AlarmCode3 = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.AlarmCode3);
  577. printf("id03 AlarmCode4 = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.AlarmCode4);
  578. printf("id03 AlarmCode5 = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.AlarmCode5);
  579. printf("id03 AlarmCode6 = %d \n", ShmSysConfigAndInfo->ate.chademo.id03.AlarmCode6);
  580. printf("id06 TotalBatteryCapacity = %d \n", ShmSysConfigAndInfo->ate.chademo.id06.TotalBatteryCapacity);
  581. printf("id06 Permission = %d \n", ShmSysConfigAndInfo->ate.chademo.id06.Permission);
  582. printf("id06 MaximumBatteryVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id06.MaximumBatteryVoltage);
  583. printf("id06 MaximumBatteryCurrent = %d \n", ShmSysConfigAndInfo->ate.chademo.id06.MaximumBatteryCurrent);
  584. printf("id06 MaxChargingTimeMin = %d \n", ShmSysConfigAndInfo->ate.chademo.id06.MaxChargingTimeMin);
  585. printf("id07 PresentInputVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id07.PresentInputVoltage);
  586. printf("id07 PresentInputCurrent = %d \n", ShmSysConfigAndInfo->ate.chademo.id07.PresentInputCurrent);
  587. printf("id08 RequireVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id08.RequireVoltage);
  588. printf("id08 RequireCurrent = %d \n", ShmSysConfigAndInfo->ate.chademo.id08.RequireCurrent);
  589. printf("id08 PresentBattVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id08.PresentBattVoltage);
  590. printf("id08 MinimumChargeCurrent = %d \n", ShmSysConfigAndInfo->ate.chademo.id08.MinimumChargeCurrent);
  591. printf("id08 ChargeAllow = %d \n", ShmSysConfigAndInfo->ate.chademo.id08.ChargeAllow);
  592. printf("id09_ack ChargingMode = %d \n", ShmSysConfigAndInfo->ate.chademo.id09_ack.ChargingMode);
  593. printf("id09_ack DcEvState = %d \n", ShmSysConfigAndInfo->ate.chademo.id09_ack.DcEvState);
  594. printf("id09_ack EvsePresentOutputCurrent = %d \n", ShmSysConfigAndInfo->ate.chademo.id09_ack.EvsePresentOutputCurrent);
  595. printf("id09_ack EvsePresentOutputVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id09_ack.EvsePresentOutputVoltage);
  596. printf("id09_ack RemainingTimeSec = %d \n", ShmSysConfigAndInfo->ate.chademo.id09_ack.RemainingTimeSec);
  597. printf("id0A_ack EvseMinChargeVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id0A_ack.EvseMaxChargeCurrent);
  598. printf("id0A_ack EvseMaxChargeVoltage = %d \n", ShmSysConfigAndInfo->ate.chademo.id0A_ack.EvseMaxChargeVoltage);
  599. printf("id0A_ack EvseMinChargeCurrent = %d \n", ShmSysConfigAndInfo->ate.chademo.id0A_ack.EvseMinChargeCurrent);
  600. printf("id0A_ack EvseMinChargeCurrent = %d \n", ShmSysConfigAndInfo->ate.chademo.id0A_ack.EvseMinChargeVoltage);
  601. printf("id0B AlarmCode1 = %d \n", ShmSysConfigAndInfo->ate.chademo.id0B.AlarmCode1);
  602. printf("id0B AlarmCode2 = %d \n", ShmSysConfigAndInfo->ate.chademo.id0B.AlarmCode2);
  603. printf("id0B AlarmCode3 = %d \n", ShmSysConfigAndInfo->ate.chademo.id0B.AlarmCode3);
  604. printf("id0B AlarmCode4 = %d \n", ShmSysConfigAndInfo->ate.chademo.id0B.AlarmCode4);
  605. printf("id0B AlarmCode5 = %d \n", ShmSysConfigAndInfo->ate.chademo.id0B.AlarmCode5);
  606. printf("id0B AlarmCode6 = %d \n", ShmSysConfigAndInfo->ate.chademo.id0B.AlarmCode6);
  607. printf("id0B EvStopReason = %d \n", ShmSysConfigAndInfo->ate.chademo.id0B.EvStopReason);
  608. printf("id0D_ack soc = %d \n", ShmSysConfigAndInfo->ate.chademo.id0D_ack.soc);
  609. printf("id0D_ack soc = %d \n", ShmSysConfigAndInfo->ate.chademo.id0D_ack.K1K2OnOff);
  610. printf("id0D_req K1K2Status = %d \n", ShmSysConfigAndInfo->ate.chademo.id0D_req.K1K2Status);
  611. printf("id0D_req Soc = %d \n", ShmSysConfigAndInfo->ate.chademo.id0D_req.Soc);
  612. printf("relaystatus = %d \n", ShmSysConfigAndInfo->ate.chademo.relaystatus);
  613. }
  614. void getChromaInfo(){
  615. printf("EVStatus = %d \n", ShmSysConfigAndInfo->ate.chroma.evstaus.data);
  616. printf("Connector_2 TargetVoltage = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_2.TargetVoltage);
  617. printf("Connector_2 TargetCurrent = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_2.TargetCurrent);
  618. printf("Connector_2 PresentVoltage = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_2.PresentVoltage);
  619. printf("Connector_2 PresentCurrent = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_2.PresentCurrent);
  620. printf("Connector_1 TargetVoltage = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_1.TargetVoltage);
  621. printf("Connector_1 TargetCurrent = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_1.TargetCurrent);
  622. printf("Connector_1 PresentVoltage = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_1.PresentVoltage);
  623. printf("Connector_1 PresentCurrent = %d \n", ShmSysConfigAndInfo->ate.chroma.ate_Connector_1.PresentCurrent);
  624. printf("Boot_Notification1 = %d \n", ShmSysConfigAndInfo->ate.chroma.bootNotification.boo1);
  625. printf("Boot_Notification2 = %d \n", ShmSysConfigAndInfo->ate.chroma.bootNotification.boo2);
  626. }
  627. void setModeChange(char *v1){
  628. if(strcmp(v1, "-1") == 0 || strcmp(v1, "") == 0 ){
  629. printf("mode change = %d \n", ShmSysConfigAndInfo->ate.ateMode);
  630. }else{
  631. int value = atoi(v1);
  632. ShmSysConfigAndInfo->ate.ateMode = value;
  633. printf("setModeChange = %d ", ShmSysConfigAndInfo->ate.ateMode);
  634. }
  635. }
  636. int main()
  637. {
  638. if(InitShareMemory() == FAIL)
  639. {
  640. printf ("InitShareMemory = FAIL \n");
  641. if(ShmStatusCodeData != NULL)
  642. {
  643. ShmStatusCodeData->AlarmCode.AlarmEvents.bits.FailToCreateShareMemory=1;
  644. }
  645. sleep(5);
  646. return 0;
  647. }
  648. for(;;)
  649. {
  650. char word[256];
  651. char newString[7][20];
  652. int i,j,ctr;
  653. fgets(word, sizeof(word), stdin);
  654. j=0; ctr=0;
  655. strcpy(newString[1], "-1");
  656. strcpy(newString[2], "-1");
  657. for (i = 0; i <= (strlen(word)); i++)
  658. {
  659. if (word[i] == ' ' || word[i] == '\0' || word[i] == 10)
  660. {
  661. newString[ctr][j] = '\0';
  662. ctr++;
  663. j = 0;
  664. }
  665. else
  666. {
  667. newString[ctr][j] = word[i];
  668. j++;
  669. }
  670. }
  671. //printf("=====%s %s\n", newString[0], newString[1]);
  672. if(strcmp(newString[0], "stop") == 0)
  673. {
  674. //if (strcmp(newString[1], "-1") == 0 || strcmp(newString[1], "") == 0)
  675. //continue;
  676. // 槍狀態
  677. StopATE(newString[1]);
  678. continue;
  679. }else if(strcmp(newString[0], "targetCurrent") == 0){//
  680. targetCurrent(newString[1]);
  681. continue;
  682. }else if(strcmp(newString[0], "targetVoltage") == 0){//
  683. targetVoltage(newString[1]);
  684. continue;
  685. }else if(strcmp(newString[0], "maximumCurrent") == 0){//
  686. maximumCurrent(newString[1]);
  687. continue;
  688. }else if(strcmp(newString[0], "maximumVoltage") == 0){//
  689. maximumVoltage(newString[1]);
  690. continue;
  691. }else if(strcmp(newString[0], "presentVoltage") == 0){//
  692. presentVoltage(newString[1]);
  693. continue;
  694. }else if(strcmp(newString[0], "linkVoltage") == 0){//
  695. linkVoltage(newString[1]);
  696. continue;
  697. }else if(strcmp(newString[0], "contactorVoltage") == 0){//
  698. contactorVoltage(newString[1]);
  699. continue;
  700. }else if(strcmp(newString[0], "chademoPrmission") == 0){
  701. //SetChargingPermission(newString[1], newString[2], newString[3], newString[4]);
  702. setChademoPrmission(newString[1]);
  703. continue;
  704. }else if(strcmp(newString[0], "totalBatteryCap") == 0){
  705. setTotalBatteryCap(newString[1]);
  706. continue;
  707. }else if(strcmp(newString[0], "maxBatteryCurrent") == 0){
  708. setMaxBatteryCurrent(newString[1]);
  709. continue;
  710. }else if(strcmp(newString[0], "maxBatteryVoltage") == 0){
  711. setMaxBatteryVoltage(newString[1]);
  712. continue;
  713. }else if(strcmp(newString[0], "requireVoltage") == 0){
  714. SetRequireVoltage(newString[1]);
  715. continue;
  716. }else if(strcmp(newString[0], "requireCurrent") == 0){
  717. SetRequireCurrent(newString[1]);
  718. continue;
  719. }else if(strcmp(newString[0], "presentBattVoltage") == 0){
  720. SetPresentBattVoltage(newString[1]);
  721. continue;
  722. }else if(strcmp(newString[0], "minimumChargeCurrent") == 0){//
  723. SetMinimumChargeCurrent(newString[1]);
  724. continue;
  725. }else if(strcmp(newString[0], "soc") == 0){//
  726. SetSoc(newString[1]);
  727. continue;
  728. }else if(strcmp(newString[0], "relay") == 0){//
  729. SetRelay(newString[1]);
  730. continue;
  731. }else if(strcmp(newString[0], "cstate") == 0){//
  732. SetState(newString[1]);
  733. continue;
  734. }else if(strcmp(newString[0], "startstate") == 0){//
  735. SetStartState(newString[1]);
  736. continue;
  737. }else if(strcmp(newString[0], "crelaystate") == 0){//
  738. SetRelayState(newString[1]);
  739. continue;
  740. }else if(strcmp(newString[0], "ccstate") == 0){//
  741. SetCState(newString[1]);
  742. continue;
  743. }else if(strcmp(newString[0], "vccuinfo") == 0){//
  744. getVCCUInfo();
  745. continue;
  746. }else if(strcmp(newString[0], "chademoinfo") == 0){//
  747. getChademoInfo();
  748. continue;
  749. }else if(strcmp(newString[0], "chromainfo") == 0){//
  750. getChromaInfo();
  751. continue;
  752. }else if(strcmp(newString[0], "modeChange") == 0){//
  753. setModeChange(newString[1]);
  754. continue;
  755. }else if(strcmp(newString[0], "ateState") == 0){//
  756. SetATEState(newString[1]);
  757. continue;
  758. }
  759. printf ("%s\n", msg);
  760. usleep(100000);
  761. }
  762. return(0);
  763. }