function decode_di($device_id) { $tags = explode(":", $device_id); $ret_arr = array(); foreach ($tags as $tag) { if (!is_valid_di_tag($tag)) { $ret_arr['device_name'] = "INVALID because not is_valid_di_tag({$tag})"; return $ret_arr; } $tag_name = substr($tag, 0, 2); $tag_value_encoded = substr($tag, 2); $tag_value = decode_di_tag_value($tag_value_encoded); if (!$tag_value) { $ret_arr['device_name'] = "INVALID because not decode_di_tag_value({$tag_name},{$tag_value_encoded},{$tag_value})"; return $ret_arr; } $ret_arr[$tag_name] = $tag_value; } $device_name = "*unavailable*"; if (isset($ret_arr['OC']) && isset($ret_arr['OD'])) { $device_name = get_device_name_by_oc_od($ret_arr['OC'], $ret_arr['OD']); } $ret_arr['device_name'] = $device_name; return $ret_arr; }
function get_device_name_by_oc_od($oc, $od) { $name = "Unknown ({$oc}/{$od})"; # HANDSPRING devices if ($oc == 'hspr' && $od == decode_di_tag_value("0000000B")) { $name = "Treo 180"; } if ($oc == 'hspr' && $od == decode_di_tag_value("0000000D")) { $name = "Treo 270"; } if ($oc == 'hspr' && $od == decode_di_tag_value("0000000E")) { $name = "Treo 300"; } if ($oc == 'hspr' && $od == 'H101') { $name = "Treo 600"; } if ($oc == 'hspr' && $od == 'H102') { $name = "Treo 650 (?)"; } if ($oc == 'hspr' && $od == 'H201') { $name = "Treo 600 Simulator"; } if ($oc == 'hspr' && $od == 'H202') { $name = "Treo 650 Simulator"; } # SONY devices if ($oc == 'sony' && $od == 'mdna') { $name = "PEG-T615C"; } if ($oc == 'sony' && $od == 'prmr') { $name = "PEG-UX50"; } if ($oc == 'sony' && $od == 'atom') { $name = "PEG-TH55"; } if ($oc == 'sony' && $od == 'mdrd') { $name = "PEG-NX80V"; } if ($oc == 'sony' && $od == 'tldo') { $name = "PEG-NX73V"; } if ($oc == 'sony' && $od == 'vrna') { $name = "PEG-TG50"; } if ($oc == 'sony' && $od == 'crdb') { $name = "PEG-NX60, NX70V"; } if ($oc == 'sony' && $od == 'mcnd') { $name = "PEG-SJ33"; } if ($oc == 'sony' && $od == 'glps') { $name = "PEG-SJ22"; } if ($oc == 'sony' && $od == 'goku') { $name = "PEG-TJ35"; } if ($oc == 'sony' && $od == 'luke') { $name = "PEG-TJ37"; } if ($oc == 'sony' && $od == 'ystn') { $name = "PEG-N610C"; } if ($oc == 'sony' && $od == 'rdwd') { $name = "PEG-NR70, NR70V"; } if ($oc == 'sony' && $od == 'leia') { $name = "PEG-TJ27"; } # MISC devices if ($oc == 'psys') { $name = "simulator"; } if ($oc == 'trgp' && $od == 'trg1') { $name = "TRG Pro"; } if ($oc == 'trgp' && $od == 'trg2') { $name = "HandEra 330"; } if ($oc == 'smsn' && $od == 'phix') { $name = "SPH-i300"; } if ($oc == 'smsn' && $od == 'Phx2') { $name = "SPH-I330"; } if ($oc == 'smsn' && $od == 'blch') { $name = "SPH-i500"; } if ($oc == 'qcom' && $od == 'qc20') { $name = "QCP 6035"; } if ($oc == 'kwc.' && $od == '7135') { $name = "QCP 7135"; } if ($oc == 'Tpwv' && $od == 'Rdog') { $name = "Tapwave Zodiac 1/2"; } if ($oc == 'gsRl' && $od == 'zicn') { $name = "XploreG18"; } # PALM devices if ($oc == 'palm' && $od == 'hbbs') { $name = "Palm m130"; } if ($oc == 'palm' && $od == 'ecty') { $name = "Palm m505"; } if ($oc == 'palm' && $od == 'lith') { $name = "Palm m515"; } if ($oc == 'Palm' && $od == 'Zpth') { $name = "Zire 71"; } if ($oc == 'Palm' && $od == 'Zi72') { $name = "Zire 72"; } if ($oc == 'Palm' && $od == 'Zi21') { $name = "Zire 21"; } if ($oc == 'Palm' && $od == 'Zi22') { $name = "Zire 31"; } if ($oc == 'palm' && $od == 'MT64') { $name = "Tungsten C"; } if ($oc == 'palm' && $od == 'atc1') { $name = "Tungsten W"; } if ($oc == 'Palm' && $od == 'Cct1') { $name = "Tungsten E"; } if ($oc == 'Palm' && $od == 'Frg1') { $name = "Tungsten T"; } if ($oc == 'Palm' && $od == 'Frg2') { $name = "Tungsten T2"; } if ($oc == 'Palm' && $od == 'Arz1') { $name = "Tungsten T3"; } if ($oc == 'Palm' && $od == 'TnT5') { $name = "Tungsten T5"; } return $name; }