mirror of
https://github.com/thelsing/knx.git
synced 2024-12-18 19:08:18 +01:00
add save + restore callbacks
This commit is contained in:
parent
2a292ae314
commit
ecce8ddd3c
2
src/knx
2
src/knx
@ -1 +1 @@
|
|||||||
Subproject commit 7d86f63f8e8399a785278e50532805630fb4e07d
|
Subproject commit ddf99a9b96572e7dec97e8a04fc9ad909728bbec
|
@ -145,3 +145,33 @@ uint32_t KnxFacade::paramInt(uint32_t addr)
|
|||||||
|
|
||||||
return _bau.parameters().getInt(addr);
|
return _bau.parameters().getInt(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void KnxFacade::setSaveCallback(saveRestoreCallback func)
|
||||||
|
{
|
||||||
|
_saveCallback = func;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void KnxFacade::setRestoreCallback(saveRestoreCallback func)
|
||||||
|
{
|
||||||
|
_restoreCallback = func;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t* KnxFacade::save(uint8_t* buffer)
|
||||||
|
{
|
||||||
|
if (_saveCallback != 0)
|
||||||
|
return _saveCallback(buffer);
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t* KnxFacade::restore(uint8_t* buffer)
|
||||||
|
{
|
||||||
|
if (_restoreCallback != 0)
|
||||||
|
return _restoreCallback(buffer);
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
@ -5,7 +5,9 @@
|
|||||||
|
|
||||||
class RunningState;
|
class RunningState;
|
||||||
|
|
||||||
class KnxFacade
|
typedef uint8_t* (*saveRestoreCallback)(uint8_t* buffer);
|
||||||
|
|
||||||
|
class KnxFacade : private SaveRestore
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
KnxFacade();
|
KnxFacade();
|
||||||
@ -28,6 +30,8 @@ public:
|
|||||||
void hardwareType(uint8_t* value);
|
void hardwareType(uint8_t* value);
|
||||||
void version(uint16_t value);
|
void version(uint16_t value);
|
||||||
void start();
|
void start();
|
||||||
|
void setSaveCallback(saveRestoreCallback func);
|
||||||
|
void setRestoreCallback(saveRestoreCallback func);
|
||||||
uint8_t* paramData(uint32_t addr);
|
uint8_t* paramData(uint32_t addr);
|
||||||
uint8_t paramByte(uint32_t addr);
|
uint8_t paramByte(uint32_t addr);
|
||||||
uint16_t paramWord(uint32_t addr);
|
uint16_t paramWord(uint32_t addr);
|
||||||
@ -38,6 +42,11 @@ private:
|
|||||||
uint32_t _ledPin = 16;
|
uint32_t _ledPin = 16;
|
||||||
uint32_t _buttonPin = 0;
|
uint32_t _buttonPin = 0;
|
||||||
Ticker _ticker;
|
Ticker _ticker;
|
||||||
|
saveRestoreCallback _saveCallback = 0;
|
||||||
|
saveRestoreCallback _restoreCallback = 0;
|
||||||
|
|
||||||
|
uint8_t* save(uint8_t* buffer);
|
||||||
|
uint8_t* restore(uint8_t* buffer);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern KnxFacade knx;
|
extern KnxFacade knx;
|
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
<VisualGDBProjectSettings2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<ConfigurationName>Debug</ConfigurationName>
|
||||||
<Project xsi:type="com.visualgdb.project.external.arduino">
|
<Project xsi:type="com.visualgdb.project.external.arduino">
|
||||||
<CustomSourceDirectories>
|
<CustomSourceDirectories>
|
||||||
<Directories />
|
<Directories />
|
||||||
@ -10,7 +11,7 @@
|
|||||||
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
<GroupSourcesByTypes>true</GroupSourcesByTypes>
|
||||||
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
<GroupSourcesByPaths>true</GroupSourcesByPaths>
|
||||||
<SketchSubdirectory>..\examples\knx-esp-demo</SketchSubdirectory>
|
<SketchSubdirectory>..\examples\knx-esp-demo</SketchSubdirectory>
|
||||||
<MainSketchFile>knx-esp-demo.ino</MainSketchFile>
|
<MainSketchFile>Sketch.ino</MainSketchFile>
|
||||||
<RootSketchFolder>
|
<RootSketchFolder>
|
||||||
<Subfolders />
|
<Subfolders />
|
||||||
<Files>
|
<Files>
|
||||||
@ -25,7 +26,7 @@
|
|||||||
<string>..\..</string>
|
<string>..\..</string>
|
||||||
</AdditionalLibraryDirectories>
|
</AdditionalLibraryDirectories>
|
||||||
<OutputSubdirectory>Output\$(PlatformName.defuse)\$(ConfigurationName.defuse)</OutputSubdirectory>
|
<OutputSubdirectory>Output\$(PlatformName.defuse)\$(ConfigurationName.defuse)</OutputSubdirectory>
|
||||||
<EnableVerboseBuild>false</EnableVerboseBuild>
|
<EnableVerboseBuild>true</EnableVerboseBuild>
|
||||||
</Build>
|
</Build>
|
||||||
<CustomBuild>
|
<CustomBuild>
|
||||||
<PreSyncActions />
|
<PreSyncActions />
|
||||||
@ -40,6 +41,60 @@
|
|||||||
<DebugStopActions />
|
<DebugStopActions />
|
||||||
<BreakMode>Default</BreakMode>
|
<BreakMode>Default</BreakMode>
|
||||||
</CustomDebug>
|
</CustomDebug>
|
||||||
|
<DeviceTerminalSettings>
|
||||||
|
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
||||||
|
<AdvancedSettings>
|
||||||
|
<BaudRate>115200</BaudRate>
|
||||||
|
<DataBits>8</DataBits>
|
||||||
|
<Parity>None</Parity>
|
||||||
|
<StopBits>One</StopBits>
|
||||||
|
<FlowControl>None</FlowControl>
|
||||||
|
</AdvancedSettings>
|
||||||
|
</Connection>
|
||||||
|
<LastConnectionTime>0</LastConnectionTime>
|
||||||
|
<EchoTypedCharacters>false</EchoTypedCharacters>
|
||||||
|
<ClearContentsWhenReconnecting>false</ClearContentsWhenReconnecting>
|
||||||
|
<ReconnectAutomatically>true</ReconnectAutomatically>
|
||||||
|
<DisplayMode>ASCII</DisplayMode>
|
||||||
|
<Colors>
|
||||||
|
<Background>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>0</Red>
|
||||||
|
<Green>0</Green>
|
||||||
|
<Blue>0</Blue>
|
||||||
|
</Background>
|
||||||
|
<Disconnected>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>169</Red>
|
||||||
|
<Green>169</Green>
|
||||||
|
<Blue>169</Blue>
|
||||||
|
</Disconnected>
|
||||||
|
<Text>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>211</Red>
|
||||||
|
<Green>211</Green>
|
||||||
|
<Blue>211</Blue>
|
||||||
|
</Text>
|
||||||
|
<Echo>
|
||||||
|
<Alpha>255</Alpha>
|
||||||
|
<Red>144</Red>
|
||||||
|
<Green>238</Green>
|
||||||
|
<Blue>144</Blue>
|
||||||
|
</Echo>
|
||||||
|
</Colors>
|
||||||
|
<HexSettings>
|
||||||
|
<MaximumBytesPerLine>16</MaximumBytesPerLine>
|
||||||
|
<ShowTextView>true</ShowTextView>
|
||||||
|
<BreaksAroundEcho>true</BreaksAroundEcho>
|
||||||
|
<AutoSend>true</AutoSend>
|
||||||
|
<SendAsHex>true</SendAsHex>
|
||||||
|
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
|
||||||
|
</HexSettings>
|
||||||
|
<LineEnding>LF</LineEnding>
|
||||||
|
<TreatLFAsCRLF>false</TreatLFAsCRLF>
|
||||||
|
<KeepOpenAfterExit>true</KeepOpenAfterExit>
|
||||||
|
<ShowAfterProgramming>true</ShowAfterProgramming>
|
||||||
|
</DeviceTerminalSettings>
|
||||||
<CustomShortcuts>
|
<CustomShortcuts>
|
||||||
<Shortcuts />
|
<Shortcuts />
|
||||||
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
|
||||||
@ -47,22 +102,76 @@
|
|||||||
<UserDefinedVariables />
|
<UserDefinedVariables />
|
||||||
<ImportedPropertySheets />
|
<ImportedPropertySheets />
|
||||||
<CodeSense>
|
<CodeSense>
|
||||||
<Enabled>Unknown</Enabled>
|
<Enabled>True</Enabled>
|
||||||
<ExtraSettings>
|
<ExtraSettings>
|
||||||
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
|
||||||
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
|
||||||
|
<DiscoverySettings>
|
||||||
|
<Mode>Enabled</Mode>
|
||||||
|
<SearchInProjectDir>true</SearchInProjectDir>
|
||||||
|
<SearchInSourceDirs>true</SearchInSourceDirs>
|
||||||
|
<SearchInIncludeSubdirs>true</SearchInIncludeSubdirs>
|
||||||
|
</DiscoverySettings>
|
||||||
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
|
||||||
<FormattingEngine xsi:nil="true" />
|
<FormattingEngine xsi:nil="true" />
|
||||||
</ExtraSettings>
|
</ExtraSettings>
|
||||||
<CodeAnalyzerSettings>
|
<CodeAnalyzerSettings>
|
||||||
<Enabled>false</Enabled>
|
<Enabled>false</Enabled>
|
||||||
|
<SelectedAnalyzers>
|
||||||
|
<string>apiModeling.google.GTest</string>
|
||||||
|
<string>core.builtin.BuiltinFunctions</string>
|
||||||
|
<string>core.builtin.NoReturnFunctions</string>
|
||||||
|
<string>core.CallAndMessage</string>
|
||||||
|
<string>core.DivideZero</string>
|
||||||
|
<string>core.DynamicTypePropagation</string>
|
||||||
|
<string>core.NonnilStringConstants</string>
|
||||||
|
<string>core.NonNullParamChecker</string>
|
||||||
|
<string>core.NullDereference</string>
|
||||||
|
<string>core.StackAddressEscape</string>
|
||||||
|
<string>core.UndefinedBinaryOperatorResult</string>
|
||||||
|
<string>core.uninitialized.ArraySubscript</string>
|
||||||
|
<string>core.uninitialized.Assign</string>
|
||||||
|
<string>core.uninitialized.Branch</string>
|
||||||
|
<string>core.uninitialized.CapturedBlockVariable</string>
|
||||||
|
<string>core.uninitialized.UndefReturn</string>
|
||||||
|
<string>core.VLASize</string>
|
||||||
|
<string>cplusplus.NewDelete</string>
|
||||||
|
<string>cplusplus.NewDeleteLeaks</string>
|
||||||
|
<string>cplusplus.SelfAssignment</string>
|
||||||
|
<string>deadcode.DeadStores</string>
|
||||||
|
<string>nullability.NullPassedToNonnull</string>
|
||||||
|
<string>nullability.NullReturnedFromNonnull</string>
|
||||||
|
<string>security.insecureAPI.getpw</string>
|
||||||
|
<string>security.insecureAPI.gets</string>
|
||||||
|
<string>security.insecureAPI.mkstemp</string>
|
||||||
|
<string>security.insecureAPI.mktemp</string>
|
||||||
|
<string>security.insecureAPI.UncheckedReturn</string>
|
||||||
|
<string>security.insecureAPI.vfork</string>
|
||||||
|
<string>unix.API</string>
|
||||||
|
<string>unix.cstring.BadSizeArg</string>
|
||||||
|
<string>unix.cstring.NullArg</string>
|
||||||
|
<string>unix.Malloc</string>
|
||||||
|
<string>unix.MallocSizeof</string>
|
||||||
|
<string>unix.MismatchedDeallocator</string>
|
||||||
|
<string>unix.StdCLibraryFunctions</string>
|
||||||
|
<string>unix.Vfork</string>
|
||||||
|
</SelectedAnalyzers>
|
||||||
|
<ExtraArguments>
|
||||||
|
<string>-analyzer-store=region</string>
|
||||||
|
<string>-analyzer-opt-analyze-nested-blocks</string>
|
||||||
|
<string>-analyzer-eagerly-assume</string>
|
||||||
|
</ExtraArguments>
|
||||||
</CodeAnalyzerSettings>
|
</CodeAnalyzerSettings>
|
||||||
</CodeSense>
|
</CodeSense>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<VisualGDBConfiguration>
|
<VisualGDBConfiguration>
|
||||||
<PlatformName>NodeMCU 1 0 (ESP-12E Module)</PlatformName>
|
<PlatformName>NodeMCU 1 0 (ESP-12E Module)</PlatformName>
|
||||||
<DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded">
|
<DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded">
|
||||||
<AdditionalStartupCommands />
|
<AdditionalStartupCommands>
|
||||||
|
<GDBPreStartupCommands />
|
||||||
|
<GDBStartupCommands />
|
||||||
|
<GDBFinalizationCommands />
|
||||||
|
</AdditionalStartupCommands>
|
||||||
<AdditionalGDBSettings>
|
<AdditionalGDBSettings>
|
||||||
<Features>
|
<Features>
|
||||||
<DisableAutoDetection>false</DisableAutoDetection>
|
<DisableAutoDetection>false</DisableAutoDetection>
|
||||||
@ -110,7 +219,7 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
</DebugMethod>
|
</DebugMethod>
|
||||||
<AutoDetectRTOS>true</AutoDetectRTOS>
|
<AutoDetectRTOS>true</AutoDetectRTOS>
|
||||||
<SemihostingSupport>Auto</SemihostingSupport>
|
<SemihostingSupport>Disabled</SemihostingSupport>
|
||||||
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
||||||
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
||||||
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
||||||
|
Loading…
Reference in New Issue
Block a user