Adjusted serial parsing to detect model
There are some MI-1500 models which are compatible with the Gen3 protocol. The adjustment takes this into account.
This commit is contained in:
parent
1cbff8afca
commit
223b7ff3ce
@ -5,7 +5,22 @@ HM_1CH::HM_1CH(uint64_t serial)
|
||||
|
||||
bool HM_1CH::isValidSerial(uint64_t serial)
|
||||
{
|
||||
return serial >= 0x112100000000 && serial <= 0x112199999999;
|
||||
// serial >= 0x112100000000 && serial <= 0x112199999999
|
||||
|
||||
uint8_t preId[2];
|
||||
preId[0] = (uint8_t)(serial >> 40);
|
||||
preId[1] = (uint8_t)(serial >> 32);
|
||||
|
||||
if ((uint8_t)(((((uint16_t)preId[0] << 8) | preId[1]) >> 4) & 0xff) == 0x12) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((((preId[1] & 0xf0) == 0x10) || ((preId[1] & 0xf0) == 0x20))
|
||||
&& (((preId[0] == 0x10) && (preId[1] == 0x22)) || ((preId[0] == 0x11) && (preId[1] == 0x21)))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
String HM_1CH::typeName()
|
||||
|
||||
@ -5,7 +5,22 @@ HM_2CH::HM_2CH(uint64_t serial)
|
||||
|
||||
bool HM_2CH::isValidSerial(uint64_t serial)
|
||||
{
|
||||
return serial >= 0x114100000000 && serial <= 0x114199999999;
|
||||
// serial >= 0x114100000000 && serial <= 0x114199999999
|
||||
|
||||
uint8_t preId[2];
|
||||
preId[0] = (uint8_t)(serial >> 40);
|
||||
preId[1] = (uint8_t)(serial >> 32);
|
||||
|
||||
if ((uint8_t)(((((uint16_t)preId[0] << 8) | preId[1]) >> 4) & 0xff) == 0x14) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((((preId[1] & 0xf0) == 0x30) || ((preId[1] & 0xf0) == 0x40))
|
||||
&& (((preId[0] == 0x10) && (preId[1] == 0x42)) || ((preId[0] == 0x11) && (preId[1] == 0x41)))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
String HM_2CH::typeName()
|
||||
|
||||
@ -5,12 +5,27 @@ HM_4CH::HM_4CH(uint64_t serial)
|
||||
|
||||
bool HM_4CH::isValidSerial(uint64_t serial)
|
||||
{
|
||||
return serial >= 0x116100000000 && serial <= 0x116199999999;
|
||||
// serial >= 0x116100000000 && serial <= 0x116199999999
|
||||
|
||||
uint8_t preId[2];
|
||||
preId[0] = (uint8_t)(serial >> 40);
|
||||
preId[1] = (uint8_t)(serial >> 32);
|
||||
|
||||
if ((uint8_t)(((((uint16_t)preId[0] << 8) | preId[1]) >> 4) & 0xff) == 0x16) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((((preId[1] & 0xf0) == 0x50) || ((preId[1] & 0xf0) == 0x60))
|
||||
&& (((preId[0] == 0x10) && (preId[1] == 0x62)) || ((preId[0] == 0x11) && (preId[1] == 0x61)))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
String HM_4CH::typeName()
|
||||
{
|
||||
return String(F("HM-1200, HM-1500"));
|
||||
return String(F("HM-1000, HM-1200, HM-1500"));
|
||||
}
|
||||
|
||||
const byteAssign_t* HM_4CH::getByteAssignment()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user