Показать сообщение отдельно
  #1 (permalink)  
Старый 05.07.2012, 16:31
Новичок на форуме
Отправить личное сообщение для Rock877 Посмотреть профиль Найти все сообщения от Rock877
 
Регистрация: 05.07.2012
Сообщений: 4

математические вычисления
К сожалению не силен в JavaScript, поэтому надеюсь на Вашу помощь.
Суть проблемы следующая. Есть устройство, с которого мы хотим получать данные посредством сети интернет и протокола НТТР. Для этого была создана НТМL страничка, исходный код которой представлен. На устройство при нажатии кнопки «Обновить» посылается запрос вида:
GET/pXX
где ХХ – код/номер датчика.
В ответ от устройства приходит ответ:
ХХхУУУУ
где х – разделитель;
УУУУ – значение датчика в шестнадцатеричном виде (к примеру FFFF).
Это значение отображается в соответствующих INPUT боксах. До сих пор все было хорошо и прекрасно работало.
Проблема возникла, когда встала необходимость перевести значение датчика УУУУ из шестнадцатиричного вида в десятичный и провести над этим числом элементарные математические операции (сложить, умножить, разделить).
Я не разрабатывал страницу и не имел дело с JavaScript, поэтому прошу помочь. Как это можно осуществить? Может быть есть какие примеры?
Исходный код страницы прилагаю.
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0020)http://192.168.0.30/ -->
<HTML><HEAD><TITLE>6u</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<SCRIPT type=text/javascript> 
url='http://192.168.0.30/';
 

 
jx = {
getHTTPObject : function() {
var http = false;
if(typeof ActiveXObject != 'undefined') {
try {http = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) {
try {http = new ActiveXObject("Microsoft.XMLHTTP");}
catch (E) {http = false;}
}
} else if (window.XMLHttpRequest) {
try {http = new XMLHttpRequest();}
catch (e) {http = false;}
}
return http;
},
load : function (url,callback,format) {
var http = this.init();
if(!http||!url) return;
if (http.overrideMimeType) http.overrideMimeType('text/xml');
if(!format) var format = "text";
format = format.toLowerCase();
 
http.open("GET", url, true);
http.onreadystatechange = function () {
if (http.readyState == 4){
if(http.status == 200) {
var result = "";
if(http.responseText) result = http.responseText;
if(format.charAt(0) == "j") {
	result = result.replace(/[\n\r]/g,"");
	result = eval('('+result+')'); 
}
if(callback) callback(result);
} else {
if(error) error(http.status);
}
}
}
http.send(null);
},
init : function() {return this.getHTTPObject();}
}
lastRequestId = -1;
function ask_wrap(id)
{
ask(id);
}
function ask(id)
{
jx.load(url+'p'+id, update);
}
 
function update(ans)
{
(document.getElementById('p'+ans.charAt(0))).value= ans.slice(3);
}
 

 
</SCRIPT>
 
<META content="MSHTML 6.00.6000.20973" name=GENERATOR></HEAD>
<BODY>
<TABLE width="60%" border=1>
  <TR>
    <TH colspan="2">Датчики</TH>
  </TR>
  <TR>
    <TD width="30%">Датчик1</TD>
    <TD width="30%"><INPUT id=p0 value=-----> <INPUT onclick="ask_wrap('0')" type=button value=Обновить></TD></TR>
  <TR>
    <TD>Датчик2</TD>
    <TD><INPUT id=p1 value=-----> <INPUT onclick="ask_wrap('1')" type=button value=Обновить></TD></TR>
  <TR>
    <TD>Датчик3</TD>
    <TD><INPUT id=p2 value=-----> <INPUT onclick="ask_wrap('2')" type=button value=Обновить></TD></TR>
  </TABLE>
  </BODY></HTML>
Ответить с цитированием