$value) { if($hex_linecount <= 6) // INFO SPACE (HEADER) { switch($hex_linecount) { case 0: $value; $xml_array['HEADER'][0][1]; break; case 1: $value; $xml_array['HEADER'][1][1]; break; case 2: $value; $xml_array['HEADER'][2][1]; break; case 3: $value; $xml_array['HEADER'][3][1]; break; case 4: $value; $xml_array['HEADER'][4][1]; break; case 5: $value; $xml_array['HEADER'][5][1]; break; case 6: $value; ($value==12)?$xml_array['HEADER'][6][1]:$xml_array['HEADER'][7][1]; break; } } elseif (6 < $hex_linecount && $hex_linecount <= 10) // ADDRESS MSB SPACE { switch($hex_linecount) { case 7: $value; $xml_array['MSB1'][$value][0]; $xml_array['MSB1'][$value][2]; break; case 8: $value; $xml_array['MSB2'][$value][0]; $xml_array['MSB2'][$value][2]; break; case 9: $value; $xml_array['LSB'][$value][0]; $xml_array['LSB'][$value][2]; $name = $xml_array['LSB'][$value][0]; $abrv = $xml_array['LSB'][$value][1]; $LSB_value = strtoupper($value); break; case 10: $value; $xml_array['MSB3'][$value][0]; $xml_array['MSB3'][$value][2]; break; } } elseif ($value == 'F7') // EOX { $hex_linecount=0; $data_linecount=0; } elseif ($hex_array[$index+1] == 'F7') // CHECKSUM SPACE { $checksum = $data_size % hexdec(80); if($checksum!=0) $checksum = hexdec(80) - $checksum; $checksum = strtoupper(dechex($checksum)); if(strlen($checksum)<2) $checksum = "0" . $checksum; $error = "Checksum "; if($value==$checksum) { $error .= "correct"; } else { $error .= "error!"; } $error .= " ($checksum)"; $data_size=0; } else { $DATA_value = strtoupper(dechex($data_linecount)); if(strlen($DATA_value)<2) $DATA_value = "0" . $DATA_value; $DATA_next_value = strtoupper(dechex($data_linecount + 1)); if(strlen($DATA_next_value)<2) $DATA_next_value = "0" . $DATA_next_value; $DATA_previous_value = strtoupper(dechex($data_linecount - 1)); if(strlen($DATA_previous_value)<2) $DATA_previous_value = "0" . $DATA_previous_value; $desc = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value][2]; if ($xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA']['assign'][2]) // ASSIGN TARGETS { if(eregi(":", $assign_target_desc)) { $assign_target_array = explode(":", $assign_target_desc); } else { $assign_target_array = explode(" ", $assign_target_desc); if(eregi("\(", $assign_target_array[1])) { $pos = strpos($assign_target_array[1], "("); $assign_target_array[1] = substr($assign_target_array[1], 0, $pos); } } $assign_target = trim($assign_target_array[0]); $assign_trigger = trim($assign_target_array[1]); if(eregi("FX", $assign_target_array[0])) { $pos = strpos($assign_target_desc, ":"); $assign_trigger = trim(substr($assign_target_desc, $pos+1, strlen($assign_target_desc))); } foreach ($xml_array['LSB'] as $index_assign_target => $value_assign_target) { if(eregi($assign_target, $xml_array['LSB'][$index_assign_target][0]) || eregi($assign_target, $xml_array['LSB'][$index_assign_target][1])) { foreach($xml_array['LSB'][$index_assign_target]['DATA'] as $data_assign_index => $data_assign_value) { //if(eregi($assign_trigger, $xml_array['LSB'][$index_assign_target]['DATA'][$data_assign_index]['DATA'][$value][2])) if($assign_trigger == $xml_array['LSB'][$index_assign_target]['DATA'][$data_assign_index]['DATA'][$value][2]) { $LSB_value_tmp = $LSB_value; $LSB_value = $index_assign_target; $DATA_value_tmp = $DATA_value; $DATA_value = $data_assign_index; $value_tmp = $value; $index_tmp = $index; } //elseif(eregi($assign_trigger, $xml_array['LSB'][$index_assign_target]['DATA'][$data_assign_index][2])) elseif($assign_trigger == $xml_array['LSB'][$index_assign_target]['DATA'][$data_assign_index][2]) { $LSB_value_tmp = $LSB_value; $LSB_value = $index_assign_target; $DATA_value_tmp = $DATA_value; $DATA_value = $data_assign_index; $value_tmp = $value; $value = $hex_array[$index+1]; $index_tmp = $index; $index = $index+1; } } } } } if( !$xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['PARAM'][$value][0] && $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['PARAM'][$value][0]!="0" && !$xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA'][$value]['PARAM'][$hex_array[$index+1]][0] ) { if ($xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['PARAM']['range'][0]) // PARAM RANGE { $range_string = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['PARAM']['range'][0]; $data_param_desc = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['PARAM']['range'][1]; $range_array = explode('/', $range_string); $data_min = hexdec($range_array[0]); $data_max = hexdec($range_array[1]); $data_range = $data_max - $data_min; $range_min = $range_array[2]; $range_max = $range_array[3]; $range = $range_max - $range_min; $data_param = ($range_min - $data_min) + (hexdec($value) / ($data_range / $range)); if($data_param == 0) $data_param = "0"; } elseif ($xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA'][$value]['PARAM']['range'][0]) //NESTED PARAM RANGE { $range_string = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA'][$value]['PARAM']['range'][0]; $data_param_desc = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA'][$value]['PARAM']['range'][1]; $range_array = explode('/', $range_string); $data_min = hexdec($range_array[0]); $data_max = hexdec($range_array[1]); $data_range = $data_max - $data_min; $range_min = $range_array[2]; $range_max = $range_array[3]; $range = $range_max - $range_min; $data_param = ($range_min - $data_min) + (hexdec($hex_array[$index + 1]) / ($data_range / $range)); if($data_param == 0) $data_param = "0"; } elseif ($xml_array['LSB'][$LSB_value]['DATA']['range']['PARAM'][$value][0]) // DATA RANGE { $data_param = $xml_array['LSB'][$LSB_value]['DATA']['range']['PARAM'][$value][0]; $data_param_desc = $xml_array['LSB'][$LSB_value]['DATA']['range']['PARAM'][$value][1]; } else { $data_param = ""; $data_param_desc = ""; } } else // ALL OTHER KNOWN DATA { if($xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA'][$value]['PARAM'][$hex_array[$index+1]][0]) { $data_param = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA'][$value]['PARAM'][$hex_array[$index+1]][0]; $data_param_desc = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['DATA'][$value]['PARAM'][$hex_array[$index+1]][1]; } else { $data_param = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['PARAM'][$value][0]; $data_param_desc = $xml_array['LSB'][$LSB_value]['DATA'][$DATA_value]['PARAM'][$value][1]; } } if ($data_param!="" || $data_param_desc!="") { $setting[$name][] = array($desc, $data_param, $data_param_desc, $abrv); if ($data_linecount == 2) $assign_target_desc = $data_param; // TO INDETIFIE ASSIGN TARGET && TRIGGER } $data_linecount++; } if($LSB_value_tmp) { $LSB_value = $LSB_value_tmp; unset($LSB_value_tmp); $DATA_value = $DATA_value_tmp; unset($DATA_value_temp); $value = $value_tmp; unset($value_temp); $index = $index_tmp; unset($index_temp); } if(dechex($data_linecount)=='80') { $LSB_value = strtoupper(dechex(hexdec($LSB_value) + 1)); if(strlen($LSB_value)<2) $LSB_value = "0" . $LSB_value; $data_linecount = 0; } if($hex_linecount > 6 && $hex_array[$index+1] != 'F7') $data_size = $data_size + hexdec($value); if ($value != 'F7') $hex_linecount++; } $num_assign = 0; $fx_status['Assign Input Sensibility'] = "Off"; $assign_active_target = array(); foreach($setting as $setting_index => $setting_value) { $count_lines=0; if($setting_index=="Pre Amp/Speaker") { $count_lines = $count_lines + 2; } for($set=0;$set 0) { $fx_status['Assign Input Sensibility'] = "On"; } foreach($assign_active_target as $value) { foreach($fx_status as $fx_status_index => $fx_status_value) { if( eregi($fx_status_value[1], $value) ) { $fx_status[$fx_status_index][0] = "On"; } } } $_SESSION['DEBUG'] = $hex_array; $_SESSION['info']['error'] = $error; $_SESSION['info']['name'] = $_FILES['hex_file']['name'];; $_SESSION['info']['size'] = $_FILES['hex_file']['size'];; $_SESSION['fx_status'] = $fx_status; $_SESSION['fx'] = $fx; ?>