嗨
我试图让custom_component在ESPHome上工作,
我将尝试获得一个仪器,通过rs232 ttl适配器在NMEA 0183(它不是GPS)发送数据到uart上的esp32。
我有点卡住了,我刚来这个平台。
到目前为止,我做了以下工作:
从我的YAML文件:
uart: id: wind tx_pin: GPIO1 rx_pin: GPIO3 baud_rate: 19200 custom_component: - lambda: |- auto Windsonic = new Windsonic(id(wind));返回{Windsonic - > retning Windsonic - > hastighet};
从我的Windsonic.h文件中
#include "esphome.h" class Windsonic: public Component, public UARTDevice {public: Windsonic(UARTComponent *parent): UARTDevice(parent) {} float rening = 0;hastight = 0;void setup() override {// nothing to do here} void loop() override{//使用Arduino API读取数据,例如String line = readStringUntil('\n');retning = parse_float(线。substring(8、10));hastighet = parse_float(线。substring(15、19));} // etc // void update() override {// rening ->publish_state(rening);/ / hastighet - > publish_state (hastighet);/ /}};
从我的编译日志:
src / main.cpp: 113:3:警告:多行注释[-Wcomment] / /λ:!λ”汽车Windsonic = new Windsonic (id(风));\ nreturn {Windsonic - > retning,文件包括从src / main.cpp \ ^: 14:0: src / windsonic.h:在成员函数的虚拟空Windsonic::循环():src / windsonic.h: 15:41:错误:const String &{又名const std::__cxx11::basic_string&}类型的引用的无效初始化。substring(8、10));^在文件包括从src / esphome /核心/ application.h:译者注,从src / esphome /组件/ api / api_connection.h: 4,从src / esphome.h: 2,从src / main.cpp: 3: src / esphome /核心/ helpers.h: 44:17:注意:通过参数1的“esphome::可选<飘> esphome:: parse_float(常量字符串)的可选<飘> parse_float (const std:: string str);^在src/main.cpp:14:0: src/windsonic.h:16:40: error: const String & {aka const std::__cxx11::basic_string&}类型的引用初始化无效substring(15、19));^在文件包括从src / esphome /核心/ application.h:译者注,从src / esphome /组件/ api / api_connection.h: 4,从src / esphome.h: 2,从src / main.cpp: 3: src / esphome /核心/ helpers.h: 44:17:注意:通过参数1的“esphome::可选<飘> esphome:: parse_float(常量字符串)的可选<飘> parse_float (const std:: string str);^ src/main.cpp:在lambda函数中:src/main.cpp:121:28: error: expected type-specifier before 'Windsonic' auto Windsonic = new Windsonic(wind);^ src/main.cpp:122:55: error: could not convert '{, }' from '<括起来的初始化列表>' to 'std::vector' return {Windsonic->retning, Windsonic->hastighet};^ * * *[/数据/ vind / .pioenvs vind / src / main.cpp。o]错误1
我需要有人指点我如何把这件事办好。