memory new serialization
This commit is contained in:
parent
798d69fc7a
commit
a53634e541
2 changed files with 15 additions and 16 deletions
23
memory.cpp
23
memory.cpp
|
@ -40,30 +40,29 @@ void memory::reset()
|
|||
memset(m, 0x00, size);
|
||||
}
|
||||
|
||||
#if IS_POSIX
|
||||
json_t *memory::serialize() const
|
||||
JsonDocument memory::serialize() const
|
||||
{
|
||||
json_t *j = json_object();
|
||||
JsonDocument j;
|
||||
|
||||
json_object_set(j, "size", json_integer(size));
|
||||
j["size"] = size;
|
||||
|
||||
json_t *ja = json_array();
|
||||
JsonArray ja;
|
||||
for(size_t i=0; i<size; i++)
|
||||
json_array_append(ja, json_integer(m[i]));
|
||||
json_object_set(j, "contents", ja);
|
||||
ja.add(m[i]);
|
||||
j["contents"] = ja;
|
||||
|
||||
return j;
|
||||
}
|
||||
|
||||
memory *memory::deserialize(const json_t *const j)
|
||||
{
|
||||
size_t size = json_integer_value(json_object_get(j, "size"));
|
||||
size_t size = j["size"];
|
||||
memory *m = new memory(size);
|
||||
|
||||
json_t *ja = json_object_get(j, "contents");
|
||||
for(size_t i=0; i<size; i++)
|
||||
m->m[i] = json_integer_value(json_array_get(ja, i));
|
||||
JsonArray ja = j["contents"];
|
||||
uint32_t i = 0;
|
||||
for(auto v: ja)
|
||||
m->m[i++] = v;
|
||||
|
||||
return m;
|
||||
}
|
||||
#endif
|
||||
|
|
8
memory.h
8
memory.h
|
@ -2,6 +2,7 @@
|
|||
// Released under MIT license
|
||||
|
||||
#pragma once
|
||||
#include <ArduinoJson.h>
|
||||
#include <cstdint>
|
||||
|
||||
#include "gen.h"
|
||||
|
@ -20,10 +21,9 @@ public:
|
|||
uint32_t get_memory_size() const { return size; }
|
||||
|
||||
void reset();
|
||||
#if IS_POSIX
|
||||
json_t *serialize() const;
|
||||
static memory *deserialize(const json_t *const j);
|
||||
#endif
|
||||
|
||||
JsonDocument serialize() const;
|
||||
static memory *deserialize(const JsonDocument j);
|
||||
|
||||
uint16_t read_byte(const uint32_t a) const { return m[a]; }
|
||||
void write_byte(const uint32_t a, const uint16_t v) { if (a < size) m[a] = v; }
|
||||
|
|
Loading…
Add table
Reference in a new issue