UART wo rakuraku hedda- dasite kureru benrina yatu

COBS.cpp

Committer:
TakushimaYukimasa
Date:
2022-06-29
Revision:
0:93df1cb29b75

File content as of revision 0:93df1cb29b75:

#include "COBS.h"

void COBS::Encode(uint8_t *array)
{
    int cnt = 0;
    array[dataSizeEncode + 1] = 0;
    //[i]を[i+1]に移動しながらエンコードする
    for (int i = dataSizeEncode; i >= 0; i--) {
        if (array[i] == 0) {
            array[i + 1] = cnt;
            cnt = 0;
        } 
        else
            array[i + 1]= array[i];
        cnt++;
    }
    array[0] = cnt;
}

void COBS::Decode(uint8_t *array)
{
    int cnt = array[0];
    //[i]を[i-1]に移動しながらデコードする
    for (int i = 1; i < dataSizeDecode + 1; i++) {
        cnt--;
        if (cnt == 0) {
            array[i - 1] = 0;
            cnt = array[i];
        } 
        else
            array[i - 1] = array[i];
    }
}