-
Notifications
You must be signed in to change notification settings - Fork 0
Digits7SArray
Денис Чухліб edited this page Jul 27, 2023
·
3 revisions
Це клас для заміни і уникнення помилок при використанні 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);