Убраны пока лишние пч, т.к. датчиков всего 4

Убрана функция скана
Исправлен оформирование ром для инициализации датчика
Переделан функция деинита структуры сенсора
This commit is contained in:
2025-03-05 17:16:00 +03:00
parent b59da11afc
commit 8d44a1a153
6 changed files with 91 additions and 37 deletions

View File

@@ -32,15 +32,21 @@ void PYModule_main(void)
}
}
if(MB_DATA.Coils.ScanSensors)
if(MB_DATA.Coils.ReadSensor)
{
PYModule_ScanSensor(&DallasBus);
}
else
{
scan_cnt = 0;
PYModule_ReadSensor(&hdallas1, &pchsens);
MB_DATA.Coils.ReadSensor = 0;
}
// if(MB_DATA.Coils.ScanSensors)
// {
// PYModule_ScanSensor(&DallasBus);
// }
// else
// {
// scan_cnt = 0;
// }
if(MB_DATA.Coils.InitSensor)
{
PYModule_InitSensor(&pchsens);
@@ -93,11 +99,11 @@ void PYModule_FirstInit(void)
DallasBus.hdallas->onewire = &OW;
DallasBus.hdallas->ds_devices = DS;
PCHSens_InitModule(&hdallas1, &pchsens.module1, REG_PCH_NUMB_11|REG_PCH_DIODE_NUMB_1);
PCHSens_InitModule(&hdallas1, &pchsens.module2, REG_PCH_NUMB_12|REG_PCH_DIODE_NUMB_1);
PCHSens_InitModule(&hdallas1, &pchsens.module3, REG_PCH_NUMB_21|REG_PCH_DIODE_NUMB_1);
PCHSens_InitModule(&hdallas1, &pchsens.module4, REG_PCH_NUMB_22|REG_PCH_DIODE_NUMB_1);
PCHSens_InitModule(&hdallas1, &pchsens.module5, REG_PCH_NUMB_31|REG_PCH_DIODE_NUMB_1);
PCHSens_InitModule(&hdallas1, &pchsens.module6, REG_PCH_NUMB_32|REG_PCH_DIODE_NUMB_1);
// PCHSens_InitModule(&hdallas1, &pchsens.module2, REG_PCH_NUMB_12|REG_PCH_DIODE_NUMB_1);
// PCHSens_InitModule(&hdallas1, &pchsens.module3, REG_PCH_NUMB_21|REG_PCH_DIODE_NUMB_1);
// PCHSens_InitModule(&hdallas1, &pchsens.module4, REG_PCH_NUMB_22|REG_PCH_DIODE_NUMB_1);
// PCHSens_InitModule(&hdallas1, &pchsens.module5, REG_PCH_NUMB_31|REG_PCH_DIODE_NUMB_1);
// PCHSens_InitModule(&hdallas1, &pchsens.module6, REG_PCH_NUMB_32|REG_PCH_DIODE_NUMB_1);
/* Поиск неизвестных сенсоров */
PCHSens_FindUnknownSensors(&DallasBus);
@@ -184,10 +190,11 @@ void PYModule_InitSensor(PCHSens_TypeDef *pchsens)
if(PCHSens_GetSensorByLocation(pchsens, (PCHSens_LocationTypeDef)MB_DATA.HoldRegs.InitStruct.Location, &sensor) != HAL_OK)
return;
uint64_t connectROM = 0;
connectROM = ((uint64_t)(MB_DATA.HoldRegs.InitStruct.ROM[0]))<<48;
connectROM |= ((uint64_t)(MB_DATA.HoldRegs.InitStruct.ROM[1]))<<32;
connectROM |= ((uint64_t)(MB_DATA.HoldRegs.InitStruct.ROM[2]))<<16;
connectROM |= ((uint64_t)(MB_DATA.HoldRegs.InitStruct.ROM[3]));
connectROM = ((uint64_t)(__REV16(MB_DATA.HoldRegs.InitStruct.ROM[0])))<<48;
connectROM |= ((uint64_t)(__REV16(MB_DATA.HoldRegs.InitStruct.ROM[1])))<<32;
connectROM |= ((uint64_t)(__REV16(MB_DATA.HoldRegs.InitStruct.ROM[2])))<<16;
connectROM |= ((uint64_t)(__REV16(MB_DATA.HoldRegs.InitStruct.ROM[3])));
if(PCHSens_InitNewSensor(&hdallas1, sensor, connectROM) == HAL_OK)
{
PYModule_FillResponse(sensor, STATUS_OK);
@@ -208,7 +215,7 @@ void PYModule_DeInitSensor(PCHSens_TypeDef *pchsens)
if(PCHSens_GetSensorByLocation(pchsens, (PCHSens_LocationTypeDef)MB_DATA.HoldRegs.InitStruct.Location, &sensor) != HAL_OK)
return;
if(PCHSens_UndefineSensor(sensor) != HAL_OK)
if(PCHSens_UndefineSensor(sensor) == HAL_OK)
{
PYModule_FillResponse(sensor, STATUS_OK);
}