New events for wildcard search
This commit is contained in:
		@@ -748,6 +748,173 @@ mbus_decode_manufacturer(u_char byte1, u_char byte2)
 | 
			
		||||
    return m_str;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char *
 | 
			
		||||
mbus_data_product_name(mbus_data_variable_header *header)
 | 
			
		||||
{
 | 
			
		||||
    static char buff[128];
 | 
			
		||||
    unsigned int manufacturer;
 | 
			
		||||
 | 
			
		||||
    if (header)
 | 
			
		||||
    {
 | 
			
		||||
        manufacturer = (header->manufacturer[1] << 8) + header->manufacturer[0];
 | 
			
		||||
 | 
			
		||||
        if (manufacturer == MBUS_VARIABLE_DATA_MAN_ACW) 
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x09:
 | 
			
		||||
                    strcpy(buff,"Itron CF Echo 2");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x0A:
 | 
			
		||||
                    strcpy(buff,"Itron CF 51");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x0B:
 | 
			
		||||
                    strcpy(buff,"Itron CF 55");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x0E:
 | 
			
		||||
                    strcpy(buff,"Itron BM +m");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x0F:
 | 
			
		||||
                    strcpy(buff,"Itron CF 800");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x14:
 | 
			
		||||
                    strcpy(buff,"Itron CYBLE M-Bus 1.4");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_SLB) 
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x02:
 | 
			
		||||
                    strcpy(buff,"Allmess Megacontrol CF-50");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x06:
 | 
			
		||||
                    strcpy(buff,"CF Compact / Integral MK MaXX");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_HYD) 
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x02:
 | 
			
		||||
                    strcpy(buff,"ABB F95 Typ US770");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_LUG) 
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x02:
 | 
			
		||||
                    strcpy(buff,"Landis & Gyr Ultraheat 2WR5");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x03:
 | 
			
		||||
                    strcpy(buff,"Landis & Gyr Ultraheat 2WR6");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x04:
 | 
			
		||||
                    strcpy(buff,"Landis & Gyr Ultraheat UH50");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x07:
 | 
			
		||||
                    strcpy(buff,"Landis & Gyr Ultraheat T230");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_ZRM)
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x81:
 | 
			
		||||
                    strcpy(buff,"Minol Minocal C2");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x82:
 | 
			
		||||
                    strcpy(buff,"Minol Minocal WR3");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_SVM) 
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x08:
 | 
			
		||||
                    strcpy(buff,"Elster F2");
 | 
			
		||||
                    break;
 | 
			
		||||
                case 0x09:
 | 
			
		||||
                    strcpy(buff,"Kamstrup SVM F22");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_SON) 
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x0D:
 | 
			
		||||
                    strcpy(buff,"Sontex Supercal 531");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_LSE)
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x99:
 | 
			
		||||
                    strcpy(buff,"Siemens WFH21");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_SPX) 
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x31:
 | 
			
		||||
                    strcpy(buff,"Sensus PolluTherm");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_ELS)
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x02:
 | 
			
		||||
                    strcpy(buff,"Elster TMP-A");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_NZR)
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x01:
 | 
			
		||||
                    strcpy(buff,"NZR DHZ 5/63");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_KAM)
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x08:
 | 
			
		||||
                    strcpy(buff,"Kamstrup Multical 601");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (manufacturer == MBUS_VARIABLE_DATA_MAN_EMH)
 | 
			
		||||
        {
 | 
			
		||||
            switch (header->version)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x00:
 | 
			
		||||
                    strcpy(buff,"EMH DIZ");
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return buff;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return "";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
//
 | 
			
		||||
// FIXED-LENGTH DATA RECORD FUNCTIONS
 | 
			
		||||
@@ -2172,6 +2339,7 @@ mbus_data_record_function(mbus_data_record *record)
 | 
			
		||||
    return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
///
 | 
			
		||||
/// For fixed-length frames, return a string describing the type of value (stored or actual)
 | 
			
		||||
///
 | 
			
		||||
@@ -3079,6 +3247,10 @@ mbus_data_variable_header_xml(mbus_data_variable_header *header)
 | 
			
		||||
                mbus_decode_manufacturer(header->manufacturer[0], header->manufacturer[1]));               
 | 
			
		||||
        len += snprintf(&buff[len], sizeof(buff) - len, "        <Version>%d</Version>\n", header->version);
 | 
			
		||||
        
 | 
			
		||||
        mbus_str_xml_encode(str_encoded, mbus_data_product_name(header), sizeof(str_encoded));
 | 
			
		||||
        
 | 
			
		||||
        len += snprintf(&buff[len], sizeof(buff) - len, "        <ProductName>%s</ProductName>\n", str_encoded);
 | 
			
		||||
        
 | 
			
		||||
        mbus_str_xml_encode(str_encoded, mbus_data_variable_medium_lookup(header->medium), sizeof(str_encoded)); 
 | 
			
		||||
        
 | 
			
		||||
        len += snprintf(&buff[len], sizeof(buff) - len, "        <Medium>%s</Medium>\n", str_encoded);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user