# Name of the plugin.
name=Gas Proxy Function (GPF)
category=Great Britain Companion Specification 

# Any string is allowable here.  Generally it is either: Production Ready, Test Tool, or Requires Extending
qualityString=Test Code

# This is must be one of the following:  productionReady, testTool, extensionNeeded
quality=test

# Description of the plugin.
description=Ember implementation of Gas Proxy Function (GPF). This plugin is responsible for receiving and processing of GBZ Tap Off Messages. NOTE: This plugin uses malloc and should only be used in a non-SOC setup.

# List of .c files that need to be compiled and linked in.
sourceFiles=gas-proxy-function.c,gas-proxy-function-cli.c,gpf-structured-data.c

# List of callbacks implemented by this plugin
implementedCallbacks=emberAfPluginGasProxyFunctionInitCallback, emberAfPriceClusterPublishPriceMatrixCallback, emberAfMessagingClusterDisplayMessageCallback, emberAfPluginMeterMirrorMirrorAddedCallback, emberAfPluginMeterMirrorMirrorRemovedCallback, emberAfDeviceManagementClusterPublishChangeOfSupplierCallback, emberAfDeviceManagementClusterPublishChangeOfTenancyCallback, emberAfSimpleMeteringClusterGetNotifiedMessageCallback ,emberAfPriceClusterPublishCalorificValueCallback, emberAfPriceClusterPublishConversionFactorCallback, emberAfPriceClusterPublishBlockThresholdsCallback, emberAfPriceClusterPublishTariffInformationCallback, emberAfSimpleMeteringClusterRequestMirrorCallback, emberAfSimpleMeteringClusterRemoveMirrorCallback, emberAfSimpleMeteringClusterClientDefaultResponseCallback, emberAfPluginMeterMirrorReportingCompleteCallback, emberAfSimpleMeteringClusterGetSampledDataResponseCallback, emberAfSimpleMeteringClusterGetSampledDataCallback, emberAfSimpleMeteringClusterPublishSnapshotCallback, emberAfSimpleMeteringClusterGetSnapshotCallback, emberAfPrepaymentClusterPublishPrepaySnapshotCallback, emberAfPrepaymentClusterGetPrepaySnapshotCallback, emberAfPriceClusterPublishBillingPeriodCallback,emberAfPriceClusterPublishBlockPeriodCallback,emberAfPrepaymentClusterPublishTopUpLogCallback,emberAfPrepaymentClusterGetTopUpLogCallback,emberAfPrepaymentClusterPublishDebtLogCallback,emberAfPrepaymentClusterGetDebtRepaymentLogCallback, emberAfPrepaymentClusterClientDefaultResponseCallback,emberAfSimpleMeteringClusterServerAttributeChangedCallback,emberAfPrepaymentClusterServerAttributeChangedCallback, emberAfCalendarClusterPublishCalendarCallback, emberAfCalendarClusterPublishDayProfileCallback, emberAfCalendarClusterPublishSeasonsCallback, emberAfCalendarClusterPublishSpecialDaysCallback, emberAfCalendarClusterPublishWeekProfileCallback, emberAfPluginCalendarServerPublishInfoCallback

# Make it optional
includedByDefault=false

requiredPlugins=key-establishment,gbz-message-controller,meter-mirror,events-server,gbcs-compatibility

# List of options
options=remoteCommshubEndpoint,mirrorEndpoint,esiEndpoint,hiddenClientSideEndpoint,maxProfileDataLogEntries,maxDailyConsumptionLogEntries,maxDailyReadLogEntries,maxPrepaymentDailyReadLogEntries

esiEndpoint.name=Meter ESI Endpoint
esiEndpoint.description=This is a local endpoint representing the ESI.
esiEndpoint.type=NUMBER:1,255
esiEndpoint.default=1

mirrorEndpoint.name=Meter Mirror Endpoint
mirrorEndpoint.description=This is a local mirror endpoint representing the meter.
mirrorEndpoint.type=NUMBER:1,255
mirrorEndpoint.default=2

remoteCommshubEndpoint.name=Remote CommsHub Endpoint
remoteCommshubEndpoint.description=This is a local endpoint representing the Remote CommsHub.
remoteCommshubEndpoint.type=NUMBER:1,255
remoteCommshubEndpoint.default=3

hiddenClientSideEndpoint.name=Hidden Client Side Endpoint
hiddenClientSideEndpoint.description=This endpoint should implement all necessary cluster for the success operation / processing of TOM commands.
hiddenClientSideEndpoint.type=NUMBER:1,255
hiddenClientSideEndpoint.default=4

maxProfileDataLogEntries.name=Max Profile Data Log Entries
maxProfileDataLogEntries.description=Maximum number of entries in the GPF Profile Data Log.
maxProfileDataLogEntries.type=NUMBER:1,65535
maxProfileDataLogEntries.default=19056

maxDailyConsumptionLogEntries.name=Max Daily Consumption Log Entries
maxDailyConsumptionLogEntries.description=Maximum number of entries in the GPF Daily Consumption Log.
maxDailyConsumptionLogEntries.type=NUMBER:1,65535
maxDailyConsumptionLogEntries.default=731

maxDailyReadLogEntries.name=Max Daily Read Log Entries
maxDailyReadLogEntries.description=Maximum number of entries in the GPF Daily Read Log.
maxDailyReadLogEntries.type=NUMBER:1,255
maxDailyReadLogEntries.default=31

maxPrepaymentDailyReadLogEntries.name=Max Prepayment Daily Read Log Entries
maxPrepaymentDailyReadLogEntries.description=Maximum number of entries in the GPF Prepayment Daily Read Log.
maxPrepaymentDailyReadLogEntries.type=NUMBER:1,255
maxPrepaymentDailyReadLogEntries.default=31

#List of events
events=catchup,gsmeSync
gsmeSync.type=endpoint

setup(bookkeeping) {
  preCommandReceived=emAfPluginGasProxyFunctionPreCommandReceivedCallback
}