TEMPHMAP hmap = mapOpenAnyData(dbmname);
PANLOGASSERT(hmap, TESTNAME);
XIMAGEDESC imagedesc;
imagedesc.Width = 900; // Ширина строки в пикселах
imagedesc.Height = 700; // Число строк
imagedesc.Depth = 32; // Размер элемента в битах (8,15,16,24,32)
imagedesc.CellSize = 4; // Размер элемента(пиксела) в байтах
imagedesc.RowSize = (imagedesc.Width) * imagedesc.CellSize;// Ширина строки в байтах
char* bitsLinux = 0;
NEW_ARR(bitsLinux, char, imagedesc.RowSize * imagedesc.Height);
PANLOGASSERT(bitsLinux, TESTNAME);
imagedesc.Point = bitsLinux; // Адрес начала области пикселов
DFRAME frame = {-1376037, 1884768, -1375852, 1885051};
int ret = 0;
ret = mapPaintByFrameToXImage(hmap, &imagedesc, &frame, 700, 900, 1);
PANLOGASSERT(ret == 0, TESTNAME);
TEMPHOBJ info = mapCreateSiteObject(hmap, hmap);
PANLOGASSERT(info, TESTNAME);
ret = mapRegisterObjectByKey(info, "S1000000002");
PANLOGASSERT(ret, TESTNAME);
mapAppendPointPlane(info, -1375981, 1884727);
mapAppendPointPlane(info, -1375901.294358, 1884727.092931);
mapAppendPointPlane(info, -1375901.294358, 1884793.332672);
mapAppendPointPlane(info, -1375951.264689, 1884794.107406);
mapAppendPointPlane(info, -1375981, 1884727);
const uint32_t maxTimeWait = 15 * 60; // 15 минут максимум, чтобы не ждать вечно
uint32_t timeWait = 0;
while(1)
{
if (mapGetLoadState(hmap, hmap) == 0)
{
ret = mapCommitObjectAsNew(info);
int ret2 = mapPaintByFrameToXImage(hmap, &imagedesc, &frame, 700, 900, 1);
PANLOGASSERT(ret2, TESTNAME);
PANLOGASSERT(ret, TESTNAME);
break;
}
else
{
ret = mapCommitObjectAsNew(info);
PANLOGASSERT(ret == 0, TESTNAME);
}
SleepTheThread(1000);
#ifndef _DEBUG
PANLOGASSERT((++timeWait < maxTimeWait), TESTNAME);
#endif
}
ret = mapUpdatePointPlane(info, -1375015, 1884828, 3);
PANLOGASSERT(ret, TESTNAME);
ret = mapCommitObject(info);
PANLOGASSERT(ret, TESTNAME);
ret = mapDeleteObject(info);
PANLOGASSERT(ret, TESTNAME);
ret = mapGetObjectCount(hmap, 1);
PANLOGASSERT(ret > 5000, TESTNAME); |