Corsair Lighting Protocol  0.15.0
Control LEDs connected to an Arduino with iCUE
CorsairLightingProtocolSerial.h
1 /*
2  Copyright 2019 Leon Kiefer
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 */
16 #pragma once
17 
18 #include "CorsairLightingProtocolConstants.h"
19 #include "CorsairLightingProtocolController.h"
20 #include "CorsairLightingProtocolResponse.h"
21 
22 // The maximum time in milliseconds needed to receive 64-byte data
23 #define SERIAL_TIMEOUT 2
24 #define SERIAL_BAUD 1000000
25 
32 public:
43  void setup();
48  void update();
49 
50 private:
51  byte rawCommand[COMMAND_SIZE];
52  CorsairLightingProtocolController* const controller;
53 
54  bool handleSerial();
55  void sendX(const uint8_t* data, const size_t x) const override;
56 };
Definition: CorsairLightingProtocolController.h:31
Definition: CorsairLightingProtocolResponse.h:20
Definition: CorsairLightingProtocolSerial.h:31
void update()
Definition: CorsairLightingProtocolSerial.cpp:26
void setup()
Definition: CorsairLightingProtocolSerial.cpp:21
CorsairLightingProtocolSerial(CorsairLightingProtocolController *controller)
Definition: CorsairLightingProtocolSerial.cpp:18