Добавлен статус для окончания скана
This commit is contained in:
@@ -93,10 +93,10 @@ void PYModule_FirstInit(void)
|
||||
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_13|REG_PCH_DIODE_NUMB_1);
|
||||
PCHSens_InitModule(&hdallas1, &pchsens.module4, REG_PCH_NUMB_21|REG_PCH_DIODE_NUMB_1);
|
||||
PCHSens_InitModule(&hdallas1, &pchsens.module5, REG_PCH_NUMB_22|REG_PCH_DIODE_NUMB_1);
|
||||
PCHSens_InitModule(&hdallas1, &pchsens.module6, REG_PCH_NUMB_23|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);
|
||||
@@ -113,7 +113,7 @@ void PYModule_ScanSensor(PCHSens_DallasBusHandle *hbus)
|
||||
if (scan_cnt >= hbus->hdallas->onewire->RomCnt)
|
||||
{
|
||||
scan_cnt = hbus->hdallas->onewire->RomCnt;
|
||||
PYModule_FillResponse(&sensor, 0);
|
||||
PYModule_FillResponse(&sensor, STATUS_SCAN_END);
|
||||
return;
|
||||
}
|
||||
if(Dallas_ReadScratchpad(&sensor.sens) == HAL_OK)
|
||||
@@ -267,6 +267,16 @@ void PYModule_FillResponse(PCHSens_SensorTypeDef* sensor, Sensor_ResponseStatusT
|
||||
MB_DATA.InRegs.Response.Status = status;
|
||||
break;
|
||||
|
||||
case STATUS_SCAN_END:
|
||||
MB_DATA.InRegs.Response.Location = 0;
|
||||
MB_DATA.InRegs.Response.Config = 0;
|
||||
MB_DATA.InRegs.Response.ROM[0] = 0;
|
||||
MB_DATA.InRegs.Response.ROM[1] = 0;
|
||||
MB_DATA.InRegs.Response.ROM[2] = 0;
|
||||
MB_DATA.InRegs.Response.ROM[3] = 0;
|
||||
MB_DATA.InRegs.Response.Status = status;
|
||||
break;
|
||||
|
||||
// error read by location
|
||||
case STATUS_ERR_READ_LOCATION:
|
||||
// fill only location from holdreg
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
typedef enum
|
||||
{
|
||||
STATUS_OK = 0x01,
|
||||
STATUS_SCAN_END = 0x11,
|
||||
STATUS_ERR_READ_LOCATION = 0xF0,
|
||||
STATUS_ERR_READ_ROM = 0x0F,
|
||||
STATUS_ERR_INIT = 0xAA,
|
||||
|
||||
@@ -45,10 +45,10 @@
|
||||
/* Варианты параметров в UserBytes */
|
||||
#define REG_PCH_NUMB_11 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
#define REG_PCH_NUMB_12 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
#define REG_PCH_NUMB_13 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (3 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
#define REG_PCH_NUMB_21 ((2 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
#define REG_PCH_NUMB_22 ((2 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
#define REG_PCH_NUMB_23 ((2 << REG_PCH_NUMB_DIGIT_1_Pos) | (3 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
#define REG_PCH_NUMB_31 ((3 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
#define REG_PCH_NUMB_32 ((3 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos))
|
||||
|
||||
#define REG_PCH_DIODE_NUMB_1 ((0 << REG_PCH_DIOD_PHASE_Pos) | (1 << REG_PCH_MODULE_NUMB_Pos))
|
||||
#define REG_PCH_DIODE_NUMB_2 ((0 << REG_PCH_DIOD_PHASE_Pos) | (2 << REG_PCH_MODULE_NUMB_Pos))
|
||||
@@ -97,7 +97,7 @@
|
||||
#define IS_REG_PCH_NUMB(_REG_) (IS_REG_PCH_NUMB_DIGIT_1(_REG_) && IS_REG_PCH_NUMB_DIGIT_2(_REG_))
|
||||
/*!< @brief Получить параметр "Первая цифра номера преобразователя частоты" */
|
||||
#define IS_REG_PCH_NUMB_DIGIT_1(_REG_) (((_REG_)->param.PCHdig1 <= REG_PCH_NUMB_DIGIT_1_MAX) && ((_REG_)->param.PCHdig1 >= REG_PCH_NUMB_DIGIT_1_MIN))
|
||||
/*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" s*/
|
||||
/*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" */
|
||||
#define IS_REG_PCH_NUMB_DIGIT_2(_REG_) (((_REG_)->param.PCHdig2 <= REG_PCH_NUMB_DIGIT_2_MAX) && ((_REG_)->param.PCHdig2 >= REG_PCH_NUMB_DIGIT_2_MIN))
|
||||
/*!< @brief Получить параметр "ЗИП/не ЗИП" */
|
||||
#define IS_REG_ZIP(_REG_) (GET_REG_ZIP(_REG_))
|
||||
|
||||
Reference in New Issue
Block a user