Skip to content

Commit 429b9bc

Browse files
committed
upd 1.3
1 parent 656bccc commit 429b9bc

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,15 @@ Hamming<5> buf; // <> - порядок кода (4-7)
4949
<a id="usage"></a>
5050
## Использование
5151
```cpp
52-
bool pack(T &data); // запаковать данные любого типа в буфер
52+
// запаковать данные любого типа в буфер. Вернёт false если не удалось аллоцировать буфер
53+
bool pack(T &data);
5354
bool pack(uint8_t *ptr, uint32_t size);
5455

55-
uint32_t unpack(uint8_t* data, uint32_t size); // распаковать данные. возврат: 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки
56-
uint8_t status(); // возврат: 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки
57-
uint32_t length(); // размер буфера (больше чем размер входных данных)
56+
uint32_t unpack(uint8_t* data, uint32_t size); // распаковать данные
57+
// 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки, 4 - битый пакет, 5 - не удалось аллоцировать буфер
58+
59+
uint8_t status(); // возврат: 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки, 4 - битый пакет, 5 - не удалось аллоцировать буфер
60+
uint32_t length(); // размер буфера (больше, чем размер входных данных)
5861
void stop(); // освободить буфер
5962
uint8_t *buffer; // внутренний буфер
6063
```
@@ -108,6 +111,7 @@ void loop() {
108111
- v1.0
109112
- v1.1 - исправлена критическая ошибка
110113
- v1.2 - добавлена bool pack(uint8_t *ptr, uint32_t size)
114+
- v1.3 - исправлена критическая ошибка
111115

112116
<a id="feedback"></a>
113117
## Баги и обратная связь

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=Hamming
2-
version=1.2
2+
version=1.3
33
author=AlexGyver <[email protected]>
44
maintainer=AlexGyver <[email protected]>
55
sentence=Library for pack and unpack data by Hamming algorithm

src/Hamming.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
v1.0 - релиз
1616
v1.1 - исправлена критическая ошибка
1717
v1.2 - добавлена bool pack(uint8_t *ptr, uint32_t size)
18+
v1.3 - исправлена критическая ошибка
1819
*/
1920

2021
#ifndef _Hamming_h
@@ -79,16 +80,16 @@ class Hamming {
7980
return 1;
8081
}
8182
// распаковать данные
82-
// возврат: 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки
83+
// возврат: 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки, 4 - битый пакет, 5 - не удалось аллоцировать буфер
8384
uint32_t unpack(uint8_t* data, uint32_t size) {
8485
// 0. Считаем и создаём буфер
86+
if ((size & (chunkSize - 1)) != 0) return stat = 4; // не кратно размеру чанка
8587
uint8_t signif = chunkSizeB - (HAM_SIZE + 1); // битов даты на чанк
86-
if ((size & chunkSize) != 0) return 0; // не кратно размеру чанка
8788
chunkAmount = (uint32_t)size / chunkSize; // колво чанков
8889
bytes = chunkAmount * signif / 8; // размер буфера, байт (округл. вниз)
8990
if (buffer) free(buffer); // чисти старый
9091
buffer = (uint8_t*)malloc(bytes); // выделяем
91-
if (!buffer) return 0; // не удалось создать
92+
if (!buffer) return stat = 5; // не удалось создать
9293
memset(buffer, 0, bytes); // чисти чисти
9394
uint8_t buf[size];
9495
int ptrCount = 0;
@@ -131,7 +132,7 @@ class Hamming {
131132
return stat;
132133
}
133134

134-
// возврат: 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки
135+
// возврат: возврат: 0 ОК, 1 исправлены ошибки, 2 и 3 - есть неисправленные ошибки, 4 - битый пакет, 5 - не удалось аллоцировать буфер
135136
uint8_t status() {
136137
return stat;
137138
}

0 commit comments

Comments
 (0)