Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const gxObject* ALL_OBJECTS[] = { &association.base, &ldn.base, &activePowerL1.base, &clock1.base};
- int addClockObject()
- {
- int ret;
- const unsigned char ln[6] = { 0,0,1,0,0,255 };
- if ((ret = cosem_init2(&clock1.base, DLMS_OBJECT_TYPE_CLOCK, ln)) != 0)
- {
- return ret;
- }
- time_init3(&clock1.begin, -1, 9, 1, -1, -1, -1, -1);
- time_init3(&clock1.end, -1, 3, 1, -1, -1, -1, -1);
- return 0;
- }
- int svr_InitObjects(
- dlmsServerSettings *settings)
- {
- addLogicalDeviceName();
- addClockObject();
- addRegisterObject();
- addAssociation();
- oa_attach(&settings->base.objects, ALL_OBJECTS,
- sizeof(ALL_OBJECTS) / sizeof(ALL_OBJECTS[0]));
- return 0;
- }
- #define SETTINGS_BUFFER_SIZE 2000
- #define LOAD_PROFILE_BUFFER_SIZE 1000
- #define EVENT_PROFILE_BUFFER_SIZE 1000
- unsigned char SETTINGS_BUFFER[SETTINGS_BUFFER_SIZE + LOAD_PROFILE_BUFFER_SIZE + EVENT_PROFILE_BUFFER_SIZE];
- uint32_t SERIALIZER_SIZE(){
- // As stated in the example, must investigate if it's wrong
- return SETTINGS_BUFFER_SIZE;
- }
- int SERIALIZER_LOAD(uint32_t index, uint32_t count, void* value){
- if (index + count > sizeof(SETTINGS_BUFFER))
- {
- return DLMS_ERROR_CODE_SERIALIZATION_LOAD_FAILURE;
- }
- unsigned char* p = (unsigned char*)value;
- uint32_t pos;
- for (pos = 0; pos != count; ++pos)
- {
- *p = SETTINGS_BUFFER[index + pos];
- ++p;
- }
- return 0;
- }
- int SERIALIZER_SAVE(uint32_t index, uint32_t count, const void* value){
- if (index + count > sizeof(SETTINGS_BUFFER))
- {
- return DLMS_ERROR_CODE_SERIALIZATION_SAVE_FAILURE;
- }
- unsigned char* p = (unsigned char*)value;
- uint32_t pos;
- for (pos = 0; pos != count; ++pos)
- {
- SETTINGS_BUFFER[index + pos] = *p;
- ++p;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment