Exemple #1
0
bool SHMSink::start()
{
    if (fd_ != -1) {
        ERROR("fd must be -1");
        return false;
    }

    const int flags = O_RDWR | O_CREAT | O_TRUNC | O_EXCL;
    const int perms = S_IRUSR | S_IWUSR;

    if (not shm_name_.empty()) {
        fd_ = shm_open(shm_name_.c_str(), flags, perms);
        if (fd_ < 0) {
            ERROR("could not open shm area \"%s\"", shm_name_.c_str());
            strErr();
            return false;
        }
    } else {
        for (int i = 0; fd_ < 0; ++i) {
            std::ostringstream name;
            name << PACKAGE_NAME << "_shm_" << getpid() << "_" << i;
            shm_name_ = name.str();
            fd_ = shm_open(shm_name_.c_str(), flags, perms);
            if (fd_ < 0 and errno != EEXIST) {
                strErr();
                return false;
            }
        }
    }

    DEBUG("Using name %s", shm_name_.c_str());
    opened_name_ = shm_name_;

    shm_area_len_ = sizeof(SHMHeader);

    if (ftruncate(fd_, shm_area_len_)) {
        ERROR("Could not make shm area large enough for header");
        strErr();
        return false;
    }

    shm_area_ = static_cast<SHMHeader*>(mmap(NULL, shm_area_len_, PROT_READ | PROT_WRITE, MAP_SHARED, fd_, 0));

    if (shm_area_ == MAP_FAILED) {
        ERROR("Could not map shm area, mmap failed");
        return false;
    }

    memset(shm_area_, 0, shm_area_len_);
    if (sem_init(&shm_area_->notification, 1, 0) != 0) {
        ERROR("sem_init: notification initialization failed");
        return false;
    }
    if (sem_init(&shm_area_->mutex, 1, 1) != 0) {
        ERROR("sem_init: mutex initialization failed");
        return false;
    }
    return true;
}
void CNetManager::setDefServerIP(const string ip, const string port)
{
	string strErr("");
	m_defServerIP.assign(ip);
	m_defServerPort.assign(port);
	CNetDBWork::saveAPPServerIP(m_defServerIP, m_defServerPort, strErr);
}
CNetTransfers* CNetManager::GetTransHandle()
{
	CNetTransfers *pNetTrans = NULL;
	string strErr("");

	buildTransInstance(&pNetTrans, &m_transMode);

	if (m_pDefSendBuff!=NULL && m_defSendBuffLen!=0)
		pNetTrans->SetSendBuff(m_pDefSendBuff, m_defSendBuffLen);
	else
		pNetTrans->SetSendBuff(g_netSendBuf, sizeof(g_netSendBuf));
	
#if (SINGLE_TRANSBUFF_MODE == 0)
	if (m_pDefRevBuff != NULL && m_defRevBuffLen!=0)
		pNetTrans->SetRevBuff(m_pDefRevBuff, m_defRevBuffLen);
	else
		pNetTrans->SetRevBuff(g_netRevBuf, sizeof(g_netRevBuf));
#else
	if (m_pDefSendBuff!=NULL && m_defSendBuffLen!=0)
		pNetTrans->SetRevBuff(m_pDefSendBuff, m_defSendBuffLen);
	else
		pNetTrans->SetRevBuff(g_netSendBuf, sizeof(g_netSendBuf));
#endif

	pNetTrans->SetServerIP(m_defServerIP, m_defServerPort);
	pNetTrans->SetServerFile(m_defServerFile);

	return pNetTrans;
}
void CSysMainMenu::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen)
{
	if (g_globalArg->m_operator->m_role!=DEMO_ROLE) 
	{
		//判断系统参数,是否进入下一级界面
		if ((g_globalArg->m_initFlag == 0)&&(g_globalArg->m_operator->m_role!=DEMO_ROLE))
		{
			DBG_PRINT(("机器未初始化"));
			CaMsgBox::ShowMsg("机器未初始化");
			return ;
		}
		g_globalArg->m_curInvVol->ResetVol();
		
		string strErr("");
		UINT32 nCurDate= TDateTime::CurrentDate().FormatInt(YYYYMMDD);
		
		UINT8 ret=CheckCurDate(nCurDate,strErr);
		if (ret !=SUCCESS)
		{
			CaMsgBox::ShowMsg(strErr);
			return ;		
		}
	}
 	DBG_PRINT(("---****m_remain = %u", g_globalArg->m_curInvVol->m_remain));

	ChangeWin(PRODUCT_SALE_MAIN_MENU);	
	
}
void CNetAutoDialSetWin::ChangePara()
{
	int ret=0, flag=0;
	INT8 tmpChar[64];
	string strErr("");
	CaProgressBar proBar("参数修改中...");	
	CNetConnection *pnet=NULL;

	INT32 autoDialType = atoi((char*)(m_pInput1->m_contentBuf));

	proBar.Show();
	if( CheckInputValid(strErr) != SUCCESS )
	{
		CaMsgBox::ShowMsg(strErr);
		return;
	}

	ret = CNetDBWork::saveAutoDialType(autoDialType, strErr);
	if (ret != SQLITE_OK)
	{
		DBG_PRINT(("ret = %d", ret))
		CaMsgBox::ShowMsg(strErr);
		return;
	}
	
	CaMsgBox::ShowMsg("设置成功");
	ChangeWin(NET_MANAGE_MENU);
	return;
}
void CInvSegMenu::OnButton3(int iEvent, unsigned char * pEventData, int iDataLen)
{
	string strErr("");
	UINT8 ret=SUCCESS;

	if (0 != g_globalArg->m_corpInfo->m_Kpjhm)
	{
		CaMsgBox::ShowMsg("非主机,不能收回发票");
		return ;
	}

    UINT8 uJZlx=2;//金税盘介质
	
	ret= INV_MediumType(uJZlx);
    if (ret != SUCCESS)
	{
		return ;
	}

	CaMsgBox::ShowMsg("请保持主分税控设备同时连接款机");

	CaProgressBar proBar("");
	proBar.SetText("发票收回中...");
    proBar.Show();
	
	ret = INV_HostGetInvVol(uJZlx, strErr);

	if (ret != SUCCESS)
	{
		CaMsgBox::ShowMsg(strErr);
		return ;
	}
        CaMsgBox::ShowMsg("发票收回成功");
	return ;
}
Exemple #7
0
void
evgSoftSeq::load() {
    if(isLoaded())
        return;

    /* 
     * Assign the first avialable(unallocated) hardware sequenceRam to this soft
     * sequence if none is currently assingned.
     */
    for(unsigned int i = 0; i < m_seqRamMgr->numOfRams(); i++) {
        evgSeqRam* seqRamIter = m_seqRamMgr->getSeqRam(i);
        if( seqRamIter->alloc(this) )
            break;
    }

    if(isLoaded()) {
        // always need sync after loading
        m_isSynced = false;
        if(mrmEVGSeqDebug)
            fprintf(stderr, "SS%u: Load\n",m_id);
        sync(); 
        scanIoRequest(ioscanpvt);
    } else {
        char err[80];
        sprintf(err, "No SeqRam to load SoftSeq %d", getId());
        std::string strErr(err);
        throw std::runtime_error(strErr);
    }
}
//------------------------------------------------------------------------------------
//票源读入
//------------------------------------------------------------------------------------
void CInvManageMenu::OnButton3(int iEvent, unsigned char * pEventData, int iDataLen)
{
	if (g_globalArg->m_initFlag == 0)
	{
		CaMsgBox::ShowMsg( "机器未初始化");
		return ;
	}

	string strErr("");
	UINT8 ret=SUCCESS;

	UINT8 uJZlx=2;
	ret= INV_MediumType(uJZlx);
    if (ret != SUCCESS)
	{
		return ;
	}

	ret= INV_ReadInvVol(uJZlx,strErr);
	if (ret != SUCCESS)
	{
		CaMsgBox::ShowMsg(strErr);
		return ;
	}
	CaMsgBox::ShowMsg( "票源读入成功!");
	return ;
}
Exemple #9
0
void
evgEvtClk::setFracSynFreq(epicsFloat64 freq) {
    epicsUInt32 controlWord, oldControlWord;
    epicsFloat64 error;

    controlWord = FracSynthControlWord (freq, MRF_FRAC_SYNTH_REF, 0, &error);
    if ((!controlWord) || (error > 100.0)) {
        char err[80];
        sprintf(err, "Cannot set event clock speed to %f MHz.\n", freq);            
        std::string strErr(err);
        throw std::runtime_error(strErr);
    }

    oldControlWord=READ32(m_pReg, FracSynthWord);

    /* Changing the control word disturbes the phase of the synthesiser
     which will cause a glitch. Don't change the control word unless needed.*/
    if(controlWord != oldControlWord){
        WRITE32(m_pReg, FracSynthWord, controlWord);
        epicsUInt32 uSecDivider = (epicsUInt16)freq;
        WRITE32(m_pReg, uSecDiv, uSecDivider);
    }

    m_fracSynFreq = FracSynthAnalyze(READ32(m_pReg, FracSynthWord), 24.0, 0);
}
OracleConnection::ObjectType OracleConnection::DescribeObjectByName(const String &command, DscHandleType &aDschp, OCIParam *&parmh)
{
	StartTrace(OracleConnection.DescribeObjectByName);
	text const *objptr = reinterpret_cast<const text *> ( (const char *) command );
	String strErr( "DescribeObjectByName: " );
	sword attrStat = OCIDescribeAny( SvcHandle(), ErrorHandle(), (dvoid *) objptr, (ub4) strlen( (char *) objptr ),
									 OCI_OTYPE_NAME, 0, OCI_PTYPE_UNK, aDschp.getHandle() );
	Trace("status after DESCRIBEANY::OCI_PTYPE_UNK: " << (long)attrStat)
	if ( checkError( attrStat, strErr ) ) {
		strErr << "{" << command << " is neither a stored procedure nor a function}";
		throw OracleException( *this, strErr );
	}

	Trace("get the parameter handle")
	attrStat = OCIAttrGet( aDschp.getHandle(), OCI_HTYPE_DESCRIBE, (dvoid *) &parmh, 0, OCI_ATTR_PARAM, ErrorHandle() );
	Trace("status after OCI_HTYPE_DESCRIBE::OCI_ATTR_PARAM: " << (long)attrStat);
	if ( checkError( attrStat ) ) {
		throw OracleException( *this, attrStat );
	}

	ObjectType aStmtType( TYPE_UNK );
	ub1 ubFuncType( 0 );
	attrStat = OCIAttrGet( parmh, OCI_DTYPE_PARAM, (dvoid *) &ubFuncType, 0, OCI_ATTR_PTYPE, ErrorHandle() );
	Trace("status after OCI_DTYPE_PARAM::OCI_ATTR_PTYPE: " << (long)attrStat << " funcType:" << (long)ubFuncType);
	if ( checkError( attrStat ) ) {
		throw OracleException( *this, attrStat );
	}
	aStmtType = (ObjectType)ubFuncType;
	return aStmtType;
}
//--------------------------------------------------------------------------------------------------------------------
//获取所要作废的空白发票信息,并修改屏幕显示
//--------------------------------------------------------------------------------------------------------------------
UINT8 CGInvLabelWin::BlankWasteShow()
{
	string strErr("");
	UINT8 ret =SUCCESS;
	UINT8 uFlag=0;
	if (0 == g_globalArg->m_curInvVol->m_curInvNo) //避免反复读盘
	{
		ret = SALE_GetCurInv(g_globalArg->m_curInvVol, strErr);
		if (ret == FAILURE)
		{
			if (strErr.length()>OBJ_TITLE_MAX_LEN)
			{
				strErr = strErr.substr(0,OBJ_TITLE_MAX_LEN);
			}
			label[0]->SetTitleAlign(CaObject::ALIGN_LEFT);
			sprintf(title_array[0], strErr.c_str()); //错误
			sprintf(title_array[1], "作废发票代码: 空");
			sprintf(title_array[2], "作废发票号码: 空");
			uFlag=1;
		}		
	}	
	if (0 == uFlag)
	{
		label[0]->SetTitleAlign(CaObject::ALIGN_CENTER);
		sprintf(title_array[0], "空白发票作废");
		sprintf(title_array[1], "作废发票代码:%s ", g_globalArg->m_curInvVol->m_code.c_str());
		sprintf(title_array[2], "作废发票号码:%08u", g_globalArg->m_curInvVol->m_curInvNo);	
	}	
	sprintf(title_array[3], "");
	sprintf(title_array[4], "");
	return SUCCESS;
}
INT32 CJSKDeclareProc::DelUploadInv()
{
	CDataInvHead dataInvHead;
	CInvServ invServ;
	INT8 sqlbuf[128];
	string strErr("");
	INT32 retcode = 0;
	
	retcode = CJSKInfoFunc::GetFirstOffInvInfo(&dataInvHead, strErr);
	if(retcode == JSK_SUCCESS)
	{
		if(dataInvHead.m_fphm != 0)
		{
			memset(sqlbuf, 0, sizeof(sqlbuf));
			sprintf(sqlbuf, "where FPDM='%s' and FPHM=%u ", dataInvHead.m_fpdm.c_str(), dataInvHead.m_fphm);
			DBG_PRINT(("sqlbuf = %s", sqlbuf));
			invServ.m_filter.append(sqlbuf);
			invServ.Requery();
			if(invServ.LoadOneRecord() == SQLITE_OK)
			{
				memset(sqlbuf, 0, sizeof(sqlbuf));
				sprintf(sqlbuf, "where NO < %u ", invServ.m_no);
				DBG_PRINT(("sqlbuf = %s", sqlbuf));
				invServ.m_filter.append(sqlbuf);
				invServ.Delete();
			}
		}
		else
		{
			invServ.Delete();
		}
	}
	
	return JSK_SUCCESS;
}
//------------------------------------------------------------------------------------
//函数名称:库存查询
//函数功能:
//函数作者:zcy
//------------------------------------------------------------------------------------
void CInvManageMenu::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen)
{
	
	if (g_globalArg->m_initFlag == 0)
	{
		CaMsgBox::ShowMsg("机器未初始化");
		return ;
	}
	
	UINT32 nNum = 0;//发票卷卷数
	string strErr("");
	UINT8 ret=SUCCESS;
	
	CaProgressBar proBar("库存查询中.....");
    proBar.ReFresh();
	
	ret =INV_GetInvVol(nNum,strErr);
	if (ret != SUCCESS)
	{
		CaMsgBox::ShowMsg(strErr);
		return ;
	}
	DBG_PRINT(("库存查询ret = %u, nNum = %u", ret, nNum));

	DBG_PRINT(("库存查询成功"));
	
	if (nNum ==0)
	{
		CaMsgBox::ShowMsg("库存无票源");
		return ;
	}
	m_InvWin_level1 = INV_DIST_QUERY_L1;
	ChangeWin(GENERAL_INV_LABEL_WIN);
}
void CNet3GWlenSetWin::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen)
{
	int ret=0;
	string strErr("");
	CaProgressBar proBar("");
	
	string username = (char *)m_pInput1->m_contentBuf;
	string userpwd  = (char *)m_pInput2->m_contentBuf;

	if (g_netManager->GetConnectionMode() != NET_3G)
	{
		CaMsgBox::ShowMsg("当前非3G模式,无法修改");
		return;
	}
	if (g_netManager->checkConnect() != CONNECT_OFF)
	{
		CaMsgBox::ShowMsg("3G连接尚未断开,无法修改");
		return;
	}
	
	proBar.SetText("3G用户信息设置中...");
	proBar.Show();
	if( username.length() <= 0 )
	{
		CaMsgBox::ShowMsg("3G账号不能为空");
		m_pInput1->SetFocus();
		this->ReFresh();
		return;
	}
	if( userpwd.length() <= 0 )
	{
		CaMsgBox::ShowMsg("密码不能为空");
		m_pInput2->SetFocus();
		this->ReFresh();
		return;
	}
	if( userpwd == "********" )
	{
		userpwd = m_strUsrPwd;
	}

	CNetConnection *p = g_netManager->GetConnectionHandle();
	ret = p->setUserNamePwd(username, userpwd, strErr);
	if (ret != NET_SUCCESS)
	{
		CaMsgBox::ShowMsg(strErr);
		return;
	}
	else
	{
 		CaMsgBox::ShowMsg("3G信息配置成功");
 		ClearWin();
		ChangeWin(NET_3G_WLEN_MENU);
	}

}
Exemple #15
0
void
evgEvtClk::setRFFreq (epicsFloat64 RFref) {
    if(RFref < 50.0f || RFref > 1600.0f) {
        char err[80];
        sprintf(err, "Cannot set RF frequency to %f MHz. Valid range is 50 - 1600.", RFref);
        std::string strErr(err);
        throw std::runtime_error(strErr);
    }

    m_RFref = RFref;
}
void
evgEvtClk::setRFDiv(epicsUInt32 rfDiv) {
    if(rfDiv < 1    || rfDiv > 32) {
        char err[80];
        sprintf(err, "Invalid RF Divider %d. Valid range is 1 - 32", rfDiv);
        std::string strErr(err);
        throw std::runtime_error(strErr);
    }

    WRITE8(m_pReg, RfDiv, rfDiv-1);
}
string SettingsParser::Str (string name)
{
	string keyFull = "master." + name ;
	string val ;
	// if the key does not exist
	if(!_pConfiguration->lookupValue(keyFull, val)) {
		string strErr   ("key <" + name + "> does not exist !!!!") ;
		strErr = "key <" + name + "> does not exist !!!!" ;
		throw std::runtime_error(strErr);
	}
	return val ;
}
Exemple #18
0
std::string NX::Program::LinkProgram(){
    for(int i = 0, len = (int)m_vShaderSet.size(); i < len; ++i){
        if(m_vShaderSet[i] == NULL){
            continue;
        }
        glAttachShader(m_uProgramId, (int)(*m_vShaderSet[i]));
    }
    glLinkProgram(m_uProgramId);
    std::string strErr(256,0);
    glGetProgramInfoLog(m_uProgramId, int(strErr.size()-1), NULL, &(strErr[0]));
    glb_GetLog().log("Link program with link msg [%s]",(strErr[0] == 0 ? "link succeed" : strErr.c_str()));
    return strErr;
}
Exemple #19
0
void CMCIDevice::OnError(MCIERROR dwError)
{
	if (0 == dwError)
		return;

	CString strErr(_T("Unknown"));
	TCHAR szErr[MCI_MAXSTRINGLEN + 1];
	if (::mciGetErrorString(dwError, szErr, sizeof(MCI_MAXSTRINGLEN))) {
		strErr = szErr;
	}
	TRACE(_T("CMCIDevice::OnError: (%u) : %s\n"), dwError, (LPCTSTR)strErr);
	//::MessageBox(0, szErr, "MCI_RECORD", MB_ICONEXCLAMATION | MB_OK);
}
void CNetAutoDialSetWin::DispParalInfo()
{
	char chValue[32];
	INT32 autoDialType=0;
	string strErr("");

	CNetDBWork::loadAutoDialType(&autoDialType, strErr);
	memset(chValue, 0, sizeof(chValue));
	sprintf(chValue, "原 值: %d", autoDialType);
	m_pLbl1->SetTitle(chValue, strlen(chValue));

	m_pInput1->Clear();
}
void CMaintenanceMenu::OnButton10(int iEvent, unsigned char * pEventData, int iDataLen)
{
	string strErr("");
	UINT8 ret =SUCCESS;
	ret= LibClearDepotFunc(strErr);

	if (ret != SUCCESS)
	{
		CaMsgBox::ShowMsg(strErr);

	}
	return;
}
Exemple #22
0
void
evgEvtClk::setRFDiv(epicsUInt32 rfDiv) {
    if(rfDiv < 1    || rfDiv > 32) {
        char err[80];
        sprintf(err, "Invalid RF Divider %d. Valid range is 1 - 32", rfDiv);
        std::string strErr(err);
        throw std::runtime_error(strErr);
    }
    
    epicsUInt32 temp = READ32(m_pReg, ClockControl);
    temp &= ~ClockControl_Div_MASK;
    temp |= (rfDiv-1)<<ClockControl_Div_SHIFT;

    WRITE32(m_pReg, ClockControl, temp);
}
int CSysMainMenu::ProcEvent(int iEvent,unsigned char *pEventData, int iDataLen)
{

	INT8 chValue[64];
	memset((void *)chValue,0x00,sizeof(chValue));
	UINT32 uServNum;
	string strErr("");
  
	if (ESC_KEY == iEvent || LOCKED_KEY == iEvent )
	{
		CaMsgBox msgBox("退出当前操作员?",CaMsgBox::MB_YESNO);
		msgBox.ShowBox();	
		if (msgBox.m_iStatus == OK_PRESSED)
		{	
			g_globalArg->m_threadIn = 0;//关闭次线程的待上传发票查找
			ChangeWin(LOGIN_WIN);
			return SUCCESS;
		}
	}
/*
	if(FIND_KEY == iEvent)
	{
		UINT8 ret= GetServNum(uServNum,strErr);
		if ( ret !=SUCCESS)
		{
			CaMsgBox::ShowMsg(strErr);
		}
		else
		{
			DBG_PRINT(("缓存张数 uServNum= %u", uServNum));
			if (uServNum ==0)
			{
				sprintf(chValue, "无待上传发票!");
			}
			else
			{
				sprintf(chValue, " 未上传发票张数: %u", uServNum);
			}
			CaMsgBox::ShowMsg(chValue);
		}

		return SUCCESS;
	}
	*/

	return CMultiBtnCommonWin::ProcEvent(iEvent,pEventData,iDataLen);
}
Exemple #24
0
int main(int argc, char* argv[])
{
	// Declare a local stack allocator
	OOBase::StackAllocator<1024> allocator;

	// Set up the command line args
	OOBase::CmdArgs cmd_args(allocator);
	cmd_args.add_option("help",'h');
	cmd_args.add_option("version",'v');

	// Parse command line
	OOBase::CmdArgs::results_t args(allocator);
	int err = cmd_args.parse(argc,argv,args);
	if (err	!= 0)
	{
		OOBase::LocalString strErr(allocator);
		if (args.find("missing",strErr))
		{
			OOBase::stderr_write("Missing value for option ");
			OOBase::stderr_write(strErr.c_str());
		}
		else if (args.find("unknown",strErr))
		{
			OOBase::stderr_write("Unknown option ");
			OOBase::stderr_write(strErr.c_str());
		}
		else
		{
			OOBase::stderr_write("Failed to parse comand line: ");
			OOBase::stderr_write(OOBase::system_error_text(err));
		}
		return EXIT_FAILURE;
	}

	if (args.exists("help"))
		return help();

	if (args.exists("version"))
		return version();

	OOBase::stdout_write(Omega::guid_t::Create().ToString().c_str());
	OOBase::stdout_write("\n");

	return EXIT_SUCCESS;
}
void CChangeDiskPswWin::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen)
{
	UINT8 ret = CheckInput();
	if (ret !=SUCCESS)
	{
		return;
	}

	string strErr("");
    ret= FSC_ChangeDiskPsw(m_OldPsw, m_NewPsw,strErr);
	if (ret != SUCCESS)
	{
		CaMsgBox::ShowMsg(strErr);
		return;
	}

	ChangeWin(FISCAL_MAIN_MENU);	 //返回税控档菜单
}
Exemple #26
0
bool SHMSink::stop()
{
    if (fd_ >= 0 and close(fd_) == -1)
        strErr();

    fd_ = -1;

    if (not opened_name_.empty()) {
        shm_unlink(opened_name_.c_str());
        opened_name_ = "";
    }

    if (shm_area_ != MAP_FAILED)
        munmap(shm_area_, shm_area_len_);
    shm_area_len_ = 0;
    shm_area_ = static_cast<SHMHeader*>(MAP_FAILED);

    return true;
}
void CApnAccPointSetWin::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen)
{
	int ret=0;
	string apnAccPoint(""), apnNumber("");
	string strErr("");
	CaProgressBar proBar("");

	if (g_netManager->GetConnectionMode() != NET_M2M_APN)
	{
		CaMsgBox::ShowMsg("当前非M2M APN模式,无法修改");
		return;
	}

	//只有apnAccPoint可设置,apnNumber是清库时固定死的
	CNetDBWork::load_APN_Acc_Num(apnAccPoint, apnNumber, strErr);

	proBar.SetText("接入点设置中...");
	proBar.ReFresh();

	apnAccPoint = (char *)m_pInput1->m_contentBuf;
	if( apnAccPoint.length() <= 0 )
	{
		CaMsgBox::ShowMsg("接入点不能为空");
		m_pInput1->SetFocus();
		this->ReFresh();
		return;
	}

	M2M_APN_Connection *pAPN = (M2M_APN_Connection *)g_netManager->GetConnectionHandle();

	ret = pAPN->setApn_Acc_Num(apnAccPoint, apnNumber, strErr);
	if (ret != NET_SUCCESS)
	{
		DBG_PRINT(("ret = %d", ret))
		CaMsgBox::ShowMsg(strErr);
		return;
	}

	CaMsgBox::ShowMsg("APN接入点设置成功");
	ClearWin();
	ChangeWin(M2M_MANAGE_MENU);
}
//--------------------------------------------------------------------------------------------------------------------
//已开发票作废对应的Button1函数
//--------------------------------------------------------------------------------------------------------------------
void CGInvLabelWin::InvUsedWasteBtn1()
{
	UINT8 nRet = 0;
	string strErr("");
	if (g_globalArg->m_operator->m_role == DEMO_ROLE) 
	{
		CaMsgBox::ShowMsg("学习角色不能作废已开票");
		return;
	}
	nRet = CheckCancelValid();
	if (SUCCESS != nRet)
	{
		return;
	}
	
	CaMsgBox msgBox("是否作废?",CaMsgBox::MB_YESNO);
	msgBox.ShowBox();
	if (msgBox.m_iStatus != OK_PRESSED)
	{
		return;
	}
    else
	{
		CaProgressBar proBar("发票作废中.....");
		proBar.Show();
		m_pLInvHead->m_zskl = g_globalArg->m_strZskl;
		
		nRet = INVM_WstInv(m_pLInvHead, strErr);
		if (SUCCESS != nRet)
		{
			CaMsgBox::ShowMsg(strErr);
			ChangeWin(GENERAL_INV_INPUT_WIN);	 //返回INPUT界面
			return;
		}
		else
		{
			CaMsgBox::ShowMsg("发票作废成功");
			ChangeWin(GENERAL_INV_MTLBTN_WIN);	 //返回MultButton界面
			return;
		}
	}
}
void CNet3GWlenSetWin::Disp3GInfo()
{
	INT32 ret=0;
	string name(""), pwd("");
	string strErr("");

	ret = CNetDBWork::load3gUserNamePwd(name, pwd, strErr);
	if (ret != SQLITE_OK)
	{
		DBG_PRINT(("ret = %d", ret))
		CaMsgBox::ShowMsg(strErr);
		return;
	}
	m_pInput1->SetContentBuf((UINT8 *)name.c_str(), name.length());
	if (pwd!="")
		m_pInput2->SetContentBuf((UINT8 *)"********", strlen("********"));
	else
		m_pInput2->SetContentBuf((UINT8 *)"", strlen(""));
	m_strUsrPwd = pwd;
}
void CApnAccPointSetWin::DispApnAccPointInfo()
{
	int ret=0;
    INT32 titleLen=0;	
	INT8 title[64];
	string acc(""), num("");
	string strErr("");

	ret = CNetDBWork::load_APN_Acc_Num(acc, num, strErr);
	if (ret != SQLITE_OK)
	{
		DBG_PRINT(("ret = %d", ret))
		CaMsgBox::ShowMsg(strErr);
		return;
	}
	m_pInput1->SetContentBuf((UINT8 *)acc.c_str(), acc.length());

	sprintf(title, "号   码:%s", num.c_str());
	titleLen = strlen(title);
	m_pLabel1->SetTitle(title, titleLen);	

}