*/ void ChunkRequest::print( ATP_ChunkRequest_t * frame ){ Log.Debug("ChunkRequest object:"CR); if ( getFrameType(frame) == ATP_TRANSFER_REQUEST ) Log.Debug("type: ATP_TRANSFER_REQUEST"CR ); if ( getFrameType(frame) == ATP_CHUNK_REQUEST ) Log.Debug( "type: ATP_CHUNK_REQUEST"CR ); if ( getFrameType(frame) == ATP_CHUNK_RESPONSE ) Log.Debug( "type: ATP_CHUNK_RESPONSE"CR ); Log.Debug("frameID: %s"CR, getFrameID(frame)); Log.Debug("meshAddress: %d"CR, getMeshAddress(frame)); Log.Debug("datetime: %d"CR, getDatetime(frame)); Log.Debug("atpID: %d"CR, getAtpID(frame)); Log.Debug("version: %d"CR, getVersion(frame)); if ( getStatus(frame) == ATP_IDLE ) Log.Debug( "status: ATP_IDLE"CR ); if ( getStatus(frame) == ATP_SUCCESS ) Log.Debug( "status: ATP_SUCCESS"CR ); if ( getStatus(frame) == ATP_FAILED_DURING_TRANSIT ) Log.Debug("status: ATP_FAILED_DURING_TRANSIT"CR ); if ( getStatus(frame) == ATP_FAILED_CHECKSUM ) Log.Debug( "status: ATP_FAILED_CHECKSUM"CR ); if ( getStatus(frame) == ATP_FAILED_ENCRYPTION ) Log.Debug( "status: ATP_FAILED_ENCRYPTION"CR ); if ( getStatus(frame) == ATP_FAILED_COMPRESSION ) Log.Debug("status: ATP_FAILED_COMPRESSION"CR ); if ( getStatus(frame) == ATP_UNSENT ) Log.Debug( "status: ATP_UNSENT"CR ); if ( getStatus(frame) == ATP_SENT ) Log.Debug( "status: ATP_SENT"CR ); if ( getStatus(frame) == ATP_RECEIVED ) Log.Debug( "status: ATP_RECEIVED"CR ); Log.Debug("start: %l"CR, getStart(frame)); Log.Debug("length: %l"CR, getLength(frame)); Log.Debug("transferTypes: %s"CR, getTransferTypes(frame));
void Horus::update(Frame *frame) { vector< vector<cv::Point> > contours; vector<Vec4i> hierarchy; RNG rng(12345); if (getFrameType() == DepthCamera::FRAME_XYZI_POINT_CLOUD_FRAME) { // Create amplitude and depth Mat vector<float> zMap, iMap; XYZIPointCloudFrame *frm = dynamic_cast<XYZIPointCloudFrame *>(frame); for (int i=0; i< frm->points.size(); i++) { zMap.push_back(frm->points[i].z); iMap.push_back(frm->points[i].i); } _iMat = Mat(getDim().height, getDim().width, CV_32FC1, iMap.data()); _dMat = Mat(getDim().height, getDim().width, CV_32FC1, zMap.data()); // Apply amplitude gain _iMat = (float)_ampGain*_iMat; // Update background as required if (!_setBackground) { _dMat.copyTo(_bkgndMat); _setBackground = true; cout << endl << "Updated background" << endl; } // Find foreground by subtraction Mat fMat = _bkgndMat-_dMat; // Convert to binary image based on amplitude and depth thresholds clipBackground(fMat, _iMat, (float)_depthThresh/100.0, (float)_ampThresh/100.0); fMat.convertTo(_bMat, CV_8U, 255.0); // Apply morphological open to clean up image Mat morphMat = _bMat.clone(); Mat element = getStructuringElement( 0, Size(3,3), cv::Point(1,1) ); morphologyEx(_bMat, morphMat, 2, element); // Find all contours findContours(morphMat, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0,0)); // Draw contours that meet a "person" requirement Mat drawing = Mat::zeros(_iMat.size(), CV_8UC3); cvtColor(_iMat, drawing, CV_GRAY2RGB); int peopleCount = 0; for ( int i = 0; i < contours.size(); i++ ) { if (isPerson(contours[i], _dMat)) { peopleCount++; drawContours( drawing, contours, i, Scalar(0, 0, 255), 2, 8, vector<Vec4i>(), 0, cv::Point() ); } } putText(drawing, "Cnt="+to_string(peopleCount), cv::Point(40, 30), FONT_HERSHEY_PLAIN, 1, Scalar(255, 0, 0)); imshow("Draw", drawing); } }
void NodeIdentificationIndicator::setFrameData(QByteArray data) { int idx = 0, dataSize = data.size(); if ((dataSize < 32) && (data.at(0) != getFrameType())) return; setSourceAddress64(data.mid(1,8)); setSourceAddress16(data.mid(9,2)); setReceiveOptions(data[11]); setRemoteAddress16(data.mid(12,2)); setRemoteAddress64(data.mid(14,8)); idx = data.indexOf((char)0x00, 22); setNIString(data.mid(22,idx-22)); setParentAddress16(data.mid(idx+1, 2)); setDeviceType(data[idx+3]); setSourceEvent(data[idx+4]); setProfileID(data.mid(idx+5,2)); setManufacturerID(data.mid(idx+7,2)); if (dataSize > idx+9) { if (dataSize == idx+14) { setDeviceTypeID(data.mid(idx+9,4)); setRSSI(QByteArray(1,data[idx+13])); } else if (dataSize == idx+13) setDeviceTypeID(data.mid(idx+9,4)); else setRSSI(QByteArray(1, data[idx+9])); } }
*/ void TransferRequest::print( ATP_TransferRequest_t * frame ){ Log.Debug("TransferRequest object:"CR); if ( getFrameType(frame) == ATP_TRANSFER_REQUEST ) Log.Debug("type: ATP_TRANSFER_REQUEST"CR ); if ( getFrameType(frame) == ATP_CHUNK_REQUEST ) Log.Debug( "type: ATP_CHUNK_REQUEST"CR ); if ( getFrameType(frame) == ATP_CHUNK_RESPONSE ) Log.Debug("type: ATP_CHUNK_RESPONSE"CR ); Log.Debug("frameID: %s"CR, getFrameID(frame)); Log.Debug("frameType: %d"CR, getFrameType(frame)); Log.Debug("meshAddress: %l"CR, getMeshAddress(frame)); Log.Debug("datetime: %l"CR, getDatetime(frame)); Log.Debug("atpID: %l"CR, getAtpID(frame)); Log.Debug("version: %d"CR, getVersion(frame)); Log.Debug("topchunk: %d"CR, getTopChunk(frame)); Log.Debug("chunkcount: %d"CR, getChunkCount(frame)); if ( getStatus(frame) == ATP_IDLE ) Log.Debug( "status: ATP_IDLE"CR ); if ( getStatus(frame) == ATP_SUCCESS ) Log.Debug( "status: ATP_SUCCESS"CR ); if ( getStatus(frame) == ATP_FAILED_DURING_TRANSIT ) Log.Debug("status: ATP_FAILED_DURING_TRANSIT"CR ); if ( getStatus(frame) == ATP_FAILED_CHECKSUM ) Log.Debug( "status: ATP_FAILED_CHECKSUM"CR ); if ( getStatus(frame) == ATP_FAILED_ENCRYPTION ) Log.Debug( "status: ATP_FAILED_ENCRYPTION"CR ); if ( getStatus(frame) == ATP_FAILED_COMPRESSION ) Log.Debug("status: ATP_FAILED_COMPRESSION"CR ); if ( getStatus(frame) == ATP_UNSENT ) Log.Debug( "status: ATP_UNSENT"CR ); if ( getStatus(frame) == ATP_SENT ) Log.Debug( "status: ATP_SENT"CR ); if ( getStatus(frame) == ATP_RECEIVED ) Log.Debug( "status: ATP_RECEIVED"CR ); if ( getStatus(frame) == ATP_WORKING ) Log.Debug( "status: ATP_WORKING"CR ); Log.Debug("size: %l"CR, getSize(frame)); Log.Debug("expires: %l"CR, getExpires(frame)); Log.Debug("descriptor: %s"CR, getDescriptor(frame)); Log.Debug("source: %l"CR, getSource(frame)); Log.Debug("destination: %l"CR, getDestination(frame)); Log.Debug("fileName: %s"CR, getFileName(frame)); if ( getBuffer(frame) != 0 ){ Log.Debug("buffer: %s"CR, getBuffer(frame)); }
void TXRequest::assemblePacket(){ packet.clear(); packet.append(getFrameType()); packet.append(getFrameId()); packet.append(getDestAddr64()); packet.append(getDestAddr16()); packet.append(getBroadcastRadius()); packet.append(getTransmitOptions()); packet.append(getData()); setLength(packet.size()); createChecksum(packet); packet.append(getChecksum()); packet.insert(0, getStartDelimiter()); packet.insert(1, getLength()); }
QByteArray NodeIdentificationIndicator::getFrameData() { QByteArray frameData; frameData += getFrameType(); frameData += getSourceAddress64(); frameData += getSourceAddress16(); frameData += getReceiveOptions(); frameData += getRemoteAddress16(); frameData += getRemoteAddress64(); frameData += getNIString(); frameData += (char)0x00; frameData += getParentAddress16(); frameData += getDeviceType(); frameData += getSourceEvent(); frameData += getProfileID(); frameData += getManufacturerID(); frameData += getDeviceTypeID(); frameData += getRSSI(); return frameData; }
int encoder(CX264Encoder* e, EncCMD_PARAM* e_p) { FILE *fpInput; FILE *fpOutput; int ret = 1; int iGOP = e_p->gop, fps = e_p->fps; int frame_count, nbytes, nTotalBytes = 0, width = e_p->width, height=e_p->height; int use_gf,use_sp,total; int inner; int frame_size = width * height * 3 / 2; unsigned char* inbuf = new unsigned char[frame_size]; unsigned char* outbuf_encoder = NULL; unsigned int fileSize,fileFrames; EmFrameType frame_type; //CTimer mytimer; use_gf = 0; use_sp = 0; if(e_p->gfGOP>0) { use_gf =1; } if(e_p->spGOP>0) { use_sp =1; } if(stat(e_p->pSeqName,&fileInfo)) { printf("can't find this file\n"); exit(1); } fileSize = fileInfo.st_size; fpInput = fopen(e_p->pSeqName, "rb"); if(!fpInput) { printf("can't open input file :%s.\n",e_p->pSeqName); exit(1); } fpOutput = fopen(e_p->pOutputFileName, "wb"); if(!fpOutput) { printf("can't open output file.\n"); exit(1); } fileFrames = fileInfo.st_size/frame_size; total = e_p->totalFrame; if(e_p->totalFrame==0) { total = fileFrames; } else if(e_p->totalFrame>fileFrames) { total = fileFrames; } frame_count = 0; int alltime = 0; while (frame_count < total) { if (frame_size !=(fread(inbuf, 1, frame_size, fpInput))) { break; } frame_type = getFrameType(frame_count,e_p->gop,e_p->gfGOP,e_p->spGOP); //mytimer.Start(); int start_time = VQQ_GetTickCount(); if ( true != e->Encode(inbuf, frame_size, &outbuf_encoder, (long*)&nbytes, frame_type) ) { printf("Encode(): error"); goto exit; } int end_time = VQQ_GetTickCount(); alltime += (end_time - start_time); //mytimer.Stop(); nTotalBytes += nbytes; if ( nbytes != fwrite(outbuf_encoder, 1, nbytes, fpOutput)) { ret = 1; goto exit; } frame_count++; } ret = 0; //测试序列 gop spgop gfgop fps 目标码率 实际码率 帧编码时间 printf("%s_%s_%d_%d_%d\t",e_p->profile,e_p->pSeqName,e_p->gop,e_p->gfGOP,e_p->spGOP); printf("%d\t",e_p->fps); printf("%d\t",e_p->kbps); printf("%d\t",nTotalBytes*8/1000/(frame_count/e_p->fps)); printf("fps %d\n",frame_count*1000/alltime); exit: if (inbuf) { delete[] inbuf; inbuf = NULL; } SAFE_CLOSE(fpInput); SAFE_CLOSE(fpOutput); return ret; }