mirror of
				https://github.com/hyperion-project/hyperion.ng.git
				synced 2025-03-01 10:33:28 +00:00 
			
		
		
		
	* rework structure of leddevice source tree * fix data type vor v4l sig detection value in webui * automate leddevicefactory.cpp
		
			
				
	
	
		
			39 lines
		
	
	
		
			1006 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1006 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // hyperion local includes
 | |
| #include "LedDeviceAtmo.h"
 | |
| 
 | |
| LedDeviceAtmo::LedDeviceAtmo(const QJsonObject &deviceConfig)
 | |
| 	: ProviderRs232()
 | |
| {
 | |
| 	_deviceReady = init(deviceConfig);
 | |
| }
 | |
| 
 | |
| LedDevice* LedDeviceAtmo::construct(const QJsonObject &deviceConfig)
 | |
| {
 | |
| 	return new LedDeviceAtmo(deviceConfig);
 | |
| }
 | |
| 
 | |
| bool LedDeviceAtmo::init(const QJsonObject &deviceConfig)
 | |
| {
 | |
| 	ProviderRs232::init(deviceConfig);
 | |
| 
 | |
| 	if (_ledCount != 5)
 | |
| 	{
 | |
| 		Error( _log, "%d channels configured. This should always be 5!", _ledCount);
 | |
| 		return 0;
 | |
| 	}
 | |
| 
 | |
| 	_ledBuffer.resize(4 + 5*3); // 4-byte header, 5 RGB values
 | |
| 	_ledBuffer[0] = 0xFF;       // Startbyte
 | |
| 	_ledBuffer[1] = 0x00;       // StartChannel(Low)
 | |
| 	_ledBuffer[2] = 0x00;       // StartChannel(High)
 | |
| 	_ledBuffer[3] = 0x0F;       // Number of Databytes send (always! 15)
 | |
| 
 | |
| 	return true;
 | |
| }
 | |
| 
 | |
| int LedDeviceAtmo::write(const std::vector<ColorRgb> &ledValues)
 | |
| {
 | |
| 	memcpy(4 + _ledBuffer.data(), ledValues.data(), _ledCount * sizeof(ColorRgb));
 | |
| 	return writeBytes(_ledBuffer.size(), _ledBuffer.data());
 | |
| }
 |