Здравствуйте.
Правильнее было бы проверять код ответа, а затем, в зависимости от кода, работать с результатом. Измените код скрипта "GetReturn" на такой:
begin
if Response.Code <> 200 then
begin
AddMessage(Now, mkWarning,
'Code = ' + IntToStr(Response.Code) + ', ' +
'Tag = ' + IntToStr(Response.Tag) + ', ' +
'Error = ' + Response.Text,FALSE, FALSE);
Exit;
end;
case Response.Tag of
77:
begin
AddMessage(Now, mkMessage, 'Tag = 77, Text = ' + Response.Text, FALSE, FALSE);
Table5.GetCell(1, 0).Text := Response['SystemPoll']['PowerVoltage'].AsStr + ' v';
Table5.GetCell(1, 1).Text := Response['SystemPoll']['Temperature'].AsStr + ' °С';
end;
78:
begin
AddMessage(Now, mkMessage, 'Tag = 78, Text = ' + Response.Text, FALSE, FALSE);
Table5.GetCell(1, 2).Text := Response['ControlPoll']['Signal']['dBm'].AsStr + ' dBm';
Table5.GetCell(1, 3).Text := Response['ControlPoll']['Signal']['Percent'].AsStr + ' %';
Table5.GetCell(1, 4).Text := '-'+Response['ControlPoll']['Balance'].AsStr + ' р.';
end;
else
AddMessage(Now, mkWarning, 'Unknown tag! Tag = ' + IntToStr(Response.Tag), FALSE, FALSE);
end;
Text4.Text := DateTimeToStr(now);
end.
Сохраните и перезапустите проект. После этого что-то изменилось, или данные разных запросов всё равно путаются? Если путаются, то вышлите скрин.
еще 5 вернулись с ошибкой Time Out.
Ошибка "Time Out" возникает если сервер скады не получил ответ от HTTP-сервера в течение 5 секунд. Это время можно изменить
через SetTimeouts, например:
aHTTP.SetTimeouts(8000, 10000); // 8 сек. на подключение, 10 сек. на чтение
Это максимальная ширина окна "подсказки", весь текст описания не вмещается.
Да, возможно в будущем добавим ширину. Если написать "AddMessage" и открыть скобку, то полный список параметров и их типов отобразится в нижнем правом углу редактора. Аналогично его можно отобразить установив курсор после открывающейся скобки и нажать "Ctrl + Shift + Пробел". Также описание процедуры
есть в руководстве.