Skip to content

Digits7SArray

Денис Чухліб edited this page Jul 27, 2023 · 3 revisions

Digits7SArray

Це клас для заміни і уникнення помилок при використанні Digit7SData digits[DigitsSize];

template <uint16_t DigitsSize = 4>  // DigitsSize - кількість сегментів
class Digits7SArray; // Використовувати так - Digits7SArray<DigitsSize> arr;

protected:

Digit7SData digits[DigitsSize]; // Захищене поле з масивом Digit7SData (https://github.com/DenysChuhlib/7Segment/wiki/Digit7SData)

public:

Digits7SArray();    // Пустий конструктор
Digits7SArray(uint8_t newDigits[DigitsSize]);       // Конструктор с масивом uint8_t
Digits7SArray(Digit7SData newDigits[DigitsSize]);   // Конструктор с масивом Digit7SData
Digits7SArray(const Digits7SArray<DigitsSize>& newDigits);  // Конструктор с Digits7SArray<DigitsSize>

Digit7SData& operator[](uint16_t index);        // Оператори для використання об'єкта як масив ( arr[0] )
const Digit7SData& operator[](uint16_t index);  

uint16_t size(); // Отримати кількість сегментів

Digits7SArray& operator = (uint8_t newDigits[DigitsSize]);      // Оператори для взяття данних з інших масивів
Digits7SArray& operator = (Digit7SData newDigits[DigitsSize]);

Digits7SArray& clear(); // Очистити дані (Прирівняння всих до 0)

// Функції для взяття даних з масивів інших розмірів
// size - розмір масиву з якого беруться дані
// pos - позиція в яку вставляються дані
// num - кількість сегментів які скопіюються
template <uint16_t size, uint16_t pos = 0, uint16_t num = size> 
Digits7SArray& setDigits(const Digits7SArray<size>& newDigits);

template <uint16_t size, uint16_t num = size>
Digits7SArray& setDigitsFist(const Digits7SArray<size>& newDigits);

template <uint16_t size, uint16_t num = size>
Digits7SArray& setDigitsLast(const Digits7SArray<size>& newDigits);

Clone this wiki locally