Skip to content
Snippets Groups Projects
Commit f43d95df authored by fxk8y's avatar fxk8y :spider:
Browse files

Breaking things… Re-Fixing things… :/

parent 3b06df0c
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,7 @@ namespace CyanLight {
auto ch = this->getChannelCount();
if (ch < MAX_CHANNELS) {
return FxCyanF::addChannel((uint8_t)channelGPIOs[ch]);
return SiliconTorch::FxCyanF::addChannel((uint8_t)channelGPIOs[ch]);
} else {
ESP_LOGE(TAG, "Cannot create channel#[ %i ]! CLC hardware limit is #[ %i ]", ch, MAX_CHANNELS);
return false;
......
This diff is collapsed.
......@@ -9,6 +9,7 @@
#include <cinttypes>
// project specific
#include "CyanBus.hpp"
#include "Metrics.hpp"
#include "PWMChannel.hpp"
......@@ -16,69 +17,73 @@
namespace SiliconTorch {
extern const char* TAG;
//namespace FxCyanF {
typedef std::function<void()> PacketHandledCallback;
typedef std::function<float(float)> GammaCorrector;
extern const std::string HEADER;
class FxCyanF {
public:
FxCyanF(uint32_t baseChannel = 0);
typedef std::function<void()> PacketHandledCallback;
typedef std::function<float(float)> GammaCorrector;
bool addChannel(uint8_t gpio);
class FxCyanF {
public:
FxCyanF(uint32_t baseChannel = 0);
void setPWM(uint8_t channel, float value);
bool addChannel(uint8_t gpio);
void setGammaCorrector(GammaCorrector gammaCorrector);
void setPWM(uint8_t channel, float value);
uint8_t getChannelCount();
void setGammaCorrector(GammaCorrector gammaCorrector);
void setBaseChannel(uint16_t baseChannel);
uint16_t getBaseChannel();
uint8_t getChannelCount();
bool setFrequency(uint32_t frq_hz);
uint32_t getFrequency();
void setBaseChannel(uint16_t baseChannel);
uint16_t getBaseChannel();
bool setResolution(uint8_t res_bits);
uint8_t getResolution();
bool setFrequency(uint32_t frq_hz);
uint32_t getFrequency();
bool setFrqRes(uint32_t frq_hz, uint8_t res_bits);
bool setResolution(uint8_t res_bits);
uint8_t getResolution();
void setPacketHandledCallback(PacketHandledCallback callback);
bool setFrqRes(uint32_t frq_hz, uint8_t res_bits);
bool handleUnicast(const char *data, std::size_t length);
bool handleBroadcast(const char *data, std::size_t length);
void setPacketHandledCallback(PacketHandledCallback callback);
std::string genDeviceTopic(const char *suffix);
std::string genServiceTopic(const char *suffix);
bool handleUnicast(const uint8_t* data, std::size_t length);
bool handleBroadcast(const uint8_t* data, std::size_t length);
void publishFrqRes();
void publishFrequency();
void publishResolution();
void publishBaseChannel();
void publishChannelCount();
void publishListenerInfo();
void registerAtCyanBus(CyanBus::CyanBus& cyanBus);
private:
std::string genDeviceTopic(const char* suffix);
std::string genServiceTopic(const char* suffix);
uint32_t frequency = 1000; // Hz
uint8_t resolution = 10; // bits
void publishFrqRes();
void publishFrequency();
void publishResolution();
void publishBaseChannel();
void publishChannelCount();
void publishListenerInfo();
uint32_t baseChannel;
uint8_t channelsConfigured = 0;
private:
Impl::PWMChannel** channels;
uint32_t frequency = 1000; // Hz
uint8_t resolution = 10; // bits
ledc_timer_config_t timer_cfg;
uint32_t baseChannel;
uint8_t channelsConfigured = 0;
GammaCorrector gammaCorrector = [](float f) { return f*f; };
Impl::PWMChannel** channels;
PacketHandledCallback packetCallback = []() {};
void callPacketCallback();
ledc_timer_config_t timer_cfg;
Metrics::Metrics metrics;
Metrics::Incrementer frameCntInc;
Metrics::Incrementer errorCntInc;
};
GammaCorrector gammaCorrector = [](float f) { return f*f; };
PacketHandledCallback packetCallback = []() {};
void callPacketCallback();
Metrics::Metrics metrics;
Metrics::Incrementer frameCntInc;
Metrics::Incrementer errorCntInc;
};
//}
}
......@@ -63,18 +63,6 @@ void device_main() {
std::string magic("fx");
cyanBus->packetCallback.add(magic, [](const SiliconTorch::CyanBus::PacketData& data) {
ESP_LOGW("PacketDataTestCallback", "|payload|[ %d ] payload[ %s ]", data.length, data.payload);
});
cyanBus->metricsCallback += [](const SiliconTorch::CyanBus::PacketMetrics& metrics) {
ESP_LOGW("PacketMetricsTestCallback", "|payload|[ %d ] crc⏻[ %s ]", metrics.payloadLEN, metrics.crcOK ? "✔" : "✘");
};
// TODO: ???
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment