diff --git a/lib/onewire_master.h b/lib/onewire_master.h index f339b68..650fc0e 100644 --- a/lib/onewire_master.h +++ b/lib/onewire_master.h @@ -99,3 +99,289 @@ bool onewire_master_function_read(uint8_t function, uint8_t* data, uint32_t bits * @return if operation succeeded */ bool onewire_master_function_write(uint8_t function, uint8_t* data, uint32_t bits); + +/** device corresponding to a family code + */ +struct onewire_family_code_t { + uint8_t code; + const char* device; +}; + +/** list of possible devices corresponding to the family code + * sources: + * - http://owfs.org/index.php?page=family-code-list + * - http://owfs.sourceforge.net/family.html + * - https://www.maximintegrated.com/en/app-notes/index.mvp/id/155 + * - https://github.com/owfs/owfs-doc/wiki/1Wire-Device-List + * - IDs seen or reported + */ +static const struct onewire_family_code_t onewire_family_codes[] = { + { + .code = 0x01, + .device = "DS1990R/DS2401/DS2411/DS2490A", + }, + { + .code = 0x02, + .device = "DS1991/DS1425", + }, + { + .code = 0x04, + .device = "DS1994/DS2404", + }, + { + .code = 0x05, + .device = "DS2405", + }, + { + .code = 0x06, + .device = "DS1993", + }, + { + .code = 0x08, + .device = "DS1992", + }, + { + .code = 0x09, + .device = "DS1982/DS2502/DS2703/DS2704", + }, + { + .code = 0x0a, + .device = "DS1995", + }, + { + .code = 0x0b, + .device = "DS1985/DS2505", + }, + { + .code = 0x0c, + .device = "DS1996", + }, + { + .code = 0x0f, + .device = "DS1986/DS2506", + }, + { + .code = 0x10, + .device = "DS1920/DS18S20", + }, + { + .code = 0x12, + .device = "DS2406/DS2407", + }, + { + .code = 0x14, + .device = "DS1971/DS2430A", + }, + { + .code = 0x16, + .device = "DS1954/DS1957", + }, + { + .code = 0x18, + .device = "DS1963S/DS1962", + }, + { + .code = 0x1a, + .device = "DS1963L", + }, + { + .code = 0x1b, + .device = "DS2436", + }, + { + .code = 0x1c, + .device = "DS28E04-100", + }, + { + .code = 0x1d, + .device = "DS2423", + }, + { + .code = 0x1e, + .device = "DS2437", + }, + { + .code = 0x1f, + .device = "DS2409", + }, + { + .code = 0x20, + .device = "DS2450", + }, + { + .code = 0x21, + .device = "DS1921", + }, + { + .code = 0x22, + .device = "DS1922", + }, + { + .code = 0x23, + .device = "DS1973/DS2433", + }, + { + .code = 0x24, + .device = "DS1904/DS2415", + }, + { + .code = 0x26, + .device = "DS2438", + }, + { + .code = 0x27, + .device = "DS2417", + }, + { + .code = 0x28, + .device = "DS18B20", + }, + { + .code = 0x29, + .device = "DS2408", + }, + { + .code = 0x2c, + .device = "DS2890", + }, + { + .code = 0x2d, + .device = "DS1972/DS2431", + }, + { + .code = 0x2e, + .device = "DS2770", + }, + { + .code = 0x2f, + .device = "DS28E01-100", + }, + { + .code = 0x30, + .device = "DS2760/DS2761/DS2762", + }, + { + .code = 0x31, + .device = "DS2720", + }, + { + .code = 0x32, + .device = "DS2780", + }, + { + .code = 0x33, + .device = "DS1961S/DS2432", + }, + { + .code = 0x34, + .device = "DS2703", + }, + { + .code = 0x35, + .device = "DS2755", + }, + { + .code = 0x36, + .device = "DS2740", + }, + { + .code = 0x37, + .device = "DS1977", + }, + { + .code = 0x3a, + .device = "DS2413", + }, + { + .code = 0x3b, + .device = "DS1825/MAX31826/MAX31850", + }, + { + .code = 0x3d, + .device = "DS2781", + }, + { + .code = 0x41, + .device = "DS1922/DS1923/DS2422", + }, + { + .code = 0x42, + .device = "DS28EA00", + }, + { + .code = 0x43, + .device = "DS28EC20", + }, + { + .code = 0x44, + .device = "DS28E10", + }, + { + .code = 0x51, + .device = "DS2751", + }, + { + .code = 0x7e, + .device = "EDS00xx", + }, + { + .code = 0x81, + .device = "DS1420/DS2490R/DS2490B", + }, + { + .code = 0x82, + .device = "DS1425", + }, + { + .code = 0x84, + .device = "DS2404S", + }, + { + .code = 0x89, + .device = "DS1982U/DS2502", + }, + { + .code = 0x8b, + .device = "DS1985U/DS2505", + }, + { + .code = 0x8f, + .device = "DS1986U/DS2506", + }, + { + .code = 0xa0, + .device = "mRS001", + }, + { + .code = 0xa1, + .device = "mVM001", + }, + { + .code = 0xa2, + .device = "mCM001", + }, + { + .code = 0xa6, + .device = "mTS017", + }, + { + .code = 0xb1, + .device = "mTC001", + }, + { + .code = 0xb2, + .device = "mAM001", + }, + { + .code = 0xb3, + .device = "DS2432/mTC002", + }, + { + .code = 0xfc, + .device = "BAE0910/BAE0911", + }, + { + .code = 0xff, + .device = "Swart LCD", + } +};