mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-20 16:48:01 +02:00
Possibility to sum up only fractions of frames in the Zmq process
This commit is contained in:
@ -204,15 +204,15 @@ class moench03T1ZmqDataNew : public slsDetectorData<uint16_t> {
|
|||||||
|
|
||||||
|
|
||||||
virtual char *readNextFrame(ifstream &filebin, int& ff, int &np, char *data) {
|
virtual char *readNextFrame(ifstream &filebin, int& ff, int &np, char *data) {
|
||||||
char *retval=0;
|
/* char *retval=0; */
|
||||||
int nd;
|
/* int nd; */
|
||||||
int fnum = -1;
|
/* int fnum = -1; */
|
||||||
np=0;
|
np=0;
|
||||||
int pn;
|
/* int pn; */
|
||||||
|
|
||||||
|
|
||||||
if (ff>=0)
|
/* if (ff>=0) */
|
||||||
fnum=ff;
|
/* fnum=ff; */
|
||||||
|
|
||||||
if (filebin.is_open()) {
|
if (filebin.is_open()) {
|
||||||
if (filebin.read(data, 32*2*nSamples) ){
|
if (filebin.read(data, 32*2*nSamples) ){
|
||||||
|
@ -116,7 +116,7 @@ int main(int argc, char *argv[]) {
|
|||||||
int npx, npy;
|
int npx, npy;
|
||||||
det->getDetectorSize(npx, npy);
|
det->getDetectorSize(npx, npy);
|
||||||
|
|
||||||
|
int send_something=0;
|
||||||
|
|
||||||
|
|
||||||
int maxSize = npx*npy*2;//32*2*8192;//5000;//atoi(argv[3]);
|
int maxSize = npx*npy*2;//32*2*8192;//5000;//atoi(argv[3]);
|
||||||
@ -264,6 +264,13 @@ int main(int argc, char *argv[]) {
|
|||||||
uint32_t subFrameIndex = -1;
|
uint32_t subFrameIndex = -1;
|
||||||
int* flippedData = 0;
|
int* flippedData = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
uint64_t subframes=0;
|
||||||
|
//uint64_t isubframe=0;
|
||||||
|
uint64_t insubframe=0;
|
||||||
|
double subnorm=1;
|
||||||
|
uint64_t f0=-1, nsubframes=0;
|
||||||
|
|
||||||
uint64_t fileindex = -1;
|
uint64_t fileindex = -1;
|
||||||
string filename = "";
|
string filename = "";
|
||||||
// char* image = new char[size];
|
// char* image = new char[size];
|
||||||
@ -275,7 +282,7 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
char fname[10000];
|
char fname[10000];
|
||||||
// int length;
|
// int length;
|
||||||
int *detimage;
|
int *detimage=NULL;
|
||||||
int nnx, nny,nns;
|
int nnx, nny,nns;
|
||||||
//uint32_t imageSize = 0, nPixelsX = 0, nPixelsY = 0,
|
//uint32_t imageSize = 0, nPixelsX = 0, nPixelsY = 0,
|
||||||
//uint32_t dynamicRange = 0;
|
//uint32_t dynamicRange = 0;
|
||||||
@ -292,6 +299,7 @@ int main(int argc, char *argv[]) {
|
|||||||
//int16_t *dout;//=new int16_t [nnx*nny];
|
//int16_t *dout;//=new int16_t [nnx*nny];
|
||||||
uint32_t dr = 32;
|
uint32_t dr = 32;
|
||||||
int32_t *dout=NULL;//=new int32_t [nnx*nny];
|
int32_t *dout=NULL;//=new int32_t [nnx*nny];
|
||||||
|
float *doutf=NULL;//=new int32_t [nnx*nny];
|
||||||
uint16_t roundRNumber = 0;
|
uint16_t roundRNumber = 0;
|
||||||
uint8_t detType = 0;
|
uint8_t detType = 0;
|
||||||
uint8_t version = 0;
|
uint8_t version = 0;
|
||||||
@ -354,10 +362,12 @@ int main(int argc, char *argv[]) {
|
|||||||
cprintf(RED, "Sent Dummy\n");
|
cprintf(RED, "Sent Dummy\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
send_something=0;
|
||||||
if (fMode==ePedestal) {
|
if (fMode==ePedestal) {
|
||||||
sprintf(ofname,"%s_%ld_ped.tiff",fname,fileindex);
|
sprintf(ofname,"%s_%ld_ped.tiff",fname,fileindex);
|
||||||
mt->writePedestal(ofname);
|
mt->writePedestal(ofname);
|
||||||
cout << "Writing pedestal to " << ofname << endl;
|
cout << "Writing pedestal to " << ofname << endl;
|
||||||
|
send_something=1;
|
||||||
}
|
}
|
||||||
#ifdef INTERP
|
#ifdef INTERP
|
||||||
else if (fMode==eFlat) {
|
else if (fMode==eFlat) {
|
||||||
@ -365,11 +375,40 @@ int main(int argc, char *argv[]) {
|
|||||||
sprintf(ofname,"%s_%ld_eta.tiff",fname,fileindex);
|
sprintf(ofname,"%s_%ld_eta.tiff",fname,fileindex);
|
||||||
mt->writeFlatField(ofname);
|
mt->writeFlatField(ofname);
|
||||||
cout << "Writing eta to " << ofname << endl;
|
cout << "Writing eta to " << ofname << endl;
|
||||||
|
send_something=1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else {
|
else {
|
||||||
|
if (subframes>0 && insubframe>0) {
|
||||||
|
sprintf(ofname,"%s_sf%ld_%ld.tiff",fname,nsubframes,fileindex);
|
||||||
|
// mt->writeImage(ofname);
|
||||||
|
doutf= new float[nnx*nny];
|
||||||
|
if (subframes>0 && insubframe!=subframes && insubframe>0)
|
||||||
|
subnorm=((double)subframes)/((double)insubframe);
|
||||||
|
else
|
||||||
|
subnorm=1.;
|
||||||
|
for (int ix=0; ix<nnx*nny; ix++) {
|
||||||
|
doutf[ix]=detimage[ix]*subnorm;
|
||||||
|
if (doutf[ix]<0) doutf[ix]=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << "Writing image to " << ofname << endl;
|
||||||
|
|
||||||
|
WriteToTiff(doutf,ofname ,nnx, nny);
|
||||||
|
|
||||||
|
if (doutf)
|
||||||
|
delete [] doutf;
|
||||||
|
doutf=NULL;
|
||||||
|
|
||||||
|
nsubframes++;
|
||||||
|
insubframe=0;
|
||||||
|
send_something=1;
|
||||||
|
} else {
|
||||||
sprintf(ofname,"%s_%ld.tiff",fname,fileindex);
|
sprintf(ofname,"%s_%ld.tiff",fname,fileindex);
|
||||||
mt->writeImage(ofname);
|
mt->writeImage(ofname);
|
||||||
|
send_something=1;
|
||||||
|
}
|
||||||
|
|
||||||
cout << "Writing image to " << ofname << endl;
|
cout << "Writing image to " << ofname << endl;
|
||||||
}
|
}
|
||||||
// cout << nns*nnx*nny*nns*dr/8 << " " << length << endl;
|
// cout << nns*nnx*nny*nns*dr/8 << " " << length << endl;
|
||||||
@ -417,6 +456,10 @@ int main(int argc, char *argv[]) {
|
|||||||
// nnx=nnx*nns;
|
// nnx=nnx*nns;
|
||||||
//nny=nny*nns;
|
//nny=nny*nns;
|
||||||
dout= new int32_t[nnx*nny];
|
dout= new int32_t[nnx*nny];
|
||||||
|
if (subframes>0 && insubframe!=subframes && insubframe>0)
|
||||||
|
subnorm=((double)subframes)/((double)insubframe);
|
||||||
|
else
|
||||||
|
subnorm=1.;
|
||||||
for (int ix=0; ix<nnx*nny; ix++) {
|
for (int ix=0; ix<nnx*nny; ix++) {
|
||||||
// for (int iy=0; iy<nny*nns; iy++) {
|
// for (int iy=0; iy<nny*nns; iy++) {
|
||||||
// for (int isx=0; isx<nns; isx++) {
|
// for (int isx=0; isx<nns; isx++) {
|
||||||
@ -428,28 +471,15 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
dout[ix]=detimage[ix];
|
dout[ix]=detimage[ix]*subnorm;
|
||||||
if (dout[ix]<0) dout[ix]=0;
|
if (dout[ix]<0) dout[ix]=0;
|
||||||
// cout << ix << " " << dout[ix] << endl;
|
// cout << ix << " " << dout[ix] << endl;
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//if ((insubframe>0 && subframes>0) || (subframes<=0) ){
|
||||||
|
|
||||||
|
if(send_something) {
|
||||||
//// int SendHeaderData ( int index, bool dummy, uint32_t jsonversion, uint32_t dynamicrange = 0, uint64_t fileIndex = 0,
|
|
||||||
// uint32_t ndetx = 0, uint32_t ndety = 0, uint32_t npixelsx = 0, uint32_t npixelsy = 0, uint32_t imageSize = 0,
|
|
||||||
// uint64_t acqIndex = 0, uint64_t fIndex = 0, const char* fname = NULL,
|
|
||||||
// uint64_t frameNumber = 0, uint32_t expLength = 0, uint32_t packetNumber = 0,
|
|
||||||
// uint64_t bunchId = 0, uint64_t timestamp = 0,
|
|
||||||
// uint16_t modId = 0, uint16_t row = 0, uint16_t column = 0, uint16_t reserved = 0,
|
|
||||||
// uint32_t debug = 0, uint16_t roundRNumber = 0,
|
|
||||||
// uint8_t detType = 0, uint8_t version = 0, int gapPixelsEnable = 0, int flippedDataX = 0,
|
|
||||||
// char* additionalJsonHeader = 0) {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// cout << "Sending image size " << nnx << " " << nny << endl;
|
|
||||||
|
|
||||||
#ifndef DEVELOPER
|
#ifndef DEVELOPER
|
||||||
#ifndef MOENCH_BRANCH
|
#ifndef MOENCH_BRANCH
|
||||||
zmqsocket2->SendHeaderData (0, false, SLS_DETECTOR_JSON_HEADER_VERSION, dr, fileindex, 0,0, nnx, nny, nnx*nny*dr/8,acqIndex, frameIndex, fname, acqIndex,0 , packetNumber,bunchId, timestamp, modId, xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, 0,0, additionalJsonHeader);
|
zmqsocket2->SendHeaderData (0, false, SLS_DETECTOR_JSON_HEADER_VERSION, dr, fileindex, 0,0, nnx, nny, nnx*nny*dr/8,acqIndex, frameIndex, fname, acqIndex,0 , packetNumber,bunchId, timestamp, modId, xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, 0,0, additionalJsonHeader);
|
||||||
@ -460,37 +490,15 @@ int main(int argc, char *argv[]) {
|
|||||||
zmqsocket2->SendHeaderData (0, false,SLS_DETECTOR_JSON_HEADER_VERSION , dr, fileindex, 0,0,nnx,nny,nnx*nny*dr/8,acqIndex, frameIndex, fname,acqIndex,0 , packetNumber,bunchId, timestamp, modId,xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, 0,0, 0,additionalJsonHeader);
|
zmqsocket2->SendHeaderData (0, false,SLS_DETECTOR_JSON_HEADER_VERSION , dr, fileindex, 0,0,nnx,nny,nnx*nny*dr/8,acqIndex, frameIndex, fname,acqIndex,0 , packetNumber,bunchId, timestamp, modId,xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, 0,0, 0,additionalJsonHeader);
|
||||||
#endif
|
#endif
|
||||||
#ifdef MOENCH_BRANCH
|
#ifdef MOENCH_BRANCH
|
||||||
/*
|
|
||||||
int SendHeaderData ( int index, bool dummy, uint32_t jsonversion, uint32_t dynamicrange = 0, uint64_t fileIndex = 0,
|
|
||||||
uint32_t npixelsx = 0, uint32_t npixelsy = 0, uint32_t imageSize = 0,
|
|
||||||
uint64_t acqIndex = 0, uint64_t fIndex = 0, char* fname = NULL,
|
|
||||||
uint64_t frameNumber = 0, uint32_t expLength = 0, uint32_t packetNumber = 0,
|
|
||||||
uint64_t bunchId = 0, uint64_t timestamp = 0,
|
|
||||||
uint16_t modId = 0, uint16_t row = 0, uint16_t column = 0, uint16_t reserved = 0,
|
|
||||||
uint32_t debug = 0, uint16_t roundRNumber = 0,
|
|
||||||
uint8_t detType = 0, uint8_t version = 0, int* flippedData = 0,
|
|
||||||
char* additionalJsonHeader = 0) {
|
|
||||||
int ZmqSocket::SendHeaderData(int 0, bool false, uint32_t SLS_DETECTOR_JSON_HEADER_VERSION , uint32_t dr, uint64_t fileindex, uint32_t 0, uint32_t 0, uint32_t, uint64_t, uint64_t, char*, uint64_t, uint32_t, uint32_t, uint64_t, uint64_t, uint16_t, uint16_t, uint16_t, uint16_t, uint32_t, uint16_t, uint8_t, uint8_t, int*, char*)
|
|
||||||
|
|
||||||
*/
|
|
||||||
//zmqsocket2->SendHeaderData (0, false,SLS_DETECTOR_JSON_HEADER_VERSION , dr, fileindex, 0,0,nnx,nny,nnx*nny*dr/8,acqIndex, frameIndex, fname,acqIndex,0 , packetNumber,bunchId, timestamp, modId,xCoord, yCoord, zCoord,debug, roundRNumber, detType, version);//, 0,additionalJsonHeader);
|
|
||||||
zmqsocket2->SendHeaderData (0, false, SLS_DETECTOR_JSON_HEADER_VERSION, dr, fileindex, nnx, nny, nnx*nny*dr/8,acqIndex, frameIndex, fname, acqIndex, subFrameIndex, packetNumber,bunchId, timestamp, modId, xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, flippedData, additionalJsonHeader);
|
zmqsocket2->SendHeaderData (0, false, SLS_DETECTOR_JSON_HEADER_VERSION, dr, fileindex, nnx, nny, nnx*nny*dr/8,acqIndex, frameIndex, fname, acqIndex, subFrameIndex, packetNumber,bunchId, timestamp, modId, xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, flippedData, additionalJsonHeader);
|
||||||
|
|
||||||
/* old
|
|
||||||
zmqsocket2->SendHeaderData (0, false, SLS_DETECTOR_JSON_HEADER_VERSION, dr, fileindex, nnx, nny, nnx*nny*dr/8,acqIndex, frameIndex, fname, acqIndex, subFrameIndex, packetNumber,bunchId, timestamp, modId, xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, flippedData, additionalJsonHeader);
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
|
|
||||||
|
|
||||||
new
|
|
||||||
zmqsocket2->SendHeaderData (0, false,SLS_DETECTOR_JSON_HEADER_VERSION , dr, fileindex, 0,0,nnx,nny,nnx*nny*dr/8,acqIndex, frameIndex, fname,acqIndex,0 , packetNumber,bunchId, timestamp, modId,xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, 0,additionalJsonHeader);
|
|
||||||
*/
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
zmqsocket2->SendData((char*)dout,nnx*nny*dr/8);
|
zmqsocket2->SendData((char*)dout,nnx*nny*dr/8);
|
||||||
cprintf(GREEN, "Sent Data\n");
|
cprintf(GREEN, "Sent Data\n");
|
||||||
|
}
|
||||||
|
|
||||||
zmqsocket2->SendHeaderData(0, true, SLS_DETECTOR_JSON_HEADER_VERSION);
|
zmqsocket2->SendHeaderData(0, true, SLS_DETECTOR_JSON_HEADER_VERSION);
|
||||||
cprintf(RED, "Sent Dummy\n");
|
cprintf(RED, "Sent Dummy\n");
|
||||||
@ -731,6 +739,20 @@ int ZmqSocket::SendHeaderData(int 0, bool false, uint32_t SLS_DETECTOR_JSON_HEAD
|
|||||||
// mt->setNSubPixels(nSubPixels);
|
// mt->setNSubPixels(nSubPixels);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// threshold=0;
|
||||||
|
cprintf(MAGENTA, "Subframes: ");
|
||||||
|
subframes=0;
|
||||||
|
//isubframe=0;
|
||||||
|
insubframe=0;
|
||||||
|
subnorm=1;
|
||||||
|
f0=0;
|
||||||
|
if (doc.HasMember("subframes")) {
|
||||||
|
if (doc["subframes"].IsInt()) {
|
||||||
|
subframes=doc["subframes"].GetInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cprintf(MAGENTA, "%ld\n", subframes);
|
||||||
|
|
||||||
|
|
||||||
newFrame=0;
|
newFrame=0;
|
||||||
/* zmqsocket->CloseHeaderMessage();*/
|
/* zmqsocket->CloseHeaderMessage();*/
|
||||||
@ -756,10 +778,13 @@ int ZmqSocket::SendHeaderData(int 0, bool false, uint32_t SLS_DETECTOR_JSON_HEAD
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// cout << "data" << endl;
|
// cout << "data" << endl;
|
||||||
// get data
|
// get data
|
||||||
// acqIndex = doc["acqIndex"].GetUint64();
|
// acqIndex = doc["acqIndex"].GetUint64();
|
||||||
|
|
||||||
frameIndex = doc["fIndex"].GetUint64();
|
frameIndex = doc["fIndex"].GetUint64();
|
||||||
|
|
||||||
// subFrameIndex = doc["expLength"].GetUint();
|
// subFrameIndex = doc["expLength"].GetUint();
|
||||||
|
|
||||||
// bunchId=doc["bunchId"].GetUint();
|
// bunchId=doc["bunchId"].GetUint();
|
||||||
@ -768,21 +793,94 @@ int ZmqSocket::SendHeaderData(int 0, bool false, uint32_t SLS_DETECTOR_JSON_HEAD
|
|||||||
// cout << acqIndex << " " << frameIndex << " " << subFrameIndex << " "<< bunchId << " " << timestamp << " " << packetNumber << endl;
|
// cout << acqIndex << " " << frameIndex << " " << subFrameIndex << " "<< bunchId << " " << timestamp << " " << packetNumber << endl;
|
||||||
if (packetNumber>=40) {
|
if (packetNumber>=40) {
|
||||||
//*((int*)buff)=frameIndex;
|
//*((int*)buff)=frameIndex;
|
||||||
|
if (insubframe==0) f0=frameIndex;
|
||||||
memcpy(buff,&frameIndex,sizeof(int));
|
memcpy(buff,&frameIndex,sizeof(int));
|
||||||
//length =
|
//length =
|
||||||
zmqsocket->ReceiveData(0, buff+sizeof(int), size);
|
zmqsocket->ReceiveData(0, buff+sizeof(int), size);
|
||||||
mt->pushData(buff);
|
mt->pushData(buff);
|
||||||
mt->nextThread();
|
mt->nextThread();
|
||||||
mt->popFree(buff);
|
mt->popFree(buff);
|
||||||
|
insubframe++;
|
||||||
|
nsubframes=frameIndex+1-f0;
|
||||||
} else {
|
} else {
|
||||||
cprintf(RED, "Incomplete frame: received only %d packet\n", packetNumber);
|
cprintf(RED, "Incomplete frame: received only %d packet\n", packetNumber);
|
||||||
//length =
|
//length =
|
||||||
zmqsocket->ReceiveData(0, dummybuff, size);
|
zmqsocket->ReceiveData(0, dummybuff, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (subframes>0 && insubframe>=subframes && fMode==eFrame) {
|
||||||
|
while (mt->isBusy()) {;}//wait until all data are processed from the queues
|
||||||
|
detimage=mt->getImage(nnx,nny,nns);
|
||||||
|
cprintf(MAGENTA,"Get image!\n");
|
||||||
|
dout= new int32_t[nnx*nny];
|
||||||
|
doutf= new float[nnx*nny];
|
||||||
|
if (subframes>0 && insubframe!=subframes && insubframe>0)
|
||||||
|
subnorm=((double)subframes)/((double)insubframe);
|
||||||
|
else
|
||||||
|
subnorm=1.;
|
||||||
|
for (int ix=0; ix<nnx*nny; ix++) {
|
||||||
|
dout[ix]=detimage[ix]*subnorm;
|
||||||
|
if (dout[ix]<0) dout[ix]=0;
|
||||||
|
doutf[ix]=dout[ix];
|
||||||
|
}
|
||||||
|
sprintf(ofname,"%s_sf%ld_%ld.tiff",fname,nsubframes,fileindex);
|
||||||
|
|
||||||
|
cout << "Writing image to " << ofname << endl;
|
||||||
|
|
||||||
|
WriteToTiff(doutf,ofname ,nnx, nny);
|
||||||
|
nsubframes++;
|
||||||
|
insubframe=0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef DEVELOPER
|
||||||
|
#ifndef MOENCH_BRANCH
|
||||||
|
zmqsocket2->SendHeaderData (0, false, SLS_DETECTOR_JSON_HEADER_VERSION, dr, fileindex, 0,0, nnx, nny, nnx*nny*dr/8,acqIndex, frameIndex, fname, acqIndex,0 , packetNumber,bunchId, timestamp, modId, xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, 0,0, additionalJsonHeader);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEVELOPER
|
||||||
|
zmqsocket2->SendHeaderData (0, false,SLS_DETECTOR_JSON_HEADER_VERSION , dr, fileindex, 0,0,nnx,nny,nnx*nny*dr/8,acqIndex, frameIndex, fname,acqIndex,0 , packetNumber,bunchId, timestamp, modId,xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, 0,0, 0,additionalJsonHeader);
|
||||||
|
#endif
|
||||||
|
#ifdef MOENCH_BRANCH
|
||||||
|
|
||||||
|
zmqsocket2->SendHeaderData (0, false, SLS_DETECTOR_JSON_HEADER_VERSION, dr, fileindex, nnx, nny, nnx*nny*dr/8,acqIndex, frameIndex, fname, acqIndex, subFrameIndex, packetNumber,bunchId, timestamp, modId, xCoord, yCoord, zCoord,debug, roundRNumber, detType, version, flippedData, additionalJsonHeader);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
zmqsocket2->SendData((char*)dout,nnx*nny*dr/8);
|
||||||
|
cprintf(GREEN, "Sent subdata\n");
|
||||||
|
|
||||||
|
|
||||||
|
if (dout)
|
||||||
|
delete [] dout;
|
||||||
|
dout=NULL;
|
||||||
|
|
||||||
|
if (doutf)
|
||||||
|
delete [] doutf;
|
||||||
|
doutf=NULL;
|
||||||
|
|
||||||
|
mt->clearImage();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
iframe++;
|
iframe++;
|
||||||
|
|
||||||
} // exiting infinite loop
|
} // exiting infinite loop
|
||||||
|
Reference in New Issue
Block a user