Slacky
Member
И там и там нужно поменять. В первом случае это начальная установка. Во втором это уже в процессе ...Нет, в этом месте не выводит нужные значения. В вашем варианте умножил
И там и там нужно поменять. В первом случае это начальная установка. Во втором это уже в процессе ...Нет, в этом месте не выводит нужные значения. В вашем варианте умножил
Invoking: TC32 C LinkerСделал, проверяй. Есть нюанс. Я там добавляю другие счетчики (правда код еще не активен, так как мне пока проверить не на чем). Но вроде на работу с КАСКАД-1-МТ не должно повлиять.
Посмотреть вложение 12960
Invoking: TC32 C Linker
./out/src/app.o: In function `user_init_normal':
app.c.text.user_init_normal+0x32): undefined reference to `get_adc_mv'
app.c.text.user_init_normal+0x7c): undefined reference to `battery_mv'
./out/src/device.o: In function `set_device_type':
device.c.ram_code+0xcc): undefined reference to `measure_meter_mercury206'
device.c.ram_code+0xd0): undefined reference to `get_date_release_data_mercury206'
device.c.ram_code+0xd4): undefined reference to `get_serial_number_data_mercury206'
make: *** [out/electricity_meter.elf] Error 1
"make all" terminated with exit code 2. Build might be incomplete.
ошибки посыпались при сборке.
А, башка моя дырявая. project.mk не обновил. Перезалей и проверь, все должно собраться.ругался на эту строку. в device.c выключил меркурийelectricity_meter_ble/src/app.c at 2f0aedaa8dbdafd7c10829771de81ca16c81cbca · slacky1965/electricity_meter_ble
Device for remote monitoring of electric meter readings - slacky1965/electricity_meter_blegithub.com
вот чуял что что-то не так перезалил прошивку и он отвалился. Снимать с горячих соплей проблематично, но видимо другого выхода нет.А, башка моя дырявая. project.mk не обновил. Перезалей и проверь, все должно собраться.
Есть еще нюанс. Я там добавил атрибут current в app_att.c и app_att.h. Так вот при добавлении или изменении атрибутов модуль перестает соединяться. Я не разбирался в чем дело, просто очищаешь флешь, заливаешь по-новой прошивку и все начинает нормально работать. Правда MAC поменяется, но это не критично ...
Я не знаю, как сделать по другому. Возможно Виктор подскажет )вот чуял что что-то не так перезалил прошивку и он отвалился. Снимать с горячих соплей проблематично, но видимо другого выхода нет.
Добавил, правда в другое место, для универсальности. Также поправил напряжение и тарифы в том же ключе.и ещё в исходниках всё же надо добавить умножение на 1000 power
Что за "добавлении или изменении атрибутов"? На ходу UUID не меняют, а если меняют - тогда оповещают в спец. UUID.Есть еще нюанс. Я там добавил атрибут current в app_att.c и app_att.h. Так вот при добавлении или изменении атрибутов модуль перестает соединяться. Я не разбирался в чем дело, просто очищаешь флешь, заливаешь по-новой прошивку и все начинает нормально работать. Правда MAC поменяется, но это не критично ...
А вот еще вариант проверьте. Удалите устройство из Windows и соединитесь с ним по-новой ...вот чуял что что-то не так перезалил прошивку и он отвалился.
Ну, например было такЧто за "добавлении или изменении атрибутов"?
_attribute_data_retention_ attribute_t my_Attributes[] = {
...
{16,ATT_PERMISSIONS_READ,2,2,(u8*)(&my_primaryServiceUUID),(u8*)(&my_emeterServiceUUID), 0},
{0,ATT_PERMISSIONS_READ,2,sizeof(my_tariff1CharVal),(u8*)(&my_characterUUID),(u8*)(my_tariff1CharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.tariff_1),(u8*)(&my_tariff1CharUUID),(u8*)(&meter.tariff_1), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(tariff1ValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&tariff1ValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_tariff2CharVal),(u8*)(&my_characterUUID),(u8*)(my_tariff2CharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.tariff_2),(u8*)(&my_tariff2CharUUID),(u8*)(&meter.tariff_2), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(tariff2ValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&tariff2ValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_tariff3CharVal),(u8*)(&my_characterUUID),(u8*)(my_tariff3CharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.tariff_3),(u8*)(&my_tariff3CharUUID),(u8*)(&meter.tariff_3), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(tariff3ValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&tariff3ValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_powerCharVal),(u8*)(&my_characterUUID),(u8*)(my_powerCharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.power),(u8*)(&my_powerCharUUID),(u8*)(&meter.power), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(powerValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&powerValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_voltageCharVal),(u8*)(&my_characterUUID),(u8*)(my_voltageCharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.voltage),(u8*)(&my_voltageCharUUID),(u8*)(&meter.voltage), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(voltageValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&voltageValueInCCC), 0
...
};
_attribute_data_retention_ attribute_t my_Attributes[] = {
...
{19,ATT_PERMISSIONS_READ,2,2,(u8*)(&my_primaryServiceUUID),(u8*)(&my_emeterServiceUUID), 0},
{0,ATT_PERMISSIONS_READ,2,sizeof(my_tariff1CharVal),(u8*)(&my_characterUUID),(u8*)(my_tariff1CharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.tariff_1),(u8*)(&my_tariff1CharUUID),(u8*)(&meter.tariff_1), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(tariff1ValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&tariff1ValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_tariff2CharVal),(u8*)(&my_characterUUID),(u8*)(my_tariff2CharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.tariff_2),(u8*)(&my_tariff2CharUUID),(u8*)(&meter.tariff_2), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(tariff2ValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&tariff2ValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_tariff3CharVal),(u8*)(&my_characterUUID),(u8*)(my_tariff3CharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.tariff_3),(u8*)(&my_tariff3CharUUID),(u8*)(&meter.tariff_3), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(tariff3ValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&tariff3ValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_powerCharVal),(u8*)(&my_characterUUID),(u8*)(my_powerCharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.power),(u8*)(&my_powerCharUUID),(u8*)(&meter.power), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(powerValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&powerValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_voltageCharVal),(u8*)(&my_characterUUID),(u8*)(my_voltageCharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.voltage),(u8*)(&my_voltageCharUUID),(u8*)(&meter.voltage), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(voltageValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&voltageValueInCCC), 0}, //value
{0,ATT_PERMISSIONS_READ,2,sizeof(my_ampereCharVal),(u8*)(&my_characterUUID),(u8*)(my_ampereCharVal), 0}, //prop
{0,ATT_PERMISSIONS_READ,2,sizeof(meter.amps),(u8*)(&my_ampereCharUUID),(u8*)(&meter.amps), 0}, //value
{0,ATT_PERMISSIONS_RDWR,2,sizeof(ampereValueInCCC),(u8*)(&clientCharacterCfgUUID),(u8*)(&ereValueInCCC), 0}, //value
...
};
Я тут подумал (ну типа того ). Я наверно делитель/множитель вынесу в отдельно настраиваемую через web-интерфейс переменную для power, volts, amps и tariffs. Можно будет опретивно подстроить под разные счетчики ...ещё в исходниках всё же надо добавить умножение на 1000 power
Не уверен что это нужно. Это не импульсные счётчики с разным весом импульса. А для видимой мощности вместо лампочки лучшие сделать "мнимую нагрузку" из Тор трансформатораЯ тут подумал (ну типа того ). Я наверно делитель/множитель вынесу в отдельно настраиваемую через web-интерфейс переменную для power, volts, amps и tariffs. Можно будет опретивно подстроить под разные счетчики ...
Тут дело все в том, что я параллельно пишу код для каскад-11 и меркурия-206. Не хочу заморачиваться. При наличие таких множителей ты сам подправил оперативно, чтобы HA правильно отображал данные и все.Не уверен что это нужно. Это не импульсные счётчики с разным весом импульса. А для видимой мощности вместо лампочки лучшие сделать "мнимую нагрузку" из Тор трансформатора
Не-а, но Вы сами можете это сделать ) Судя по тому, что шлет в порт AdminTools, там точно такой же протокол, как у CE-102M. Уже сейчас, если выбрать CE-102M должно тарифы показать. А вот с напряжением, мощностью и силой тока придется немного код переписать ...А энергомера СЕ-301 не планируется?