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 validate_di($device_id) { $tags = explode(":", $device_id); foreach ($tags as $tag) { if (!is_valid_di_tag($tag)) { report_error(ERR_INVALID_DI); exit; } } }