Бета тестирование версии 4.4

Avatar
  • обновлен
Сюда постим все, что касается тестирования версии 4.4:
ошибки, недоработки, пожелания.
Avatar
SIMP Tech (Сергей)
Добрый день, Анатолий.

Не подскажите, в чем проблема?

Анатолий, попробуйте в качестве теста напрямую указать имя канала в функции - [error = StreamReadFromDatabase(dtBegin, dtEnd, имя канала, Stream)]
Проверим одну догадку.
Avatar
Измениил

error = StreamReadFromDatabase(dtBegin, dtEnd, "Сигнальный", Stream);

результат остался неизменным
Avatar
SIMP Tech (Сергей)
Измениил

error = StreamReadFromDatabase(dtBegin, dtEnd, "Сигнальный", Stream);

результат остался неизменным

ок. спс. В базе за этот период данные есть? В "просмотре архивов" экспортируйте данные в csv,и на почту к нам закиньте.
Avatar
да данные в базе есть
они были созданы функцией записи:

// функция записи в базу данных заданных значений с шагом 1 секунда в пределах одних суток
// возвращает 1 при удачной записи, возвращает 0 - при неудаче (см.пример ниже)
// i = SaveBasePer("Сигнальный", "10.06.2015 01:00:00", "10.06.2015 03:01:00", 77);
// if(i==1) {ShowMessageBox("Заголовок","Запись в базу завершена успешно!",1);} else {ShowMessageBox("Заголовок","Ошибка записи!",1);}

int SaveBasePer(string sName, string sBegin, string sEnd, int iPer)
{
string stroka = sBegin, sHour, sMin, sSec;
int iSec = StrToInt(Copy(sBegin,18,2));
int iMin = StrToInt(Copy(sBegin,15,2));
int iHour = StrToInt(Copy(sBegin,12,2));

if(sName=="") { ShowMessage("Ошибка! Не задано имя канала!"); return 0; }
if(GetQuality(sName)!=192) { ShowMessage("Ошибка! Проверьте правильность написания имени канала!"); return 0; }
ShowMessage("Все готово для начала процесса зааписи! \n Нажмите ОК и ожидайте сообщения об окончании процесса записи!");
do
{
SaveChannelToDB(sName, StringToDateTime(stroka, "dd.mm.yyyy hh:nn:ss") , iPer);
iSec = iSec + 1;
if(iSec==60) {iSec=0; iMin=iMin+1;}
if(iMin==60) {iMin=0; iHour=iHour+1;}
sHour = IntToStr(iHour); if(iHour<10) sHour = "0" + sHour;
sMin = IntToStr(iMin); if(iMin<10) sMin = "0" + sMin;
sSec = IntToStr(iSec); if(iSec<10) sSec = "0" + sSec;
stroka = Copy(sBegin,1,11) + sHour + ":" + sMin + ":" + sSec;
}
while (stroka < sEnd);
return 1;
}

экспортный файл отправил почтой
Avatar
SIMP Tech (Сергей)
Добрый день, Анатолий.

На первый взгляд в скрипах все нормально. Давайте попробуем такой вариант:

[spoiler]
// Функция чтения базы данных и запись статистических данных в текстовый файл // возвращает 1 при удачном завершении, соответственно 0 - при неудаче // i = Statistika("Сигнальный", "10.06.2015 01:00:00", "10.06.2015 03:00:00"); // if(i==1) {ShowMessageBox("—","Всё готово!",1);} else {ShowMessageBox("—","Произошла ошибка!",1);} int Statistika(string sName, string sBegin, string sEnd) { string stroka; int count=0, i, iValue, iVozvrat=1; TMemoryStream Stream; word error; TDateTime dtBegin = StrToDateTime(sBegin); TDateTime dtEnd = StrToDateTime(sEnd); TDateTime dtDate; ShowMessageBox("—", "Приступаем!", 1); Stream = TMemoryStream.Create; error = StreamReadFromDatabase(dtBegin, dtEnd, sName, Stream); if(error == 0) { stream.SaveToFile("d:\\stream.bin"); count = GetCountRecordToStream(Stream); for(i=0;i<count;i++) { GetValueFromStream(Stream, dtDate, iValue); stroka = " " + DateTimeToStr(dtDate) + " : " + IntToStr(iValue); SaveToTxtFile("d:\\history.txt", stroka); } } else { ShowMessageBox("—", "Ошибка считывания базы!", 1); iVozvrat=0; } Stream.free; return iVozvrat; } [/spoiler]

результирующий файл stream.bin пришлите на почту.
Avatar
Михаил
Добрый день!
После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?
Avatar
SIMP Tech (Сергей)
День добрый.

После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?

Т.е. если я правильно понял то Simp в режиме разработчика, после прошествия часа работы выкидывает ошибку? В режиме с лицензией ошибка не появляется?
Avatar
Михаил
На лицензированной станции еще не обновлял.
Avatar
SIMP Tech (Сергей)
После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?

Т.е. если я правильно понял то Simp в режиме разработчика, после прошествия часа работы выкидывает ошибку?
Avatar
Михаил
Да. И я заметил, что монитор не выгружается. Только принудительно - закрытием приложения.