/*********************************************************************************************************** * 程序创建:刘进朝 程序修改:赵进军 * 函数功能:更新联络消息日志 * 参数说明: * lMessageID:联络消息ID * nDetailState:详细状态 * 注意事项: * TransMessage->0:未发送 1:部分发送 2:未读 3:部分已读 4:全部已读 * TransMessageDetail->0:信息未发到终端 1:消息未读 2:消息已读 3:消息已删 * 修改日期:2015/10/12 14:15:00 ***********************************************************************************************************/ j_result_t CMySQLAccess::UpdateContextInfo(long lMessageID, int nDetailState) { if (lMessageID < 0) // 当前位置的消息ID不能为负数 return J_DB_ERROR; if (!m_bConnected) return J_DB_ERROR; try { char strCmd[128] = { 0 }; sprintf(strCmd, "UPDATE transmessagedetail set State= '%d' WHERE MessageID = '%d'", // 更新transmessagedetail表消息状态 nDetailState, lMessageID); int ret = mysql_real_query(m_mysql, strCmd, strlen(strCmd)); if (ret == 0) // 更新transmessage表消息状态 { memset(strCmd, 0, sizeof(strCmd)); sprintf(strCmd, "Select Count(*) from transmessagedetail WHERE MessageID = '%d'", lMessageID); // 获取transmessagedetail中所有的符合条件的数据 int totalCount = DataCount(strCmd); memset(strCmd, 0, sizeof(strCmd)); // 检查是否存在未发送的情况 sprintf(strCmd, "Select Count(*) from transmessagedetail WHERE MessageID = '%d' AND State= '0'", lMessageID); int retCount = DataCount(strCmd); if (retCount == totalCount) // 表示当全部未发送,默认全部无需更改 return J_OK; memset(strCmd, 0, sizeof(strCmd)); if (retCount != 0 && retCount < totalCount) // 标志 部分未发送 sprintf(strCmd, "UPDATE transmessage set DealStatus= '%d' WHERE MessageID = '%d'", 1, lMessageID); else // 标志 全部发送 { sprintf(strCmd, "Select Count(*) from transmessagedetail WHERE MessageID = '%d' AND State= '1'", // 文件未复制的数量 lMessageID); retCount = DataCount(strCmd); memset(strCmd, 0, sizeof(strCmd)); if (retCount == totalCount) sprintf(strCmd, "UPDATE transmessage set DealStatus= '%d' WHERE MessageID = '%d'", 2, lMessageID); // 文件未读 if (retCount < totalCount && retCount>0) sprintf(strCmd, "UPDATE transmessage set DealStatus= '%d' WHERE MessageID = '%d'", 3, lMessageID); // 文件部分已读 if (retCount == 0) sprintf(strCmd, "UPDATE transmessage set DealStatus= '%d' WHERE MessageID = '%d'", 4, lMessageID); // 文件全部已读 } ret = mysql_real_query(m_mysql, strCmd, strlen(strCmd)); return ret == 0 ? J_OK : J_DB_ERROR; } else return J_DB_ERROR; } catch (...) { return J_DB_ERROR; } return J_OK; }
bool ZernikeMom::CalculateOneFrame(int frame){ const double PI = 3.141592654; // cout << "ZernikeMom::CalculateOneFrame("<<frame<<")"<<endl; EnsureImage(); SegmentData()->setCurrentFrame(frame); TabulateFactorials(param.maxorder); FindSegmentNormalisations(); int nc=NumberOfCoefficients(param.maxorder); vector<double> zerovec(nc,0.0); vector<vector<double> > A_real(DataCount(),zerovec); vector<vector<double> > A_imag(DataCount(),zerovec); int width = Width(true), height = Height(true); int resind=0; for(int n=0;n<=param.maxorder;n++) for(int m=n&1;m<=n;m+=2){ for (int y=0; y<height; y++) for (int x=0; x<width; x++){ vector<int> svec = SegmentVector(frame, x, y); for (size_t j=0; j<svec.size(); j++) { int dataind = DataIndex(svec[j], true); if(dataind != -1){ int label=svec[j]; double xtilde=(x-XAvg(label))*Scaling(label); double ytilde=(y-YAvg(label))*Scaling(label); double roo=sqrt(xtilde*xtilde+ytilde*ytilde); double theta; if(ytilde || xtilde) theta=atan2(ytilde,xtilde); else theta=0; double r=R(n,m,roo); r *= Scaling(label)*Scaling(label)*(n+1)/PI; A_real[dataind][resind] += r*cos(m*theta); A_imag[dataind][resind] -= r*sin(m*theta); } } } resind++; } for(size_t i=0;i<A_real.size();i++){ ((ZernikeMomData*)GetData(i))->SetData(A_real[i],A_imag[i],param); } calculated = true; return true; }
bool MuvisFeat::CalculateOneLabel(int /*f*/, int /*l*/) { if (!handler) return false; string hdr = "MuvisFeat::CalculateOneLabel() : "; int p = handler->API_Init(); if (MethodVerbose()) cout << hdr << "p=" << p << endl; if (!p) { cerr << hdr << "API_Init() failed" << endl; return false; } int len = 0; double *vec = handler->API_Calculate(len); if (MethodVerbose()) cout << hdr << "len=" << len << endl; if (len<1) { cerr << hdr << "API_Calculate() failed" << endl; return false; } SetVectorLength(len); if (DataCount()!=1) { cerr << hdr << "DataCount()!=1:" << DataCount() << endl; return false; } MuvisFeatData *d = (MuvisFeatData*)GetData(0); d->ZeroToSize(len); d->SetVector(vector<float>(vec, vec+len)); int r = handler->API_Exit(); if (MethodVerbose()) cout << hdr << "r=" << r << endl; if (!r) { cerr << hdr << "API_exit() failed" << endl; return false; } return true; }
bool CLimn_ModelData_Base::ExchangeDataFields(MDataChange & DX) { if (DX.Handle>=1 && DX.Handle<=DataCount()) { int i=DX.Handle-1; CLimn_ModelData_ParmDef & D = *m_Defs[i]; if (D.m_IsBool) { if (DX.HasReqdValue) m_Data[i] = DX.Bool ? 1.0:0.0; DX.Bool = m_Data[i]>0.5; } else { if (DX.HasReqdValue) m_Data[i] = DX.Double; DX.Double = m_Data[i]; } return true; } return false; };
/*********************************************************************************************************** * 程序创建:赵进军 程序修改:刘进朝 * 函数功能:更新联络文件日志 * 参数说明: * lFileID:联络文件ID * nDetailState:详细状态 * 注意事项:当前只做到是否复制这一层,如需增加撤销状态,请修改代码 * transfile表数据状态->0:未发送 1:部分发送 2:未复制 3:部分复制 4:全部复制 5:未撤销 6:已撤销 7:正在撤销 * transfiledetail表数据状态->0:文件未发到终端 1:文件未复制 2:文件已复制 3:文件未撤销 4:文件已撤销 * 以上状态详细参照数据库是设计 * 修改日期:2015/10/12 14:17:00 ***********************************************************************************************************/ j_result_t CMySQLAccess::UpdateFileInfo(long lFileID, int nDetailState) { if (lFileID < 0) // 当前位置的消息ID不能为负数 return J_DB_ERROR; if (!m_bConnected) return J_DB_ERROR; try { char strCmd[128] = { 0 }; char timeInterval[arr_size] = { 0 }; CXlHelper::GetTimestamp(true, timeInterval); if (nDetailState == 2) sprintf(strCmd, "UPDATE transfiledetail set State= '%d',CopyTime ='%s' WHERE FileID = '%d'", // 更新transfiledetail表消息状态 nDetailState, timeInterval, lFileID); else sprintf(strCmd, "UPDATE transfiledetail set State= '%d' WHERE FileID = '%d'", nDetailState, lFileID); // 更新transfiledetail表消息状态 int ret = mysql_real_query(m_mysql, strCmd, strlen(strCmd)); if (ret == 0) // 更新transfile表消息状态 { memset(strCmd, 0, sizeof(strCmd)); sprintf(strCmd, "Select Count(*) from transfiledetail WHERE FileID = '%d'", lFileID); // 获取transfiledetail中所有的符合条件的数据 int totalCount = DataCount(strCmd); memset(strCmd, 0, sizeof(strCmd)); // 检查是否存在未发送的情况 sprintf(strCmd, "Select Count(*) from transfiledetail WHERE FileID = '%d' AND State= '0'", lFileID); int retCount = DataCount(strCmd); if (retCount == totalCount) // 表示当全部未发送,默认全部无需更改 return J_OK; memset(strCmd, 0, sizeof(strCmd)); if (retCount != 0 && retCount < totalCount) // 标志 部分未发送 sprintf(strCmd, "UPDATE transfile set State= '%d' WHERE FileID = '%d'", 1, lFileID); else // 标志 全部发送 { sprintf(strCmd, "Select Count(*) from transfiledetail WHERE FileID = '%d' AND State= '1'", lFileID);// 文件未复制的数量 retCount = DataCount(strCmd); memset(strCmd, 0, sizeof(strCmd)); if (retCount == totalCount) // 表示还有部分未复制 sprintf(strCmd, "UPDATE transfile set State= '%d' WHERE FileID = '%d'", 2, lFileID); // 文件未复制 if (retCount < totalCount && retCount>0) sprintf(strCmd, "UPDATE transfile set State= '%d' WHERE FileID = '%d'", 3, lFileID); // 文件部分复制 if (retCount == 0) sprintf(strCmd, "UPDATE transfile set State= '%d' WHERE FileID = '%d'", 4, lFileID); // 文件全部复制 } ret = mysql_real_query(m_mysql, strCmd, strlen(strCmd)); return ret == 0 ? J_OK : J_DB_ERROR; } else return J_DB_ERROR; } catch (...) { return J_DB_ERROR; } return J_OK; }
void CLimn_ModelData_Base::BuildDataFields(MDataDefn & DD) { const int ArrayDbg=0; DD.Text("Parameters..."); //DD.Text(""); CString GridTxt; bool InArray=false; bool GridBusy=false; int m_ColCount=0; int m_ValCount=0; int m_iCol=0; int m_iRow=0; for (int i=0; i<DataCount(); i++) { if (m_Defs[i]) { CLimn_ModelData_ParmDef & D = *m_Defs[i]; for (int j=0; j<D.m_Hdrs.GetCount(); j++) { CLimn_ModelData_ParmHdr & H=D.m_Hdrs[j]; CString Txt(H.m_Text); if (H.m_nRows>1 && H.m_nCols>1) { Txt= "Matrix: "; m_ColCount=H.m_nCols; m_ValCount=H.m_nRows*H.m_nCols; m_iCol=0; m_iRow=0; } else if (H.m_nRows>1 || H.m_nCols>1) { Txt= "Vector: "; m_ColCount=H.m_nCols; m_ValCount=H.m_nRows*H.m_nCols; m_iCol=0; m_iRow=0; } Txt+=H.m_Text; DD.Page(H.m_Text, true); GridTxt=D.m_Tag; //DD.Text(Txt); } if (!D.m_Hide) { MD_Flags F=MF_PARAMETER; bool StartRow=false; bool EndRows=false; if (m_ValCount>0) { if (m_iCol==0) StartRow=true; if (++m_iCol>=m_ColCount) { m_iCol=0; m_iRow++; } if (--m_ValCount==0) { EndRows=true; } } if (D.m_ArrayBegin) { InArray=true; //CString Cls; //Cls.Format("DW_%s",D.m_Class); DD.ArrayBegin(D.m_Class, D.m_Tag, D.m_ArrayLen,0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayBegin %s %s %i >>>>>>>>>>>", D.m_Class, D.m_Tag, D.m_ArrayLen); } if (StartRow) { if (!GridBusy) { DD.GridBegin(GridTxt, m_ColCount, m_ValCount/m_ColCount, 10, 0); GridBusy=true; } DD.GridRowStart(); } if (InArray) { if (D.m_iIndex>=0) DD.ArrayElementStart(D.m_iIndex, 0); else DD.ArrayElementStart(D.m_sIndex, 0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayEle %s %i %s", D.m_Tag, D.m_iIndex, D.m_sIndex); //if (m_iCol==0) // DD.Text("XXXXXX"); CString S; //S.Format("%s[%s]", D.m_Tag, D.m_Index); //S=D.m_Index; S="V"; if (D.m_IsBool) DD.Bool (S, "", 1+i, F); else DD.Double(S, "", 1+i, F, D.m_Cnv); DD.ArrayElementEnd(0); } else { if (D.m_IsBool) DD.Bool (D.m_Tag, "", 1+i, F); else DD.Double(D.m_Tag, "", 1+i, F, D.m_Cnv); } if (EndRows) { DD.GridEnd(); GridBusy=false; } if (D.m_ArrayEnd) { DD.ArrayEnd(0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayEnd %s %s <<<<<<<<<<<", "", ""); InArray=false; } } } } };