release 0.4 (DC charging)

git-svn-id: https://svn.code.sf.net/p/openv2g/code/trunk@35 d9f2db14-54d0-4bde-b00c-16405c910529
This commit is contained in:
sebastiankb 2011-04-14 18:08:24 +00:00
parent d9a8576ec0
commit 098db4604e
50 changed files with 7709 additions and 3660 deletions

View file

@ -555,6 +555,7 @@
</profile> </profile>
</scannerConfigBuildInfo> </scannerConfigBuildInfo>
</storageModule> </storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cconfiguration> </cconfiguration>
<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450"> <cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450" moduleId="org.eclipse.cdt.core.settings" name="Release"> <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450" moduleId="org.eclipse.cdt.core.settings" name="Release">
@ -571,7 +572,7 @@
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450." name="/" resourcePath=""> <folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.base.506532925" name="Linux GCC" nonInternalBuilderId="cdt.managedbuild.target.gnu.builder.base" superClass="cdt.managedbuild.toolchain.gnu.base"> <toolChain id="cdt.managedbuild.toolchain.gnu.base.506532925" name="Linux GCC" nonInternalBuilderId="cdt.managedbuild.target.gnu.builder.base" superClass="cdt.managedbuild.toolchain.gnu.base">
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.784544317" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.784544317" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
<builder autoBuildTarget="all" buildPath="${workspace_loc:/OpenV2G/Release}" cleanBuildTarget="clean" id="org.eclipse.cdt.build.core.internal.builder.755395484" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="org.eclipse.cdt.build.core.internal.builder"/> <builder autoBuildTarget="all" buildPath="${workspace_loc:/OpenV2G/Release}" cleanBuildTarget="clean" id="org.eclipse.cdt.build.core.internal.builder.332458815" incrementalBuildTarget="all" managedBuildOn="true" name="CDT Internal Builder" superClass="org.eclipse.cdt.build.core.internal.builder"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.501212056" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/> <tool id="cdt.managedbuild.tool.gnu.archiver.base.501212056" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.605628336" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base"> <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.605628336" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
<option id="gnu.cpp.compiler.option.optimization.level.937286096" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/> <option id="gnu.cpp.compiler.option.optimization.level.937286096" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
@ -1104,6 +1105,7 @@
</profile> </profile>
</scannerConfigBuildInfo> </scannerConfigBuildInfo>
</storageModule> </storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cconfiguration> </cconfiguration>
</storageModule> </storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> <storageModule moduleId="cdtBuildSystem" version="4.0.0">

View file

@ -17,6 +17,10 @@
<key>org.eclipse.cdt.make.core.append_environment</key> <key>org.eclipse.cdt.make.core.append_environment</key>
<value>true</value> <value>true</value>
</dictionary> </dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key> <key>org.eclipse.cdt.make.core.buildArguments</key>
<value></value> <value></value>
@ -27,7 +31,11 @@
</dictionary> </dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.buildLocation</key> <key>org.eclipse.cdt.make.core.buildLocation</key>
<value>${workspace_loc:/OpenV2G/Debug}</value> <value>${workspace_loc:/OpenV2G/Release}</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
<value>clean</value>
</dictionary> </dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.contents</key> <key>org.eclipse.cdt.make.core.contents</key>
@ -45,6 +53,10 @@
<key>org.eclipse.cdt.make.core.enableFullBuild</key> <key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value> <value>true</value>
</dictionary> </dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.stopOnError</key> <key>org.eclipse.cdt.make.core.stopOnError</key>
<value>true</value> <value>true</value>

View file

@ -1,13 +1,13 @@
------------------------------------------------------------------------- -------------------------------------------------------------------------
OpenV2G - an open source project implementing the basic functionality of the ISO IEC 15118 vehicle to grid (V2G) communication interface OpenV2G - an open source project implementing the basic functionality of the ISO IEC 15118 vehicle to grid (V2G) communication interface
Version 0.3.1, released December 22, 2010 Version 0.4, released April 14, 2011
http://openv2g.sourceforge.net/ http://openv2g.sourceforge.net/
Please report bugs via the SourceForge bug tracking system at http://sourceforge.net/tracker/?group_id=350113. Please report bugs via the SourceForge bug tracking system at http://sourceforge.net/tracker/?group_id=350113.
Thank you. Thank you.
Copyright (C) 2007-2010 Siemens AG Copyright (C) 2007-2011 Siemens AG
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
@ -22,15 +22,24 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
-------------------------------------------------------------------------
CHANGES from version 0.3.1:
-------------------------------------------------------------------------
* adaption of V2G schema changes
* supporting of DC messages
* example program showing the message sequence of AC charging and
DC charging
* bug-fixes
------------------------------------------------------------------------- -------------------------------------------------------------------------
CHANGES from version 0.3: CHANGES from version 0.3:
------------------------------------------------------------------------- -------------------------------------------------------------------------
* Bug-fixes * Bug-fixes
* reduced memory usage * reduced memory usage
* some type changes in the EXI codec and V2G service: * some type changes in the EXI codec and V2G service:
** struct v2gService->struct EXIService ** struct v2gService->struct EXIService in v2g_service.h
** size_t->uint16_t ** size_t->uint16_t in v2g_serviceClientDataTransmitter.h and doIP.h
* renaming of some enumeration values * renaming of some enumeration values in v2g_serviceDataTypes.h
------------------------------------------------------------------------- -------------------------------------------------------------------------
CHANGES from version 0.2.2: CHANGES from version 0.2.2:

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
* Bit decoding functionalities * Bit decoding functionalities

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/
@ -59,41 +59,49 @@ const char * localNames3[] = {
}; };
/* localName entries for URI id = 4 */ /* localName entries for URI id = 4 */
const char * localNames4[] = { const char * localNames4[] = {
"ContractID", "EAmount", "EVSEID", "EVSEIMax", "EVSEMaxPhases", "CableCheckReq", "CableCheckReqType", "CableCheckRes", "CableCheckResType", "ChargeParameterDiscoveryReq",
"EVSEMaxPower", "EVSEStatus", "EVSEVoltage", "EnergyProvider", "EoC", "ChargeParameterDiscoveryReqType", "ChargeParameterDiscoveryRes", "ChargeParameterDiscoveryResType", "ChargingMode", "ContractID",
"LineLockReq", "LineLockReqType", "LineLockRes", "LineLockResType", "MeterInfo", "CurrentDemandReq", "CurrentDemandReqType", "CurrentDemandRes", "CurrentDemandResType", "CurrentDifferential",
"MeteringReceiptReq", "MeteringReceiptReqType", "MeteringReceiptRes", "MeteringReceiptResType", "MeteringStatusReq", "EAmount", "EVSEID", "EVSEMaxCurrent", "EVSEMaxPhases", "EVSEMaxPower",
"MeteringStatusReqType", "MeteringStatusRes", "MeteringStatusResType", "PCurrent", "PEVID", "EVSEMaxVoltage", "EVSEMinCurrent", "EVSEMinVoltage", "EVSEPresentCurrent", "EVSEPresentVoltage",
"PEVMaxPhases", "PEVMaxPower", "PEVMaxVoltage", "PEVMinVoltage", "PEVStatus", "EVSEStatus", "EnergyProvider", "EoC", "LineLockReq", "LineLockReqType",
"PaymentDetailsReq", "PaymentDetailsReqType", "PaymentDetailsRes", "PaymentDetailsResType", "PowerDeliveryReq", "LineLockRes", "LineLockResType", "MeterInfo", "MeteringReceiptReq", "MeteringReceiptReqType",
"PowerDeliveryReqType", "PowerDeliveryRes", "PowerDeliveryResType", "PowerDiscoveryReq", "PowerDiscoveryReqType", "MeteringReceiptRes", "MeteringReceiptResType", "MeteringStatusReq", "MeteringStatusReqType", "MeteringStatusRes",
"PowerDiscoveryRes", "PowerDiscoveryResType", "ReqLockStatus", "ReqSwitchStatus", "ResponseCode", "MeteringStatusResType", "PCurrent", "PEVDemandCurrent", "PEVID", "PEVMaxCurrent",
"ServiceDiscoveryReq", "ServiceDiscoveryReqType", "ServiceDiscoveryRes", "ServiceDiscoveryResType", "ServiceList", "PEVMaxPhases", "PEVMaxPower", "PEVMaxVoltage", "PEVMinCurrent", "PEVMinVoltage",
"ServicePaymentSelectionReq", "ServicePaymentSelectionReqType", "ServicePaymentSelectionRes", "ServicePaymentSelectionResType", "ServiceScope", "PEVStatus", "PEVTargetVoltage", "PaymentDetailsReq", "PaymentDetailsReqType", "PaymentDetailsRes",
"ServiceType", "SessionSetupReq", "SessionSetupReqType", "SessionSetupRes", "SessionSetupResType", "PaymentDetailsResType", "PowerDeliveryReq", "PowerDeliveryReqType", "PowerDeliveryRes", "PowerDeliveryResType",
"TCurrent", "Tariff", "TariffTable" "PreChargeReq", "PreChargeReqType", "PreChargeRes", "PreChargeResType", "ReqLockStatus",
"ReqSwitchStatus", "ResponseCode", "ServiceDiscoveryReq", "ServiceDiscoveryReqType", "ServiceDiscoveryRes",
"ServiceDiscoveryResType", "ServiceList", "ServicePaymentSelectionReq", "ServicePaymentSelectionReqType", "ServicePaymentSelectionRes",
"ServicePaymentSelectionResType", "ServiceScope", "ServiceType", "SessionSetupReq", "SessionSetupReqType",
"SessionSetupRes", "SessionSetupResType", "TCurrent", "Tariff", "TariffTable",
"TerminateChargingReq", "TerminateChargingReqType", "TerminateChargingRes", "TerminateChargingResType", "VoltageDifferential",
"WeldingDetectionReq", "WeldingDetectionReqType", "WeldingDetectionRes", "WeldingDetectionResType"
}; };
/* localName entries for URI id = 5 */ /* localName entries for URI id = 5 */
const char * localNames5[] = { const char * localNames5[] = {
"ChargerStandby", "ChargingProfileEntryMaxPower", "ChargingProfileEntryStart", "ChargingProfileType", "ConnectorLocked", "ChargerStandby", "ChargingProfileEntryMaxPower", "ChargingProfileEntryStart", "ChargingProfileType", "ConnectorLocked",
"Currency", "EPrice", "EVSEStandby", "EVSEStatusType", "Event", "Currency", "EPrice", "EVSEMalfunction", "EVSEStandby", "EVSEStatusType",
"EventList", "EventListType", "FatalError", "FaultCode", "FaultMsg", "Event", "EventList", "EventListType", "FatalError", "FaultCode",
"FloatingValueType", "MeterID", "MeterInfoType", "MeterReading", "MeterStatus", "FaultMsg", "FloatingValueType", "MeterID", "MeterInfoType", "MeterReading",
"Multiplier", "NotificationType", "PEVStatusType", "PowerSwitchClosed", "ProtocolVersion", "MeterStatus", "Multiplier", "NotificationType", "PEVStatusType", "PowerSwitchClosed",
"RCD", "Service", "ServiceDescriptionType", "ServiceID", "ServiceListType", "ProtocolVersion", "RCD", "ReadyToCharge", "Service", "ServiceDescriptionType",
"ServiceName", "ServiceScope", "ServiceSessionID", "ServiceType", "SessionID", "ServiceID", "ServiceListType", "ServiceName", "ServiceScope", "ServiceSessionID",
"SessionInformationType", "ShutDownTime", "TMeter", "Tariff", "TariffDescrType", "ServiceType", "SessionID", "SessionInformationType", "ShutDownTime", "StopCharging",
"TariffDescription", "TariffEntries", "TariffEntriesType", "TariffEntry", "TariffEntryType", "TMeter", "Tariff", "TariffDescrType", "TariffDescription", "TariffEntries",
"TariffID", "TariffPMax", "TariffStart", "TariffTableType", "Unit", "TariffEntriesType", "TariffEntry", "TariffEntryType", "TariffID", "TariffPMax",
"Value", "contractIDType", "currencyType", "energyProviderType", "eventEntryType", "TariffStart", "TariffTableType", "Unit", "Value", "chargingModeType",
"evseIDType", "fatalErrorType", "faultCodeType", "lockStatusType", "maxPhasesType", "contractIDType", "currencyType", "energyProviderType", "eventEntryType", "evseIDType",
"meterIDType", "meterStatusType", "paymentOptionListType", "paymentOptionType", "pevIDType", "fatalErrorType", "faultCodeType", "lockStatusType", "maxPhasesType", "meterIDType",
"protocolVersionType", "pubKeyType", "rcdType", "responseCode_LineLockType", "responseCode_MeteringReceiptType", "meterStatusType", "paymentOptionListType", "paymentOptionType", "pevIDType", "protocolVersionType",
"responseCode_MeteringStatusType", "responseCode_PaymentDetailsType", "responseCode_PowerDeliveryType", "responseCode_PowerDiscoveryType", "responseCode_ServiceDiscoveryType", "pubKeyType", "rcdType", "responseCode_CableCheckType", "responseCode_ChargeParameterDiscoveryType", "responseCode_CurrentDemandType",
"responseCode_ServicePaymentSelectionType", "responseCode_SessionSetupType", "serviceDetailsType", "serviceIDType", "serviceNameType", "responseCode_LineLockType", "responseCode_MeteringReceiptType", "responseCode_MeteringStatusType", "responseCode_PaymentDetailsType", "responseCode_PowerDeliveryType",
"serviceScopeType", "serviceTypeType", "sessionIDType", "standbyType", "switchStatusType", "responseCode_PreChargeType", "responseCode_ServiceDiscoveryType", "responseCode_ServicePaymentSelectionType", "responseCode_SessionSetupType", "responseCode_TerminateChargingType",
"tariffDescriptionType", "tariffIDType", "tariffStartType", "timeType", "unitMultiplierType", "responseCode_WeldingDetectionType", "serviceDetailsType", "serviceIDType", "serviceNameType", "serviceScopeType",
"unitSymbolType" "serviceTypeType", "sessionIDType", "standbyType", "switchStatusType", "tariffDescriptionType",
"tariffIDType", "tariffStartType", "timeType", "unitMultiplierType", "unitSymbolType"
}; };
/* localName entries for URI id = 6 */ /* localName entries for URI id = 6 */
const char * localNames6[] = { const char * localNames6[] = {
@ -109,8 +117,8 @@ struct exiPartition localNamePartitions[8] = {
{ 4, localNames1 }, { 4, localNames1 },
{ 2, localNames2 }, { 2, localNames2 },
{ 46, localNames3 }, { 46, localNames3 },
{ 63, localNames4 }, { 94, localNames4 },
{ 91, localNames5 }, { 100, localNames5 },
{ 6, localNames6 }, { 6, localNames6 },
{ 3, localNames7 } { 3, localNames7 }
}; };

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.2
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -19,7 +19,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.2
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,7 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -22,7 +22,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.3.2
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/
@ -89,13 +89,13 @@ extern "C" {
/** /**
* \brief Calls the remote powerDiscovery method * \brief Calls the remote chargeParameterDiscovery method
* \param service struct EXIService* Service data structure (has to be initialized before) * \param service struct EXIService* Service data structure (has to be initialized before)
* \param header struct HeaderType* Header data structure * \param header struct HeaderType* Header data structure
* \param params struct PowerDiscoveryReqType* Request data for the server (has to be set up before) * \param params struct ChargeParameterDiscoveryReqType* Request data for the server (has to be set up before)
* \param result struct PowerDiscoveryResType* Contains the response data from the server * \param result struct ChargeParameterDiscoveryResType* Contains the response data from the server
* \return 0 = 0K; -1 = ERROR */ * \return 0 = 0K; -1 = ERROR */
int call_powerDiscovery(struct EXIService* service, struct HeaderType* header, struct PowerDiscoveryReqType* params, struct PowerDiscoveryResType* result); int call_chargeParameterDiscovery(struct EXIService* service, struct HeaderType* header, struct ChargeParameterDiscoveryReqType* params, struct ChargeParameterDiscoveryResType* result);
@ -147,6 +147,66 @@ extern "C" {
/**
* \brief Calls the remote cableCheck method
* \param service struct EXIService* Service data structure (has to be initialized before)
* \param header struct HeaderType* Header data structure
* \param params struct CableCheckReqType* Request data for the server (has to be set up before)
* \param result struct CableCheckResType* Contains the response data from the server
* \return 0 = 0K; -1 = ERROR */
int call_cableCheck(struct EXIService* service, struct HeaderType* header, struct CableCheckReqType* params, struct CableCheckResType* result);
/**
* \brief Calls the remote preCharge method
* \param service struct EXIService* Service data structure (has to be initialized before)
* \param header struct HeaderType* Header data structure
* \param params struct PreChargeReqType* Request data for the server (has to be set up before)
* \param result struct PreChargeResType* Contains the response data from the server
* \return 0 = 0K; -1 = ERROR */
int call_preCharge(struct EXIService* service, struct HeaderType* header, struct PreChargeReqType* params, struct PreChargeResType* result);
/**
* \brief Calls the remote currentDemand method
* \param service struct EXIService* Service data structure (has to be initialized before)
* \param header struct HeaderType* Header data structure
* \param params struct CurrentDemandReqType* Request data for the server (has to be set up before)
* \param result struct CurrentDemandResType* Contains the response data from the server
* \return 0 = 0K; -1 = ERROR */
int call_currentDemand(struct EXIService* service, struct HeaderType* header, struct CurrentDemandReqType* params, struct CurrentDemandResType* result);
/**
* \brief Calls the remote weldingDetection method
* \param service struct EXIService* Service data structure (has to be initialized before)
* \param header struct HeaderType* Header data structure
* \param params struct WeldingDetectionReqType* Request data for the server (has to be set up before)
* \param result struct WeldingDetectionResType* Contains the response data from the server
* \return 0 = 0K; -1 = ERROR */
int call_weldingDetection(struct EXIService* service, struct HeaderType* header, struct WeldingDetectionReqType* params, struct WeldingDetectionResType* result);
/**
* \brief Calls the remote terminateCharging method
* \param service struct EXIService* Service data structure (has to be initialized before)
* \param header struct HeaderType* Header data structure
* \param params struct TerminateChargingReqType* Request data for the server (has to be set up before)
* \param result struct TerminateChargingResType* Contains the response data from the server
* \return 0 = 0K; -1 = ERROR */
int call_terminateCharging(struct EXIService* service, struct HeaderType* header, struct TerminateChargingReqType* params, struct TerminateChargingResType* result);
/* Initialize the v2g client */ /* Initialize the v2g client */
int init_v2gServiceClient(struct EXIService* service, bytes_t bytes, string_ucs_t string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size, uint16_t transportHeaderOffset); int init_v2gServiceClient(struct EXIService* service, bytes_t bytes, string_ucs_t string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size, uint16_t transportHeaderOffset);

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -19,7 +19,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.3.2
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/
@ -29,19 +29,13 @@
#include "v2g_serviceDataTypes.h" #include "v2g_serviceDataTypes.h"
static void init_SessionInformationType_SessionID(struct SessionInformationType_SessionID* type) static void init_sessionIDType(struct sessionIDType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
} }
static void init_SessionInformationType_ServiceSessionID(struct SessionInformationType_ServiceSessionID* type) static void init_protocolVersionType(struct protocolVersionType* type)
{
type->arraylen.data=0;
}
static void init_SessionInformationType_ProtocolVersion(struct SessionInformationType_ProtocolVersion* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -49,15 +43,15 @@ static void init_SessionInformationType_ProtocolVersion(struct SessionInformati
static void init_SessionInformationType(struct SessionInformationType* type) static void init_SessionInformationType(struct SessionInformationType* type)
{ {
init_SessionInformationType_SessionID(&(type->SessionID)); init_sessionIDType(&(type->SessionID));
init_SessionInformationType_ServiceSessionID(&(type->ServiceSessionID)); init_sessionIDType(&(type->ServiceSessionID));
type->isused.ServiceSessionID=0; type->isused.ServiceSessionID=0;
init_SessionInformationType_ProtocolVersion(&(type->ProtocolVersion)); init_protocolVersionType(&(type->ProtocolVersion));
type->isused.ProtocolVersion=0; type->isused.ProtocolVersion=0;
} }
static void init_NotificationType_FaultMsg(struct NotificationType_FaultMsg* type) static void init_service_string(struct service_string* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -66,7 +60,7 @@ static void init_NotificationType_FaultMsg(struct NotificationType_FaultMsg* ty
static void init_NotificationType(struct NotificationType* type) static void init_NotificationType(struct NotificationType* type)
{ {
type->isused.FaultCode=0; type->isused.FaultCode=0;
init_NotificationType_FaultMsg(&(type->FaultMsg)); init_service_string(&(type->FaultMsg));
type->isused.FaultMsg=0; type->isused.FaultMsg=0;
type->isused.EventList=0; type->isused.EventList=0;
@ -80,7 +74,7 @@ static void init_HeaderType(struct HeaderType* type)
} }
static void init_SessionSetupReqType_PEVID(struct SessionSetupReqType_PEVID* type) static void init_pevIDType(struct pevIDType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -88,12 +82,12 @@ static void init_SessionSetupReqType_PEVID(struct SessionSetupReqType_PEVID* ty
static void init_SessionSetupReqType(struct SessionSetupReqType* type) static void init_SessionSetupReqType(struct SessionSetupReqType* type)
{ {
init_SessionSetupReqType_PEVID(&(type->PEVID)); init_pevIDType(&(type->PEVID));
type->isused.PEVID=0; type->isused.PEVID=0;
} }
static void init_SessionSetupResType_EVSEID(struct SessionSetupResType_EVSEID* type) static void init_evseIDType(struct evseIDType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -101,11 +95,11 @@ static void init_SessionSetupResType_EVSEID(struct SessionSetupResType_EVSEID*
static void init_SessionSetupResType(struct SessionSetupResType* type) static void init_SessionSetupResType(struct SessionSetupResType* type)
{ {
init_SessionSetupResType_EVSEID(&(type->EVSEID)); init_evseIDType(&(type->EVSEID));
} }
static void init_ServiceDiscoveryReqType_ServiceScope(struct ServiceDiscoveryReqType_ServiceScope* type) static void init_serviceScopeType(struct serviceScopeType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -114,24 +108,18 @@ static void init_ServiceDiscoveryReqType_ServiceScope(struct ServiceDiscoveryRe
static void init_ServiceDiscoveryReqType(struct ServiceDiscoveryReqType* type) static void init_ServiceDiscoveryReqType(struct ServiceDiscoveryReqType* type)
{ {
type->isused.ServiceType=0; type->isused.ServiceType=0;
init_ServiceDiscoveryReqType_ServiceScope(&(type->ServiceScope)); init_serviceScopeType(&(type->ServiceScope));
type->isused.ServiceScope=0; type->isused.ServiceScope=0;
} }
static void init_ServiceDescriptionType_ServiceID(struct ServiceDescriptionType_ServiceID* type) static void init_serviceIDType(struct serviceIDType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
} }
static void init_ServiceDescriptionType_ServiceName(struct ServiceDescriptionType_ServiceName* type) static void init_serviceNameType(struct serviceNameType* type)
{
type->arraylen.data=0;
}
static void init_ServiceDescriptionType_ServiceScope(struct ServiceDescriptionType_ServiceScope* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -139,11 +127,11 @@ static void init_ServiceDescriptionType_ServiceScope(struct ServiceDescriptionT
static void init_ServiceDescriptionType(struct ServiceDescriptionType* type) static void init_ServiceDescriptionType(struct ServiceDescriptionType* type)
{ {
init_ServiceDescriptionType_ServiceID(&(type->ServiceID)); init_serviceIDType(&(type->ServiceID));
init_ServiceDescriptionType_ServiceName(&(type->ServiceName)); init_serviceNameType(&(type->ServiceName));
type->isused.ServiceName=0; type->isused.ServiceName=0;
type->isused.ServiceType=0; type->isused.ServiceType=0;
init_ServiceDescriptionType_ServiceScope(&(type->ServiceScope)); init_serviceScopeType(&(type->ServiceScope));
type->isused.ServiceScope=0; type->isused.ServiceScope=0;
} }
@ -174,7 +162,7 @@ static void init_ServicePaymentSelectionReqType(struct ServicePaymentSelectionR
} }
static void init_PaymentDetailsReqType_ContractID(struct PaymentDetailsReqType_ContractID* type) static void init_contractIDType(struct contractIDType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -182,28 +170,28 @@ static void init_PaymentDetailsReqType_ContractID(struct PaymentDetailsReqType_
static void init_PaymentDetailsReqType(struct PaymentDetailsReqType* type) static void init_PaymentDetailsReqType(struct PaymentDetailsReqType* type)
{ {
init_PaymentDetailsReqType_ContractID(&(type->ContractID)); init_contractIDType(&(type->ContractID));
} }
static void init_PowerDiscoveryReqType(struct PowerDiscoveryReqType* type) static void init_ChargeParameterDiscoveryReqType(struct ChargeParameterDiscoveryReqType* type)
{ {
} }
static void init_PowerDiscoveryResType_EnergyProvider(struct PowerDiscoveryResType_EnergyProvider* type) static void init_energyProviderType(struct energyProviderType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
} }
static void init_TariffTableType_Currency(struct TariffTableType_Currency* type) static void init_currencyType(struct currencyType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
} }
static void init_TariffDescrType_TariffDescription(struct TariffDescrType_TariffDescription* type) static void init_tariffDescriptionType(struct tariffDescriptionType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -230,7 +218,7 @@ static void init_TariffEntriesType(struct TariffEntriesType* type)
static void init_TariffDescrType(struct TariffDescrType* type) static void init_TariffDescrType(struct TariffDescrType* type)
{ {
init_TariffDescrType_TariffDescription(&(type->TariffDescription)); init_tariffDescriptionType(&(type->TariffDescription));
type->isused.TariffDescription=0; type->isused.TariffDescription=0;
init_TariffEntriesType(&(type->TariffEntries)); init_TariffEntriesType(&(type->TariffEntries));
@ -240,7 +228,7 @@ static void init_TariffTableType(struct TariffTableType* type)
{ {
int i_loop; int i_loop;
init_TariffTableType_Currency(&(type->Currency)); init_currencyType(&(type->Currency));
for(i_loop=0; i_loop<6;i_loop++) for(i_loop=0; i_loop<6;i_loop++)
{ {
init_TariffDescrType(&(type->Tariff[i_loop])); init_TariffDescrType(&(type->Tariff[i_loop]));
@ -250,9 +238,9 @@ static void init_TariffTableType(struct TariffTableType* type)
} }
static void init_PowerDiscoveryResType(struct PowerDiscoveryResType* type) static void init_ChargeParameterDiscoveryResType(struct ChargeParameterDiscoveryResType* type)
{ {
init_PowerDiscoveryResType_EnergyProvider(&(type->EnergyProvider)); init_energyProviderType(&(type->EnergyProvider));
type->isused.EnergyProvider=0; type->isused.EnergyProvider=0;
init_TariffTableType(&(type->TariffTable)); init_TariffTableType(&(type->TariffTable));
type->isused.TariffTable=0; type->isused.TariffTable=0;
@ -275,13 +263,12 @@ static void init_PowerDeliveryReqType(struct PowerDeliveryReqType* type)
} }
static void init_MeteringStatusResType_EVSEID(struct MeteringStatusResType_EVSEID* type) static void init_PowerDeliveryResType(struct PowerDeliveryResType* type)
{ {
type->arraylen.data=0;
} }
static void init_MeterInfoType_MeterID(struct MeterInfoType_MeterID* type) static void init_meterIDType(struct meterIDType* type)
{ {
type->arraylen.data=0; type->arraylen.data=0;
@ -289,7 +276,7 @@ static void init_MeterInfoType_MeterID(struct MeterInfoType_MeterID* type)
static void init_MeterInfoType(struct MeterInfoType* type) static void init_MeterInfoType(struct MeterInfoType* type)
{ {
init_MeterInfoType_MeterID(&(type->MeterID)); init_meterIDType(&(type->MeterID));
type->isused.MeterID=0; type->isused.MeterID=0;
type->isused.MeterReading=0; type->isused.MeterReading=0;
type->isused.MeterStatus=0; type->isused.MeterStatus=0;
@ -299,28 +286,72 @@ static void init_MeterInfoType(struct MeterInfoType* type)
static void init_MeteringStatusResType(struct MeteringStatusResType* type) static void init_MeteringStatusResType(struct MeteringStatusResType* type)
{ {
init_MeteringStatusResType_EVSEID(&(type->EVSEID)); init_evseIDType(&(type->EVSEID));
type->isused.PCurrent=0; type->isused.PCurrent=0;
init_MeterInfoType(&(type->MeterInfo)); init_MeterInfoType(&(type->MeterInfo));
type->isused.MeterInfo=0; type->isused.MeterInfo=0;
} }
static void init_MeteringReceiptReqType_PEVID(struct MeteringReceiptReqType_PEVID* type)
{
type->arraylen.data=0;
}
static void init_MeteringReceiptReqType(struct MeteringReceiptReqType* type) static void init_MeteringReceiptReqType(struct MeteringReceiptReqType* type)
{ {
init_MeteringReceiptReqType_PEVID(&(type->PEVID)); init_pevIDType(&(type->PEVID));
type->isused.PEVID=0; type->isused.PEVID=0;
type->isused.TCurrent=0; type->isused.TCurrent=0;
init_MeterInfoType(&(type->MeterInfo)); init_MeterInfoType(&(type->MeterInfo));
} }
static void init_CableCheckReqType(struct CableCheckReqType* type)
{
}
static void init_CableCheckResType(struct CableCheckResType* type)
{
}
static void init_PreChargeReqType(struct PreChargeReqType* type)
{
}
static void init_PreChargeResType(struct PreChargeResType* type)
{
}
static void init_CurrentDemandReqType(struct CurrentDemandReqType* type)
{
}
static void init_CurrentDemandResType(struct CurrentDemandResType* type)
{
}
static void init_WeldingDetectionReqType(struct WeldingDetectionReqType* type)
{
}
static void init_WeldingDetectionResType(struct WeldingDetectionResType* type)
{
}
static void init_TerminateChargingReqType(struct TerminateChargingReqType* type)
{
}
static void init_TerminateChargingResType(struct TerminateChargingResType* type)
{
}
static void init_BodyType(struct BodyType* type) static void init_BodyType(struct BodyType* type)
{ {
type->isused.SessionSetupReq=0; type->isused.SessionSetupReq=0;
@ -331,8 +362,8 @@ static void init_BodyType(struct BodyType* type)
type->isused.ServicePaymentSelectionRes=0; type->isused.ServicePaymentSelectionRes=0;
type->isused.PaymentDetailsReq=0; type->isused.PaymentDetailsReq=0;
type->isused.PaymentDetailsRes=0; type->isused.PaymentDetailsRes=0;
type->isused.PowerDiscoveryReq=0; type->isused.ChargeParameterDiscoveryReq=0;
type->isused.PowerDiscoveryRes=0; type->isused.ChargeParameterDiscoveryRes=0;
type->isused.LineLockReq=0; type->isused.LineLockReq=0;
type->isused.LineLockRes=0; type->isused.LineLockRes=0;
type->isused.PowerDeliveryReq=0; type->isused.PowerDeliveryReq=0;
@ -341,6 +372,16 @@ static void init_BodyType(struct BodyType* type)
type->isused.MeteringStatusRes=0; type->isused.MeteringStatusRes=0;
type->isused.MeteringReceiptReq=0; type->isused.MeteringReceiptReq=0;
type->isused.MeteringReceiptRes=0; type->isused.MeteringReceiptRes=0;
type->isused.CableCheckReq=0;
type->isused.CableCheckRes=0;
type->isused.PreChargeReq=0;
type->isused.PreChargeRes=0;
type->isused.CurrentDemandReq=0;
type->isused.CurrentDemandRes=0;
type->isused.WeldingDetectionReq=0;
type->isused.WeldingDetectionRes=0;
type->isused.TerminateChargingReq=0;
type->isused.TerminateChargingRes=0;
} }

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -19,7 +19,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.3.2
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/
@ -105,19 +105,10 @@ enum responseCode_PaymentDetailsType
}; };
enum unitMultiplierType enum chargingModeType
{ {
d_unitMultiplierType, AC_charging_chargingModeType,
c_unitMultiplierType, DC_charging_chargingModeType
m_unitMultiplierType,
micro_unitMultiplierType,
n_unitMultiplierType,
p_unitMultiplierType,
k_unitMultiplierType,
M_unitMultiplierType,
G_unitMultiplierType,
T_unitMultiplierType,
none_unitMultiplierType
}; };
@ -126,16 +117,9 @@ enum unitSymbolType
A_unitSymbolType, A_unitSymbolType,
deg_unitSymbolType, deg_unitSymbolType,
F_unitSymbolType, F_unitSymbolType,
g_unitSymbolType,
h_unitSymbolType, h_unitSymbolType,
J_unitSymbolType,
J_s_unitSymbolType,
kg_J_unitSymbolType,
min_unitSymbolType, min_unitSymbolType,
N_unitSymbolType,
ohm_unitSymbolType,
s_unitSymbolType, s_unitSymbolType,
S_unitSymbolType,
s_1_unitSymbolType, s_1_unitSymbolType,
V_unitSymbolType, V_unitSymbolType,
V_VAr_unitSymbolType, V_VAr_unitSymbolType,
@ -147,14 +131,15 @@ enum unitSymbolType
W_Hz_unitSymbolType, W_Hz_unitSymbolType,
W_s_unitSymbolType, W_s_unitSymbolType,
Wh_unitSymbolType, Wh_unitSymbolType,
Ah_unitSymbolType Ah_unitSymbolType,
J_unitSymbolType
}; };
enum responseCode_PowerDiscoveryType enum responseCode_ChargeParameterDiscoveryType
{ {
OK_PowerDiscovery_responseCode_PowerDiscoveryType, OK_responseCode_ChargeParameterDiscoveryType,
FAILED_UnknownError_InPowerDiscovery_responseCode_PowerDiscoveryType FAILED_BatteryNotCompatible_responseCode_ChargeParameterDiscoveryType,
FAILED_UnknownError_responseCode_ChargeParameterDiscoveryType
}; };
@ -201,34 +186,55 @@ enum responseCode_MeteringReceiptType
}; };
enum responseCode_CableCheckType
{
OK_responseCode_CableCheckType,
FAILED_UnknownError_responseCode_CableCheckType
};
enum responseCode_PreChargeType
{
OK_responseCode_PreChargeType,
FAILED_UnknownError_responseCode_PreChargeType
};
enum responseCode_CurrentDemandType
{
OK_responseCode_CurrentDemandType,
FAILED_UnknownError_responseCode_CurrentDemandType
};
enum responseCode_WeldingDetectionType
{
OK_responseCode_WeldingDetectionType,
FAILED_UnknownError_responseCode_WeldingDetectionType
};
enum responseCode_TerminateChargingType
{
OK_responseCode_TerminateChargingType,
FAILED_UnknownError_responseCode_TerminateChargingType
};
struct arraylen_SessionInformationType_SessionID
struct arraylen_sessionIDType
{ {
size_t data; size_t data;
}; };
struct SessionInformationType_SessionID struct sessionIDType
{ {
uint8_t data[8]; uint8_t data[8];
struct arraylen_SessionInformationType_SessionID arraylen; struct arraylen_sessionIDType arraylen;
};
struct arraylen_SessionInformationType_ServiceSessionID
{
size_t data;
};
struct SessionInformationType_ServiceSessionID
{
uint8_t data[8];
struct arraylen_SessionInformationType_ServiceSessionID arraylen;
}; };
@ -240,25 +246,25 @@ struct selection_SessionInformationType
}; };
struct arraylen_SessionInformationType_ProtocolVersion struct arraylen_protocolVersionType
{ {
size_t data; size_t data;
}; };
struct SessionInformationType_ProtocolVersion struct protocolVersionType
{ {
uint32_t data[5]; uint32_t data[5];
struct arraylen_SessionInformationType_ProtocolVersion arraylen; struct arraylen_protocolVersionType arraylen;
}; };
struct SessionInformationType struct SessionInformationType
{ {
struct SessionInformationType_SessionID SessionID; struct sessionIDType SessionID;
struct SessionInformationType_ServiceSessionID ServiceSessionID; struct sessionIDType ServiceSessionID;
struct SessionInformationType_ProtocolVersion ProtocolVersion; struct protocolVersionType ProtocolVersion;
struct selection_SessionInformationType isused; struct selection_SessionInformationType isused;
}; };
@ -272,17 +278,17 @@ struct selection_NotificationType
}; };
struct arraylen_NotificationType_FaultMsg struct arraylen_service_string
{ {
size_t data; size_t data;
}; };
struct NotificationType_FaultMsg struct service_string
{ {
uint32_t data[256]; uint32_t data[256];
struct arraylen_NotificationType_FaultMsg arraylen; struct arraylen_service_string arraylen;
}; };
@ -296,7 +302,7 @@ struct EventListType
struct NotificationType struct NotificationType
{ {
enum faultCodeType FaultCode; enum faultCodeType FaultCode;
struct NotificationType_FaultMsg FaultMsg; struct service_string FaultMsg;
struct EventListType EventList; struct EventListType EventList;
struct selection_NotificationType isused; struct selection_NotificationType isused;
@ -317,17 +323,17 @@ struct HeaderType
}; };
struct arraylen_SessionSetupReqType_PEVID struct arraylen_pevIDType
{ {
size_t data; size_t data;
}; };
struct SessionSetupReqType_PEVID struct pevIDType
{ {
uint32_t data[32]; uint32_t data[32];
struct arraylen_SessionSetupReqType_PEVID arraylen; struct arraylen_pevIDType arraylen;
}; };
@ -342,13 +348,14 @@ struct PEVStatusType
{ {
int ConnectorLocked; int ConnectorLocked;
int ChargerStandby; int ChargerStandby;
int ReadyToCharge;
}; };
struct SessionSetupReqType struct SessionSetupReqType
{ {
struct SessionSetupReqType_PEVID PEVID; struct pevIDType PEVID;
struct PEVStatusType PEVStatus; struct PEVStatusType PEVStatus;
struct selection_SessionSetupReqType isused; struct selection_SessionSetupReqType isused;
@ -364,8 +371,8 @@ struct selection_BodyType
unsigned int ServicePaymentSelectionRes:1; unsigned int ServicePaymentSelectionRes:1;
unsigned int PaymentDetailsReq:1; unsigned int PaymentDetailsReq:1;
unsigned int PaymentDetailsRes:1; unsigned int PaymentDetailsRes:1;
unsigned int PowerDiscoveryReq:1; unsigned int ChargeParameterDiscoveryReq:1;
unsigned int PowerDiscoveryRes:1; unsigned int ChargeParameterDiscoveryRes:1;
unsigned int LineLockReq:1; unsigned int LineLockReq:1;
unsigned int LineLockRes:1; unsigned int LineLockRes:1;
unsigned int PowerDeliveryReq:1; unsigned int PowerDeliveryReq:1;
@ -374,21 +381,31 @@ struct selection_BodyType
unsigned int MeteringStatusRes:1; unsigned int MeteringStatusRes:1;
unsigned int MeteringReceiptReq:1; unsigned int MeteringReceiptReq:1;
unsigned int MeteringReceiptRes:1; unsigned int MeteringReceiptRes:1;
unsigned int CableCheckReq:1;
unsigned int CableCheckRes:1;
unsigned int PreChargeReq:1;
unsigned int PreChargeRes:1;
unsigned int CurrentDemandReq:1;
unsigned int CurrentDemandRes:1;
unsigned int WeldingDetectionReq:1;
unsigned int WeldingDetectionRes:1;
unsigned int TerminateChargingReq:1;
unsigned int TerminateChargingRes:1;
}; };
struct arraylen_SessionSetupResType_EVSEID struct arraylen_evseIDType
{ {
size_t data; size_t data;
}; };
struct SessionSetupResType_EVSEID struct evseIDType
{ {
uint8_t data[32]; uint8_t data[32];
struct arraylen_SessionSetupResType_EVSEID arraylen; struct arraylen_evseIDType arraylen;
}; };
@ -400,6 +417,9 @@ struct EVSEStatusType
int PowerSwitchClosed; int PowerSwitchClosed;
int RCD; int RCD;
int32_t ShutDownTime; int32_t ShutDownTime;
int ChargerStandby;
int EVSEMalfunction;
int StopCharging;
}; };
@ -407,7 +427,7 @@ struct EVSEStatusType
struct SessionSetupResType struct SessionSetupResType
{ {
enum responseCode_SessionSetupType ResponseCode; enum responseCode_SessionSetupType ResponseCode;
struct SessionSetupResType_EVSEID EVSEID; struct evseIDType EVSEID;
struct EVSEStatusType EVSEStatus; struct EVSEStatusType EVSEStatus;
int32_t TCurrent; int32_t TCurrent;
@ -422,53 +442,53 @@ struct selection_ServiceDiscoveryReqType
}; };
struct arraylen_ServiceDiscoveryReqType_ServiceScope struct arraylen_serviceScopeType
{ {
size_t data; size_t data;
}; };
struct ServiceDiscoveryReqType_ServiceScope struct serviceScopeType
{ {
uint32_t data[20]; uint32_t data[20];
struct arraylen_ServiceDiscoveryReqType_ServiceScope arraylen; struct arraylen_serviceScopeType arraylen;
}; };
struct ServiceDiscoveryReqType struct ServiceDiscoveryReqType
{ {
enum serviceTypeType ServiceType; enum serviceTypeType ServiceType;
struct ServiceDiscoveryReqType_ServiceScope ServiceScope; struct serviceScopeType ServiceScope;
struct selection_ServiceDiscoveryReqType isused; struct selection_ServiceDiscoveryReqType isused;
}; };
struct arraylen_ServiceDescriptionType_ServiceID struct arraylen_serviceIDType
{ {
size_t data; size_t data;
}; };
struct ServiceDescriptionType_ServiceID struct serviceIDType
{ {
uint8_t data[8]; uint8_t data[8];
struct arraylen_ServiceDescriptionType_ServiceID arraylen; struct arraylen_serviceIDType arraylen;
}; };
struct arraylen_ServiceDescriptionType_ServiceName struct arraylen_serviceNameType
{ {
size_t data; size_t data;
}; };
struct ServiceDescriptionType_ServiceName struct serviceNameType
{ {
uint32_t data[20]; uint32_t data[20];
struct arraylen_ServiceDescriptionType_ServiceName arraylen; struct arraylen_serviceNameType arraylen;
}; };
@ -481,26 +501,12 @@ struct selection_ServiceDescriptionType
}; };
struct arraylen_ServiceDescriptionType_ServiceScope
{
size_t data;
};
struct ServiceDescriptionType_ServiceScope
{
uint32_t data[20];
struct arraylen_ServiceDescriptionType_ServiceScope arraylen;
};
struct ServiceDescriptionType struct ServiceDescriptionType
{ {
struct ServiceDescriptionType_ServiceID ServiceID; struct serviceIDType ServiceID;
struct ServiceDescriptionType_ServiceName ServiceName; struct serviceNameType ServiceName;
enum serviceTypeType ServiceType; enum serviceTypeType ServiceType;
struct ServiceDescriptionType_ServiceScope ServiceScope; struct serviceScopeType ServiceScope;
struct selection_ServiceDescriptionType isused; struct selection_ServiceDescriptionType isused;
}; };
@ -548,23 +554,23 @@ struct ServicePaymentSelectionResType
}; };
struct arraylen_PaymentDetailsReqType_ContractID struct arraylen_contractIDType
{ {
size_t data; size_t data;
}; };
struct PaymentDetailsReqType_ContractID struct contractIDType
{ {
uint32_t data[128]; uint32_t data[128];
struct arraylen_PaymentDetailsReqType_ContractID arraylen; struct arraylen_contractIDType arraylen;
}; };
struct PaymentDetailsReqType struct PaymentDetailsReqType
{ {
struct PaymentDetailsReqType_ContractID ContractID; struct contractIDType ContractID;
}; };
@ -572,47 +578,51 @@ struct PaymentDetailsReqType
struct PaymentDetailsResType struct PaymentDetailsResType
{ {
enum responseCode_PaymentDetailsType ResponseCode; enum responseCode_PaymentDetailsType ResponseCode;
int32_t TCurrent;
}; };
struct FloatingValueType struct FloatingValueType
{ {
enum unitMultiplierType Multiplier; int16_t Multiplier;
enum unitSymbolType Unit; enum unitSymbolType Unit;
int32_t Value; int32_t Value;
}; };
struct PowerDiscoveryReqType struct ChargeParameterDiscoveryReqType
{ {
struct PEVStatusType PEVStatus; struct PEVStatusType PEVStatus;
enum chargingModeType ChargingMode;
int32_t EoC; int32_t EoC;
struct FloatingValueType EAmount; struct FloatingValueType EAmount;
struct FloatingValueType PEVMaxPower; struct FloatingValueType PEVMaxPower;
int16_t PEVMaxPhases; int16_t PEVMaxPhases;
struct FloatingValueType PEVMaxVoltage; struct FloatingValueType PEVMaxVoltage;
struct FloatingValueType PEVMinVoltage; struct FloatingValueType PEVMinVoltage;
struct FloatingValueType PEVMaxCurrent;
struct FloatingValueType PEVMinCurrent;
}; };
struct arraylen_PowerDiscoveryResType_EnergyProvider struct arraylen_energyProviderType
{ {
size_t data; size_t data;
}; };
struct PowerDiscoveryResType_EnergyProvider struct energyProviderType
{ {
uint32_t data[20]; uint32_t data[20];
struct arraylen_PowerDiscoveryResType_EnergyProvider arraylen; struct arraylen_energyProviderType arraylen;
}; };
struct selection_PowerDiscoveryResType struct selection_ChargeParameterDiscoveryResType
{ {
unsigned int EnergyProvider:1; unsigned int EnergyProvider:1;
unsigned int TariffTable:1; unsigned int TariffTable:1;
@ -620,31 +630,31 @@ struct selection_PowerDiscoveryResType
}; };
struct arraylen_TariffTableType_Currency struct arraylen_currencyType
{ {
size_t data; size_t data;
}; };
struct TariffTableType_Currency struct currencyType
{ {
uint32_t data[3]; uint32_t data[3];
struct arraylen_TariffTableType_Currency arraylen; struct arraylen_currencyType arraylen;
}; };
struct arraylen_TariffDescrType_TariffDescription struct arraylen_tariffDescriptionType
{ {
size_t data; size_t data;
}; };
struct TariffDescrType_TariffDescription struct tariffDescriptionType
{ {
uint32_t data[32]; uint32_t data[32];
struct arraylen_TariffDescrType_TariffDescription arraylen; struct arraylen_tariffDescriptionType arraylen;
}; };
@ -688,7 +698,7 @@ struct TariffEntriesType
struct TariffDescrType struct TariffDescrType
{ {
enum tariffIDType TariffID; enum tariffIDType TariffID;
struct TariffDescrType_TariffDescription TariffDescription; struct tariffDescriptionType TariffDescription;
struct TariffEntriesType TariffEntries; struct TariffEntriesType TariffEntries;
struct selection_TariffDescrType isused; struct selection_TariffDescrType isused;
@ -703,22 +713,24 @@ struct arraylen_TariffTableType
struct TariffTableType struct TariffTableType
{ {
struct TariffTableType_Currency Currency; struct currencyType Currency;
struct TariffDescrType Tariff[6]; struct TariffDescrType Tariff[6];
struct arraylen_TariffTableType arraylen; struct arraylen_TariffTableType arraylen;
}; };
struct PowerDiscoveryResType struct ChargeParameterDiscoveryResType
{ {
enum responseCode_PowerDiscoveryType ResponseCode; enum responseCode_ChargeParameterDiscoveryType ResponseCode;
struct EVSEStatusType EVSEStatus; struct EVSEStatusType EVSEStatus;
struct FloatingValueType EVSEVoltage; struct FloatingValueType EVSEMaxVoltage;
struct FloatingValueType EVSEIMax; struct FloatingValueType EVSEMinVoltage;
struct FloatingValueType EVSEMaxCurrent;
struct FloatingValueType EVSEMinCurrent;
int16_t EVSEMaxPhases; int16_t EVSEMaxPhases;
struct PowerDiscoveryResType_EnergyProvider EnergyProvider; struct energyProviderType EnergyProvider;
struct TariffTableType TariffTable; struct TariffTableType TariffTable;
struct selection_PowerDiscoveryResType isused; struct selection_ChargeParameterDiscoveryResType isused;
}; };
@ -757,6 +769,7 @@ struct PowerDeliveryReqType
struct PowerDeliveryResType struct PowerDeliveryResType
{ {
enum responseCode_PowerDeliveryType ResponseCode; enum responseCode_PowerDeliveryType ResponseCode;
struct EVSEStatusType EVSEStatus;
}; };
@ -769,20 +782,6 @@ struct MeteringStatusReqType
}; };
struct arraylen_MeteringStatusResType_EVSEID
{
size_t data;
};
struct MeteringStatusResType_EVSEID
{
uint8_t data[32];
struct arraylen_MeteringStatusResType_EVSEID arraylen;
};
struct selection_MeteringStatusResType struct selection_MeteringStatusResType
{ {
unsigned int PCurrent:1; unsigned int PCurrent:1;
@ -791,17 +790,17 @@ struct selection_MeteringStatusResType
}; };
struct arraylen_MeterInfoType_MeterID struct arraylen_meterIDType
{ {
size_t data; size_t data;
}; };
struct MeterInfoType_MeterID struct meterIDType
{ {
uint32_t data[32]; uint32_t data[32];
struct arraylen_MeterInfoType_MeterID arraylen; struct arraylen_meterIDType arraylen;
}; };
@ -817,7 +816,7 @@ struct selection_MeterInfoType
struct MeterInfoType struct MeterInfoType
{ {
struct MeterInfoType_MeterID MeterID; struct meterIDType MeterID;
struct FloatingValueType MeterReading; struct FloatingValueType MeterReading;
int16_t MeterStatus; int16_t MeterStatus;
int32_t TMeter; int32_t TMeter;
@ -828,7 +827,7 @@ struct MeterInfoType
struct MeteringStatusResType struct MeteringStatusResType
{ {
enum responseCode_MeteringStatusType ResponseCode; enum responseCode_MeteringStatusType ResponseCode;
struct MeteringStatusResType_EVSEID EVSEID; struct evseIDType EVSEID;
struct EVSEStatusType EVSEStatus; struct EVSEStatusType EVSEStatus;
int32_t TCurrent; int32_t TCurrent;
struct FloatingValueType EVSEMaxPower; struct FloatingValueType EVSEMaxPower;
@ -838,20 +837,6 @@ struct MeteringStatusResType
}; };
struct arraylen_MeteringReceiptReqType_PEVID
{
size_t data;
};
struct MeteringReceiptReqType_PEVID
{
uint32_t data[32];
struct arraylen_MeteringReceiptReqType_PEVID arraylen;
};
struct selection_MeteringReceiptReqType struct selection_MeteringReceiptReqType
{ {
unsigned int PEVID:1; unsigned int PEVID:1;
@ -862,7 +847,7 @@ struct selection_MeteringReceiptReqType
struct MeteringReceiptReqType struct MeteringReceiptReqType
{ {
struct MeteringReceiptReqType_PEVID PEVID; struct pevIDType PEVID;
struct PEVStatusType PEVStatus; struct PEVStatusType PEVStatus;
int32_t TCurrent; int32_t TCurrent;
enum tariffIDType Tariff; enum tariffIDType Tariff;
@ -876,6 +861,93 @@ struct MeteringReceiptResType
enum responseCode_MeteringReceiptType ResponseCode; enum responseCode_MeteringReceiptType ResponseCode;
};
struct CableCheckReqType
{
struct PEVStatusType PEVStatus;
};
struct CableCheckResType
{
enum responseCode_CableCheckType ResponseCode;
struct EVSEStatusType EVSEStatus;
};
struct PreChargeReqType
{
struct PEVStatusType PEVStatus;
struct FloatingValueType PEVTargetVoltage;
struct FloatingValueType PEVDemandCurrent;
struct FloatingValueType VoltageDifferential;
};
struct PreChargeResType
{
enum responseCode_PreChargeType ResponseCode;
struct EVSEStatusType EVSEStatus;
struct FloatingValueType EVSEPresentVoltage;
};
struct CurrentDemandReqType
{
struct PEVStatusType PEVStatus;
struct FloatingValueType PEVTargetVoltage;
struct FloatingValueType PEVDemandCurrent;
struct FloatingValueType CurrentDifferential;
struct FloatingValueType VoltageDifferential;
};
struct CurrentDemandResType
{
enum responseCode_CurrentDemandType ResponseCode;
struct EVSEStatusType EVSEStatus;
struct FloatingValueType EVSEPresentVoltage;
struct FloatingValueType EVSEPresentCurrent;
};
struct WeldingDetectionReqType
{
struct PEVStatusType PEVStatus;
};
struct WeldingDetectionResType
{
enum responseCode_WeldingDetectionType ResponseCode;
struct EVSEStatusType EVSEStatus;
struct FloatingValueType EVSEPresentVoltage;
};
struct TerminateChargingReqType
{
struct PEVStatusType PEVStatus;
};
struct TerminateChargingResType
{
enum responseCode_TerminateChargingType ResponseCode;
struct EVSEStatusType EVSEStatus;
struct FloatingValueType EVSEPresentVoltage;
}; };
struct BodyType struct BodyType
@ -888,8 +960,8 @@ struct BodyType
struct ServicePaymentSelectionResType* ServicePaymentSelectionRes; struct ServicePaymentSelectionResType* ServicePaymentSelectionRes;
struct PaymentDetailsReqType* PaymentDetailsReq; struct PaymentDetailsReqType* PaymentDetailsReq;
struct PaymentDetailsResType* PaymentDetailsRes; struct PaymentDetailsResType* PaymentDetailsRes;
struct PowerDiscoveryReqType* PowerDiscoveryReq; struct ChargeParameterDiscoveryReqType* ChargeParameterDiscoveryReq;
struct PowerDiscoveryResType* PowerDiscoveryRes; struct ChargeParameterDiscoveryResType* ChargeParameterDiscoveryRes;
struct LineLockReqType* LineLockReq; struct LineLockReqType* LineLockReq;
struct LineLockResType* LineLockRes; struct LineLockResType* LineLockRes;
struct PowerDeliveryReqType* PowerDeliveryReq; struct PowerDeliveryReqType* PowerDeliveryReq;
@ -898,6 +970,16 @@ struct BodyType
struct MeteringStatusResType* MeteringStatusRes; struct MeteringStatusResType* MeteringStatusRes;
struct MeteringReceiptReqType* MeteringReceiptReq; struct MeteringReceiptReqType* MeteringReceiptReq;
struct MeteringReceiptResType* MeteringReceiptRes; struct MeteringReceiptResType* MeteringReceiptRes;
struct CableCheckReqType* CableCheckReq;
struct CableCheckResType* CableCheckRes;
struct PreChargeReqType* PreChargeReq;
struct PreChargeResType* PreChargeRes;
struct CurrentDemandReqType* CurrentDemandReq;
struct CurrentDemandResType* CurrentDemandRes;
struct WeldingDetectionReqType* WeldingDetectionReq;
struct WeldingDetectionResType* WeldingDetectionRes;
struct TerminateChargingReqType* TerminateChargingReq;
struct TerminateChargingResType* TerminateChargingRes;
struct selection_BodyType isused; struct selection_BodyType isused;
}; };

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.2
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -3,7 +3,7 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -22,7 +22,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.3.2
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/
@ -47,7 +47,7 @@ int selectedServicePayment(struct ServicePaymentSelectionReqType* param, struct
int paymentDetails(struct PaymentDetailsReqType* param, struct PaymentDetailsResType* result); int paymentDetails(struct PaymentDetailsReqType* param, struct PaymentDetailsResType* result);
int powerDiscovery(struct PowerDiscoveryReqType* param, struct PowerDiscoveryResType* result); int chargeParameterDiscovery(struct ChargeParameterDiscoveryReqType* param, struct ChargeParameterDiscoveryResType* result);
int lineLock(struct LineLockReqType* param, struct LineLockResType* result); int lineLock(struct LineLockReqType* param, struct LineLockResType* result);
@ -57,6 +57,16 @@ int meteringStatus(struct MeteringStatusReqType* param, struct MeteringStatusRes
int meteringReceipt(struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result); int meteringReceipt(struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result);
int cableCheck(struct CableCheckReqType* param, struct CableCheckResType* result);
int preCharge(struct PreChargeReqType* param, struct PreChargeResType* result);
int currentDemand(struct CurrentDemandReqType* param, struct CurrentDemandResType* result);
int weldingDetection(struct WeldingDetectionReqType* param, struct WeldingDetectionResType* result);
int terminateCharging(struct TerminateChargingReqType* param, struct TerminateChargingResType* result);

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -19,7 +19,7 @@
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
* <p>Switch for sample programs: EXI codec only or for entire V2G service</p> * <p>Switch for sample programs: EXI codec only or for entire V2G service</p>
@ -33,7 +33,8 @@
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
/* EXI codec only */ /* EXI codec only */
/* return main_codec(argc, argv); */ /* return main_codec(argc, argv);*/
/* V2G client / service example scenario */ /* V2G client / service example scenario */
return main_service(argc, argv); return main_service(argc, argv);

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -19,7 +19,7 @@
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
* *

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Daniel.Peintner.EXT@siemens.com * @author Daniel.Peintner.EXT@siemens.com
* @version 0.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
* <p>Sample program to illustrate how to read an EXI stream and * <p>Sample program to illustrate how to read an EXI stream and

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/
@ -37,10 +37,309 @@
#define MAX_STRING_SIZE 256 #define MAX_STRING_SIZE 256
#define MAX_STREAM_SIZE 60 #define MAX_STREAM_SIZE 60
static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/
static uint32_t string_array[MAX_STRING_SIZE]; /* define MAX_STRING_SIZE before*/
static void printEVSEStatus(struct EVSEStatusType* status);
static void printErrorMessage(struct EXIService* service); static void printErrorMessage(struct EXIService* service);
int main_service(int argc, char *argv[]) static int ac_charging()
{ {
/* define in and out byte stream */
uint8_t inStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
uint8_t outStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
/* define offset variable for transport header data */
uint16_t transportHeaderOffset;
/* service data structure */
struct EXIService service;
struct HeaderType v2gHeader;
struct SessionSetupReqType sessionSetup;
struct SessionSetupResType resultSessionSetup;
struct ChargeParameterDiscoveryReqType powerDiscovery;
struct ChargeParameterDiscoveryResType resultPowerDiscovery;
struct LineLockReqType lineLock;
struct LineLockResType resultLineLock;
struct PowerDeliveryReqType powerDelivery;
struct PowerDeliveryResType resultPowerDelivery;
struct MeteringStatusResType resultMeteringStatus;
struct MeteringReceiptReqType meteringReceipt;
struct MeteringReceiptResType resultMeteringReceipt;
struct FloatingValueType float_type; /* test float type*/
/* BINARY memory setup */
bytes_t bytes = { MAX_BYTE_SIZE, byte_array, 0 };
/* STRING memory setup */
string_ucs_t string = { MAX_STRING_SIZE, string_array, 0 };
/* setup offset for DoIP header (otherwise set
* transportHeaderOffset=0 if no transfer protocol is used)*/
transportHeaderOffset = DOIP_HEADER_LENGTH;
/*******************
* Init V2G Client *
*******************/
init_v2gServiceClient(&service,bytes,string,inStream,MAX_STREAM_SIZE, outStream, MAX_STREAM_SIZE, transportHeaderOffset);
/*******************************
* Setup data for sessionSetup *
*******************************/
/* setup header information */
v2gHeader.SessionInformation.SessionID.arraylen.data = 0; /* no session id in the initial message -> array length = 0*/
v2gHeader.SessionInformation.ProtocolVersion.data[0]='1'; /* assign protocol version number*/
v2gHeader.SessionInformation.ProtocolVersion.arraylen.data=1; /* array string length =1 of protocol version */
v2gHeader.SessionInformation.isused.ProtocolVersion = 1; /* important: optional elements have to be set used (=1) or not used (=0) */
v2gHeader.SessionInformation.isused.ServiceSessionID = 0; /* service session is not used */
v2gHeader.isused.Notification=0; /* no notification */
/* setup sessionSetup parameter */
sessionSetup.isused.PEVID=1; /* PEVID is transported */
sessionSetup.PEVID.arraylen.data=1;
sessionSetup.PEVID.data[0]=10;
sessionSetup.PEVStatus.ChargerStandby=0; /* charger standby = true */
sessionSetup.PEVStatus.ConnectorLocked=0; /* connector locked = false */
sessionSetup.PEVStatus.ReadyToCharge=0; /* ReadyToCharge = false */
printf("PEV: call EVSE sessionSetup\n");
/*********************
* Call sessionSetup *
*********************/
if(call_sessionSetup(&service,&v2gHeader,&sessionSetup,&resultSessionSetup))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE sessionSetup */
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d (OK)\n",resultSessionSetup.ResponseCode);
printf("\tEVSEID=%d\n", resultSessionSetup.EVSEID.data[0]);
printEVSEStatus(&resultSessionSetup.EVSEStatus);
printf("\tTCurrent=%d\n",resultSessionSetup.TCurrent);
}
/*******************************************
* Setup data for chargeParameterDiscovery *
*******************************************/
powerDiscovery.PEVStatus.ChargerStandby = 1;
powerDiscovery.PEVStatus.ConnectorLocked = 0;
powerDiscovery.PEVStatus.ReadyToCharge=0;
powerDiscovery.ChargingMode = AC_charging_chargingModeType;
powerDiscovery.EoC = 12345678;
float_type.Multiplier = 0;
float_type.Unit = J_unitSymbolType;
float_type.Value = 100;
powerDiscovery.EAmount = float_type;
powerDiscovery.PEVMaxPhases = 3;
float_type.Unit = W_unitSymbolType;
float_type.Value = 600;
powerDiscovery.PEVMaxPower = float_type;
float_type.Unit = V_unitSymbolType;
float_type.Value = 1000;
powerDiscovery.PEVMaxVoltage = float_type;
float_type.Value = 200;
powerDiscovery.PEVMinVoltage = float_type;
/* only required for DC */
float_type.Unit = A_unitSymbolType;
float_type.Value = 200;
powerDiscovery.PEVMaxCurrent = float_type;
powerDiscovery.PEVMinCurrent = float_type;
/*********************************
* Call chargeParameterDiscovery *
*********************************/
printf("\nPEV: call EVSE chargeParameterDiscovery\n");
if(call_chargeParameterDiscovery(&service,&v2gHeader,&powerDiscovery,&resultPowerDiscovery))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE sessionSetup*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultPowerDiscovery.ResponseCode);
printEVSEStatus(&resultPowerDiscovery.EVSEStatus);
printf("\tEVSEMaxVoltage=%d\n",resultPowerDiscovery.EVSEMaxVoltage.Value);
/*printf("\tEVSEMaxCurrent=%d\n",resultPowerDiscovery.EVSEMaxCurrent.Value);*/
printf("\tEVSEMaxPhases=%d\n",resultPowerDiscovery.EVSEMaxPhases);
/*printf("\tEnergyProvider=%d\n",resultPowerDiscovery.EnergyProvider.data[0]);*/
}
/*********************************
* Setup data for lineLock *
*********************************/
lineLock.PEVStatus.ChargerStandby = 1;
lineLock.PEVStatus.ConnectorLocked = 1;
lineLock.PEVStatus.ReadyToCharge = 1;
lineLock.ReqLockStatus = 1;
/***********************
* Call lineLock *
***********************/
printf("\nPEV: call EVSE lineLock\n");
if(call_lineLock(&service,&v2gHeader,&lineLock,&resultLineLock))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE sessionSetup*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultLineLock.ResponseCode);
printEVSEStatus(&resultLineLock.EVSEStatus);
}
/*********************************
* Setup data for powerDelivery *
*********************************/
powerDelivery.PEVStatus = lineLock.PEVStatus; /* PEV status, taken from lineLock */
/*powerDelivery.isused.Tariff = 0;
powerDelivery.Tariff = Green_charge_tariffIDType;*/
/***********************
* Call powerDelivery *
***********************/
printf("\nPEV: call EVSE powerDelivery\n");
if(call_powerDelivery(&service,&v2gHeader,&powerDelivery,&resultPowerDelivery))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE sessionSetup*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultPowerDelivery.ResponseCode);
}
/********************
* Call meterStatus *
********************/
printf("\nPEV: call EVSE meterStatus\n");
if(call_meteringStatus(&service,&v2gHeader,&resultMeteringStatus))
{
printErrorMessage(&service);
}
else
{
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultPowerDiscovery.ResponseCode);
printEVSEStatus(&resultPowerDiscovery.EVSEStatus);
printf("\tEVSEID=%d\n",resultMeteringStatus.EVSEID.data[0]);
printf("\tEVSEMaxPower=%d\n",resultMeteringStatus.EVSEMaxPower.Value);
printf("\tisused.MeterInfo=%d\n", resultMeteringStatus.isused.MeterInfo);
printf("\t\tMeterInfo.MeterID=%d\n", resultMeteringStatus.MeterInfo.MeterID.data[0]);
printf("\t\tMeterInfo.MeterReading.Value=%d\n", resultMeteringStatus.MeterInfo.MeterReading.Value);
printf("\t\tMeterInfo.MeterStatus=%d\n", resultMeteringStatus.MeterInfo.MeterStatus);
/* printf("\t\tMeterInfo.TMeter=%d\n", resultMeteringStatus.MeterInfo.TMeter);*/
/* printf("\t\tisused.PCurrent=%d\n", resultMeteringStatus.isused.PCurrent);
printf("\t\tPCurrent=%d\n", resultMeteringStatus.PCurrent.Value);*/
}
/*********************************
* Setup data for meteringReceipt *
*********************************/
meteringReceipt.PEVID.arraylen.data=1;
meteringReceipt.PEVID.data[0]=10;
meteringReceipt.isused.PEVID=1;
meteringReceipt.PEVStatus = powerDelivery.PEVStatus; /* PEV status, taken from sessionSetup */
meteringReceipt.TCurrent = 12345;
meteringReceipt.isused.TCurrent = 1;
meteringReceipt.Tariff = Green_charge_tariffIDType;
meteringReceipt.MeterInfo.MeterStatus = 2;
meteringReceipt.MeterInfo.isused.MeterStatus = 1;
meteringReceipt.MeterInfo.MeterID.arraylen.data=1;
meteringReceipt.MeterInfo.MeterID.data[0]=3;
meteringReceipt.MeterInfo.isused.MeterID = 1;
meteringReceipt.MeterInfo.MeterReading.Multiplier = 0;
meteringReceipt.MeterInfo.MeterReading.Unit = A_unitSymbolType;
meteringReceipt.MeterInfo.MeterReading.Value = 500;
meteringReceipt.MeterInfo.isused.MeterReading = 1;
meteringReceipt.MeterInfo.TMeter =123456789;
meteringReceipt.MeterInfo.isused.TMeter = 1;
/***********************
* Call meteringReceipt *
***********************/
printf("\nPEV: call EVSE meteringReceipt\n");
if(call_meteringReceipt(&service,&v2gHeader,&meteringReceipt,&resultMeteringReceipt))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE sessionSetup*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultMeteringReceipt.ResponseCode);
}
return 0;
}
static int dc_charging()
{
static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/ static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/
static uint32_t string_array[MAX_STRING_SIZE]; /* define MAX_STRING_SIZE before*/ static uint32_t string_array[MAX_STRING_SIZE]; /* define MAX_STRING_SIZE before*/
@ -58,11 +357,27 @@ int main_service(int argc, char *argv[])
struct HeaderType v2gHeader; struct HeaderType v2gHeader;
struct SessionSetupReqType sessionSetup; struct SessionSetupReqType sessionSetup;
struct SessionSetupResType resultSessionSetup; struct SessionSetupResType resultSessionSetup;
/*struct PowerDiscoveryReqType powerDiscovery; struct ChargeParameterDiscoveryReqType powerDiscovery;
struct PowerDiscoveryResType resultPowerDiscovery; */ struct ChargeParameterDiscoveryResType resultPowerDiscovery;
struct CableCheckReqType cableCheck;
struct CableCheckResType resultCableCheck;
struct PowerDeliveryReqType powerDelivery;
struct PowerDeliveryResType resultPowerDelivery;
struct PreChargeReqType preCharge;
struct PreChargeResType resultPreCharge;
struct CurrentDemandReqType currentDemand;
struct CurrentDemandResType resultCurrentDemand;
struct WeldingDetectionReqType weldingDetection;
struct WeldingDetectionResType resultWeldingDetection;
struct TerminateChargingReqType terminateCharging;
struct TerminateChargingResType resultTerminateCharging;
struct FloatingValueType float_type; /* test float type*/
/* BINARY memory setup */ /* BINARY memory setup */
bytes_t bytes = { MAX_BYTE_SIZE, byte_array, 0 }; bytes_t bytes = { MAX_BYTE_SIZE, byte_array, 0 };
@ -74,8 +389,6 @@ int main_service(int argc, char *argv[])
transportHeaderOffset = DOIP_HEADER_LENGTH; transportHeaderOffset = DOIP_HEADER_LENGTH;
printf("+++Start V2G Client / Service Example+++\n\n");
/******************* /*******************
* Init V2G Client * * Init V2G Client *
*******************/ *******************/
@ -90,15 +403,19 @@ int main_service(int argc, char *argv[])
v2gHeader.SessionInformation.SessionID.arraylen.data = 0; /* no session id in the initial message -> array length = 0*/ v2gHeader.SessionInformation.SessionID.arraylen.data = 0; /* no session id in the initial message -> array length = 0*/
v2gHeader.SessionInformation.ProtocolVersion.data[0]='1'; /* assign protocol version number*/ v2gHeader.SessionInformation.ProtocolVersion.data[0]='1'; /* assign protocol version number*/
v2gHeader.SessionInformation.ProtocolVersion.arraylen.data=1; /* array string length =1 of protocol version */ v2gHeader.SessionInformation.ProtocolVersion.arraylen.data=1; /* array string length =1 of protocol version */
v2gHeader.SessionInformation.isused.ProtocolVersion = 1; /* important: signalize, protocol version is used */ v2gHeader.SessionInformation.isused.ProtocolVersion = 1; /* important: optional elements have to be set used (=1) or not used (=0) */
v2gHeader.SessionInformation.isused.ServiceSessionID = 0; /* service session is not used */
v2gHeader.isused.Notification=0; /* no notification */ v2gHeader.isused.Notification=0; /* no notification */
/* setup sessionSetup parameter */ /* setup sessionSetup parameter */
sessionSetup.isused.PEVID=0; /* no PEVID is transported */ sessionSetup.isused.PEVID=1; /* no PEVID is transported */
sessionSetup.PEVStatus.ChargerStandby=1; /* charger standby = true */ sessionSetup.PEVID.arraylen.data=1;
sessionSetup.PEVID.data[0]=10;
sessionSetup.PEVStatus.ChargerStandby=0; /* charger standby = true */
sessionSetup.PEVStatus.ConnectorLocked=0; /* connector locked = false */ sessionSetup.PEVStatus.ConnectorLocked=0; /* connector locked = false */
printf("PEV: call EVSE sessionSetup\n"); printf("PEV: call EVSE sessionSetup\n");
/********************* /*********************
@ -110,24 +427,273 @@ int main_service(int argc, char *argv[])
} }
else else
{ {
/* show result of the answer message of EVSE sessionSetup*/ /* show result of the answer message of EVSE sessionSetup */
printf("PEV: received response message from EVSE\n"); printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultSessionSetup.ResponseCode); printf("\tResponseCode=%d\n",resultSessionSetup.ResponseCode);
printf("\tEVSEID=%d\n", resultSessionSetup.EVSEID.data[0]); printf("\tEVSEID=%d\n", resultSessionSetup.EVSEID.data[0]);
printf("\tEVSEStatus:\n\t\tConnectorLocked=%d\n",resultSessionSetup.EVSEStatus.ConnectorLocked); printEVSEStatus(&resultSessionSetup.EVSEStatus);
printf("\t\tEVSEStandby=%d\n",resultSessionSetup.EVSEStatus.EVSEStandby);
printf("\t\tFatalError=%d\n",resultSessionSetup.EVSEStatus.FatalError);
printf("\t\tPowerSwitchClosed=%d\n",resultSessionSetup.EVSEStatus.PowerSwitchClosed);
printf("\t\tRCD=%d\n",resultSessionSetup.EVSEStatus.RCD);
printf("\t\tShutDownTime=%d\n",resultSessionSetup.EVSEStatus.ShutDownTime);
printf("\tTCurrent=%d\n",resultSessionSetup.TCurrent); printf("\tTCurrent=%d\n",resultSessionSetup.TCurrent);
} }
printf("\n+++Terminate V2G Client / Service Example+++");
/*******************************************
* Setup data for chargeParameterDiscovery *
*******************************************/
powerDiscovery.PEVStatus = sessionSetup.PEVStatus; /* PEV status, taken from sessionSetup */
powerDiscovery.EoC = 4321;
powerDiscovery.ChargingMode = DC_charging_chargingModeType;
float_type.Multiplier = 2;
float_type.Unit = A_unitSymbolType;
float_type.Value = 700;
float_type.Multiplier = 0;
float_type.Unit = J_unitSymbolType;
float_type.Value = 100;
powerDiscovery.EAmount = float_type;
powerDiscovery.PEVMaxPhases = 3;
float_type.Unit = W_unitSymbolType;
float_type.Value = 600;
powerDiscovery.PEVMaxPower = float_type;
float_type.Unit = V_unitSymbolType;
float_type.Value = 1000;
powerDiscovery.PEVMaxVoltage = float_type;
float_type.Value = 200;
powerDiscovery.PEVMinVoltage = float_type;
float_type.Unit = A_unitSymbolType;
float_type.Value = 800;
powerDiscovery.PEVMaxCurrent = float_type;
float_type.Value = 150;
powerDiscovery.PEVMinCurrent = float_type;
/*********************************
* Call chargeParameterDiscovery *
*********************************/
printf("\nPEV: call EVSE chargeParameterDiscovery\n");
if(call_chargeParameterDiscovery(&service,&v2gHeader,&powerDiscovery,&resultPowerDiscovery))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE sessionSetup*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultPowerDiscovery.ResponseCode);
printEVSEStatus(&resultPowerDiscovery.EVSEStatus);
printf("\tEVSEMaxVoltage=%d\n",resultPowerDiscovery.EVSEMaxVoltage.Value);
printf("\tEVSEMaxCurrent=%d\n",resultPowerDiscovery.EVSEMaxCurrent.Value);
printf("\tEVSEMinCurrent=%d\n",resultPowerDiscovery.EVSEMinCurrent.Value);
printf("\tEVSEMaxPhases=%d\n",resultPowerDiscovery.EVSEMaxPhases);
/*printf("\tEnergyProvider=%d\n",resultPowerDiscovery.EnergyProvider.data[0]);*/
}
/***********************
* Call cableCheck *
***********************/
printf("\nPEV: call EVSE cableCheck\n");
cableCheck.PEVStatus.ChargerStandby = 1;
cableCheck.PEVStatus.ConnectorLocked = 1;
cableCheck.PEVStatus.ReadyToCharge = 1;
if(call_cableCheck(&service,&v2gHeader,&cableCheck,&resultCableCheck))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE powerDiscovery*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultCableCheck.ResponseCode);
printEVSEStatus(&resultCableCheck.EVSEStatus);
}
/*********************************
* Setup data for powerDelivery *
*********************************/
powerDelivery.PEVStatus = cableCheck.PEVStatus; /* PEV status, taken from sessionSetup */
powerDelivery.isused.Tariff = 0;
/*powerDelivery.Tariff = Green_charge_tariffIDType;*/
/***********************
* Call powerDelivery *
***********************/
printf("\nPEV: call EVSE powerDelivery\n");
if(call_powerDelivery(&service,&v2gHeader,&powerDelivery,&resultPowerDelivery))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE sessionSetup*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultPowerDelivery.ResponseCode);
printEVSEStatus(&resultPowerDelivery.EVSEStatus);
}
/***********************
* Call preCharge *
***********************/
printf("\nPEV: call EVSE preCharge\n");
preCharge.PEVStatus = cableCheck.PEVStatus;
float_type.Unit = A_unitSymbolType;
float_type.Value = 400;
preCharge.PEVDemandCurrent = float_type;
float_type.Unit = V_unitSymbolType;
float_type.Value = 700;
preCharge.PEVTargetVoltage = float_type;
float_type.Value = 300;
preCharge.VoltageDifferential = float_type;
if(call_preCharge(&service,&v2gHeader,&preCharge,&resultPreCharge))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE powerDiscovery*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultPreCharge.ResponseCode);
printEVSEStatus(&resultPreCharge.EVSEStatus);
printf("\tEVSEPresentVoltage=%d\n",resultPreCharge.EVSEPresentVoltage.Value);
}
/***********************
* Call currentDemand *
***********************/
printf("\nPEV: call EVSE currentDemand\n");
currentDemand.PEVStatus = powerDelivery.PEVStatus;
float_type.Unit = A_unitSymbolType;
float_type.Value = 44;
currentDemand.CurrentDifferential = float_type;
float_type.Value = 40;
currentDemand.PEVDemandCurrent = float_type;
float_type.Unit = V_unitSymbolType;
float_type.Value = 300;
currentDemand.VoltageDifferential = float_type;
float_type.Value = 700;
preCharge.PEVTargetVoltage = float_type;
currentDemand.PEVTargetVoltage = float_type;
if(call_currentDemand(&service,&v2gHeader,&currentDemand,&resultCurrentDemand))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE powerDiscovery*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultCurrentDemand.ResponseCode);
printEVSEStatus(&resultCurrentDemand.EVSEStatus);
printf("\tEVSEPresentVoltage.Value=%d\n",resultCurrentDemand.EVSEPresentVoltage.Value);
printf("\tEVSEPresentCurrent.Value=%d\n",resultCurrentDemand.EVSEPresentCurrent.Value);
}
/***********************
* Call weldingDetection *
***********************/
printf("\nPEV: call EVSE weldingDetection\n");
weldingDetection.PEVStatus = powerDelivery.PEVStatus;
if(call_weldingDetection(&service,&v2gHeader,&weldingDetection,&resultWeldingDetection))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE powerDiscovery*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultWeldingDetection.ResponseCode);
printEVSEStatus(&resultWeldingDetection.EVSEStatus);
printf("\tEVSEPresentVoltage=%d\n",resultWeldingDetection.EVSEPresentVoltage.Value);
}
/*************************
* Call terminateCharging*
*************************/
printf("\nPEV: call EVSE terminateCharging\n");
terminateCharging.PEVStatus = sessionSetup.PEVStatus;
if(call_terminateCharging(&service,&v2gHeader,&terminateCharging,&resultTerminateCharging))
{
printErrorMessage(&service);
}
else
{
/* show result of the answer message of EVSE powerDiscovery*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultTerminateCharging.ResponseCode);
printEVSEStatus(&resultWeldingDetection.EVSEStatus);
printf("\tEVSEPresentVoltage.Value=%d\n",resultTerminateCharging.EVSEPresentVoltage.Value);
}
return 0; return 0;
} }
int main_service()
{
printf("+++ Start V2G client / service example for AC charging +++\n\n");
ac_charging();
printf("\n+++Terminate V2G Client / Service example for AC charging +++\n");
printf("Please press enter for DC charging!\n");
fflush(stdout);
getchar();
printf("+++ Start V2G client / service example for DC charging +++\n\n");
dc_charging();
printf("\n+++Terminate V2G client / service example for DC charging +++");
return 0;
}
static void printEVSEStatus(struct EVSEStatusType* status)
{
printf("\tEVSEStatus:\n\t\tConnectorLocked=%d\n",status->ConnectorLocked);
printf("\t\tEVSEStandby=%d\n",status->EVSEStandby);
printf("\t\tFatalError=%d\n",status->FatalError);
printf("\t\tPowerSwitchClosed=%d\n",status->PowerSwitchClosed);
printf("\t\tRCD=%d\n",status->RCD);
printf("\t\tChargerStandby=%d\n",status->ChargerStandby);
printf("\t\tEVSEMalfunction=%d\n",status->EVSEMalfunction);
printf("\t\tShutDownTime=%d\n",status->ShutDownTime);
}
static void printErrorMessage(struct EXIService* service) static void printErrorMessage(struct EXIService* service)
{ {
if(service->errorCode==EXI_NON_VALID_MESSAGE) if(service->errorCode==EXI_NON_VALID_MESSAGE)

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -18,7 +18,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/
@ -31,26 +31,27 @@
int sessionSetup(struct SessionSetupReqType* param, struct SessionSetupResType* result) int sessionSetup(struct SessionSetupReqType* param, struct SessionSetupResType* result)
{ {
printf("EVSE: sessionSetup called\n" ); printf("EVSE: sessionSetup called\n" );
printf("\tReceived data:\n"); printf("\tReceived data:\n");
printf("\t\t PEVStatus ChargerStandby=%d\n",param->PEVStatus.ChargerStandby); printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t PEVStatus ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked); printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
/* Prepare data for PEV */ /* Prepare data for PEV */
result->ResponseCode = OK_SessionSetup_responseCode_SessionSetupType; result->ResponseCode = OK_SessionSetup_responseCode_SessionSetupType;
result->EVSEID.data[0]='E'; result->EVSEID.data[0]=1;
result->EVSEID.arraylen.data=1; result->EVSEID.arraylen.data=1;
result->EVSEStatus.ConnectorLocked=0; result->EVSEStatus.ConnectorLocked=0;
result->EVSEStatus.EVSEStandby=1; result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.FatalError=0; result->EVSEStatus.FatalError=0;
result->EVSEStatus.PowerSwitchClosed=1; result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1; result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345678L; result->EVSEStatus.ShutDownTime=12345678;
result->TCurrent=12345678L; result->EVSEStatus.ChargerStandby = 1;
result->EVSEStatus.EVSEMalfunction = 0;
result->TCurrent=12345678;
return 0; return 0;
} }
int serviceDiscovery(struct ServiceDiscoveryReqType* param, struct ServiceDiscoveryResType* result) int serviceDiscovery(struct ServiceDiscoveryReqType* param, struct ServiceDiscoveryResType* result)
@ -68,28 +69,309 @@ int paymentDetails(struct PaymentDetailsReqType* param, struct PaymentDetailsRes
return 0; return 0;
} }
int powerDiscovery(struct PowerDiscoveryReqType* param, struct PowerDiscoveryResType* result) int chargeParameterDiscovery(struct ChargeParameterDiscoveryReqType* param, struct ChargeParameterDiscoveryResType* result)
{ {
printf("EVSE: chargeParameterDiscovery called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
if(param->ChargingMode==AC_charging_chargingModeType)
printf("\t\t ChargingMode=AC_charging\n");
else
printf("\t\t ChargingMode=DC_charging\n");
printf("\t\t Eoc=%d\n", param->EoC);
printf("\t\t EAmount=%d\n", param->EAmount.Value);
printf("\t\t PEVMaxPower=%d\n", param->PEVMaxPower.Value);
printf("\t\t PEVMaxPhases=%d\n", param->PEVMaxPhases);
printf("\t\t PEVMaxVoltage=%d\n", param->PEVMaxVoltage.Value);
printf("\t\t PEVMinVoltage=%d\n", param->PEVMinVoltage.Value);
if(param->ChargingMode==DC_charging_chargingModeType)
{
printf("\t\t PEVMaxCurrent=%d\n", param->PEVMaxCurrent.Value);
printf("\t\t PEVMinCurrent=%d\n", param->PEVMinCurrent.Value);
}
result->ResponseCode = 0;
result->EVSEStatus.ConnectorLocked=0;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.PowerSwitchClosed=0;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345;
result->EVSEStatus.ChargerStandby = 1;
result->EVSEStatus.EVSEMalfunction = 0;
result->EVSEMaxVoltage.Multiplier = 0;
result->EVSEMaxVoltage.Unit = V_unitSymbolType;
result->EVSEMaxVoltage.Value = 950;
result->EVSEMaxPhases = 3;
/* only for DC charging */
result->EVSEMaxCurrent.Multiplier = 0;
result->EVSEMaxCurrent.Unit = A_unitSymbolType;
result->EVSEMaxCurrent.Value = 10;
result->EVSEMinCurrent.Multiplier = 0;
result->EVSEMinCurrent.Unit = A_unitSymbolType;
result->EVSEMinCurrent.Value = 2;
result->isused.EnergyProvider=0;
/*result->EnergyProvider.arraylen.data=1;
result->EnergyProvider.data[0]=11; */
result->isused.TariffTable = 0;
return 0; return 0;
} }
int lineLock(struct LineLockReqType* param, struct LineLockResType* result) int lineLock(struct LineLockReqType* param, struct LineLockResType* result)
{ {
printf("EVSE: lineLock called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
printf("\t\t ReqLockStatus=%d\n", param->ReqLockStatus);
result->ResponseCode = 0;
result->EVSEStatus.ConnectorLocked=0;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345;
result->EVSEStatus.ChargerStandby = 1;
result->EVSEStatus.EVSEMalfunction = 0;
return 0; return 0;
} }
int powerDelivery(struct PowerDeliveryReqType* param, struct PowerDeliveryResType* result) int powerDelivery(struct PowerDeliveryReqType* param, struct PowerDeliveryResType* result)
{ {
printf("EVSE: powerDelivery called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
result->ResponseCode=0;
result->EVSEStatus.ConnectorLocked=0;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345;
result->EVSEStatus.ChargerStandby = 1;
result->EVSEStatus.EVSEMalfunction = 0;
return 0; return 0;
} }
int meteringStatus(struct MeteringStatusReqType* param, struct MeteringStatusResType* result) int meteringStatus(struct MeteringStatusReqType* param, struct MeteringStatusResType* result)
{ {
printf("EVSE: meteringStatus called\n" );
result->ResponseCode=1;
result->EVSEID.data[0]=1;
result->EVSEID.arraylen.data=1;
result->EVSEStatus.ConnectorLocked=1;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345678;
result->EVSEStatus.EVSEMalfunction = 0;
result->EVSEStatus.ChargerStandby = 1;
result->TCurrent=12345678;
result->EVSEMaxPower.Multiplier = 2;
result->EVSEMaxPower.Unit = A_unitSymbolType;
result->EVSEMaxPower.Value = 400;
result->isused.MeterInfo=1;
result->MeterInfo.MeterID.arraylen.data=1;
result->MeterInfo.MeterID.data[0]=2;
result->MeterInfo.MeterReading.Multiplier = 0;
result->MeterInfo.MeterReading.Unit = A_unitSymbolType;
result->MeterInfo.MeterReading.Value = 500;
result->MeterInfo.MeterStatus = 4321;
result->MeterInfo.TMeter =123456789;
result->MeterInfo.isused.MeterID=1;
result->MeterInfo.isused.MeterReading = 1;
result->MeterInfo.isused.MeterStatus=1;
result->MeterInfo.isused.TMeter=1;
result->isused.PCurrent=1;
result->PCurrent.Value=4321;
return 0; return 0;
} }
int meteringReceipt(struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result) int meteringReceipt(struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result)
{ {
printf("EVSE: meteringReceipt called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
printf("\t\t TCurrent=%d\n", param->TCurrent);
printf("\t\t MeterInfo.MeterStatus=%d\n", param->MeterInfo.MeterStatus);
printf("\t\t MeterInfo.MeterID=%d\n", param->MeterInfo.MeterID.data[0]);
printf("\t\t MeterInfo.isused.MeterReading=%d\n", param->MeterInfo.isused.MeterReading);
printf("\t\t MeterReading.Value=%d\n", param->MeterInfo.MeterReading.Value);
printf("\t\t MeterInfo.TMeter=%d\n", param->MeterInfo.TMeter);
if(param->Tariff==Green_charge_tariffIDType)
printf("\t\t Tariff==Green_charge_tariffIDType\n");
result->ResponseCode = 0;
return 0; return 0;
} }
int cableCheck(struct CableCheckReqType* param, struct CableCheckResType* result)
{
printf("EVSE: cableCheck called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
result->EVSEStatus.ConnectorLocked=1;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345678;
result->EVSEStatus.EVSEMalfunction = 0;
result->EVSEStatus.ChargerStandby = 1;
result->ResponseCode = OK_responseCode_CableCheckType;
return 0;
}
int preCharge(struct PreChargeReqType* param, struct PreChargeResType* result)
{
struct FloatingValueType float_type;
float_type.Multiplier = 0;
float_type.Unit = V_unitSymbolType;
printf("EVSE: currentDemand called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
printf("\t\t PEVDemandCurrent=%d\n",param->PEVDemandCurrent.Value);
printf("\t\t PEVTargetVoltage=%d\n", param->PEVTargetVoltage.Value);
result->ResponseCode=OK_responseCode_CurrentDemandType;
result->EVSEStatus.ConnectorLocked=1;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345678;
result->EVSEStatus.ChargerStandby=1;
result->EVSEStatus.EVSEMalfunction=0;
result->EVSEStatus.StopCharging=0;
float_type.Value = 800;
result->EVSEPresentVoltage = float_type;
return 0;
}
int currentDemand(struct CurrentDemandReqType* param, struct CurrentDemandResType* result)
{
struct FloatingValueType float_type;
float_type.Multiplier = 0;
printf("EVSE: currentDemand called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
printf("\t\t PEVDemandCurrent=%d\n",param->PEVDemandCurrent.Value);
printf("\t\t PEVTargetVoltage=%d\n", param->PEVTargetVoltage.Value);
result->EVSEStatus.ConnectorLocked=1;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345678;
result->EVSEStatus.ChargerStandby=1;
result->EVSEStatus.EVSEMalfunction=0;
result->EVSEStatus.StopCharging=0;
result->ResponseCode=OK_responseCode_CurrentDemandType;
float_type.Unit = A_unitSymbolType;
float_type.Value = 40;
result->EVSEPresentCurrent = float_type;
float_type.Unit = V_unitSymbolType;
float_type.Value = 700;
result->EVSEPresentVoltage = float_type;
return 0;
}
int weldingDetection(struct WeldingDetectionReqType* param, struct WeldingDetectionResType* result)
{
struct FloatingValueType float_type;
float_type.Multiplier = 0;
float_type.Unit = V_unitSymbolType;
float_type.Value = 0;
printf("EVSE: weldingDetection called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
result->ResponseCode = OK_responseCode_WeldingDetectionType;
result->EVSEStatus.ConnectorLocked=1;
result->EVSEStatus.EVSEStandby=1;
result->EVSEStatus.FatalError=0;
result->EVSEStatus.PowerSwitchClosed=1;
result->EVSEStatus.RCD=1;
result->EVSEStatus.ShutDownTime=12345678;
result->EVSEStatus.ChargerStandby=1;
result->EVSEStatus.EVSEMalfunction=0;
result->EVSEStatus.StopCharging=0;
result->EVSEPresentVoltage=float_type;
return 0;
}
int terminateCharging(struct TerminateChargingReqType* param, struct TerminateChargingResType* result)
{
struct FloatingValueType float_type;
float_type.Multiplier = 0;
float_type.Unit = V_unitSymbolType;
float_type.Value =0;
printf("EVSE: terminateCharging called\n" );
printf("\tReceived data:\n");
printf("\t\t PEVStatus:\n\t\t\t ChargerStandby=%d\n",param->PEVStatus.ChargerStandby);
printf("\t\t\t ConnectorLocked=%d\n", param->PEVStatus.ConnectorLocked);
printf("\t\t\t ReadyToCharge=%d\n", param->PEVStatus.ReadyToCharge);
result->EVSEPresentVoltage = float_type;
result->ResponseCode = OK_responseCode_TerminateChargingType;
return 0;
}

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -19,7 +19,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2007-2010 Siemens AG * Copyright (C) 2007-2011 Siemens AG
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published * it under the terms of the GNU Lesser General Public License as published
@ -19,7 +19,7 @@
/******************************************************************* /*******************************************************************
* *
* @author Sebastian.Kaebisch.EXT@siemens.com * @author Sebastian.Kaebisch.EXT@siemens.com
* @version 0.3.1 * @version 0.4
* @contact Joerg.Heuer@siemens.com * @contact Joerg.Heuer@siemens.com
* *
********************************************************************/ ********************************************************************/