示例#1
0
void PeerData::updateNameDelayed(
		const QString &newName,
		const QString &newNameOrPhone,
		const QString &newUsername) {
	if (name == newName) {
		if (isUser()) {
			if (asUser()->nameOrPhone == newNameOrPhone
				&& asUser()->username == newUsername) {
				return;
			}
		} else if (isChannel()) {
			if (asChannel()->username == newUsername) {
				return;
			}
		} else if (isChat()) {
			return;
		}
	}

	++nameVersion;
	name = newName;
	nameText.setText(st::msgNameStyle, name, Ui::NameTextOptions());
	refreshEmptyUserpic();

	Notify::PeerUpdate update(this);
	update.flags |= UpdateFlag::NameChanged;
	update.oldNameFirstChars = nameFirstChars();

	if (isUser()) {
		if (asUser()->username != newUsername) {
			asUser()->username = newUsername;
			update.flags |= UpdateFlag::UsernameChanged;
		}
		asUser()->setNameOrPhone(newNameOrPhone);
	} else if (isChannel()) {
		if (asChannel()->username != newUsername) {
			asChannel()->username = newUsername;
			if (newUsername.isEmpty()) {
				asChannel()->removeFlags(
					MTPDchannel::Flag::f_username);
			} else {
				asChannel()->addFlags(MTPDchannel::Flag::f_username);
			}
			update.flags |= UpdateFlag::UsernameChanged;
		}
	}
	fillNames();
	Notify::PeerUpdated().notify(update, true);
}
示例#2
0
void SessionChildItem::updateIcon()
{
    if (isChannel())
        setIcon("icon-m-conversation-group-chat");
    else
        setIcon("icon-m-content-avatar-placeholder");
}
示例#3
0
not_null<PeerData*> HistoryItem::senderOriginal() const {
	if (const auto forwarded = Get<HistoryMessageForwarded>()) {
		return forwarded->originalSender;
	}
	const auto peer = history()->peer;
	return (peer->isChannel() && !peer->isMegagroup()) ? peer : from();
}
示例#4
0
void AlexSim::writeHist(const QString filename) const
{
    long ii;
    long nbins=(long)((t-tStart)/burstDuration*10);
    if(nbins==0||photons.size()==0) qWarning()<<"writeHist: no photon records ";
    gsl_histogram * histDonor = gsl_histogram_alloc (nbins);
    gsl_histogram_set_ranges_uniform (histDonor, tStart, t); // change t to tEnd if the latter is implemented
    gsl_histogram * histAcceptor = gsl_histogram_alloc (nbins);
    gsl_histogram_set_ranges_uniform (histAcceptor, tStart, t); // change t to tEnd if the latter is implemented
    for (ii=0;ii<photons.size();ii++) {
#ifdef PHOTONMACRO
        if(isChannel(photons.at(ii),DonorEm)) gsl_histogram_increment (histDonor, photons.at(ii).time);
#else
        if(photons.at(ii).isChannel(DonorEm)) gsl_histogram_increment (histDonor, photons.at(ii).time);
#endif
        else gsl_histogram_increment (histAcceptor, photons.at(ii).time);
    }

    QFile file(filename);
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text)) QMessageBox::warning(0, "error", file.errorString());
    QTextStream out(&file);
    out <<"# Simulation data. photon count over time. parameters are:\n";
    out <<"# rateDonor="<<rateDemDex<<"\trateAcceptor="<<rateAemAex<<"\trateBackground="<<rateBackground<<"\tburstDuration="<<burstDuration<<"\tsigma="<<sigma<<"\ttStart="<<tStart<<"\ttEnd="<<tEnd()<<"\n";
    out.setRealNumberPrecision(11);
    out <<"#  time in ms \tdonor channel \tacceptor channel\n";

    for(ii=0;ii<histDonor->n;ii++) {
        out << histDonor->range[ii]*1e3 << "\t" << gsl_histogram_get(histDonor,ii) << "\t" << gsl_histogram_get(histAcceptor,ii) << "\n";
    }
    file.close();
    gsl_histogram_free (histDonor);
    gsl_histogram_free (histAcceptor);

    qDebug()<<nbins<<"histogram entries written to file "<<filename;
}
示例#5
0
IrcCommandInfo IrcCommandParserPrivate::parseSyntax(IrcCommand::Type type, const QString& syntax)
{
    IrcCommandInfo cmd;
    QStringList tokens = syntax.split(QLatin1Char(' '), QString::SkipEmptyParts);
    if (!tokens.isEmpty()) {
        cmd.type = type;
        cmd.command = tokens.takeFirst().toUpper();
        cmd.syntax = tokens.join(QLatin1String(" "));
        cmd.max = tokens.count();

        IrcParameterInfo param;
        for (int i = 0; i < tokens.count(); ++i) {
            const QString& token = tokens.at(i);
            param.optional = isOptional(token);
            param.channel = isChannel(token);
            param.current = isCurrent(token);
            param.multi = isMultiWord(token);
            if (!param.optional)
                ++cmd.min;
            if (param.optional && param.channel)
                ++cmd.min;
            const bool last = (i == tokens.count() - 1);
            if (last && param.multi)
                cmd.max = INT_MAX;
            cmd.params += param;
        }
    }
    return cmd;
}
示例#6
0
void SessionChildItem::receiveMessage(IrcMessage* message)
{
    AbstractSessionItem::receiveMessage(message);
    if (message->type() == IrcMessage::Private)
    {
        IrcPrivateMessage* privMsg = static_cast<IrcPrivateMessage*>(message);

        QString alertText;
        if (isChannel())
        {
            if (privMsg->message().contains(m_parent->session()->nickName(), Qt::CaseInsensitive))
            {
                setHighlighted(true);
                if (!isCurrent())
                    alertText = tr("%1 on %2:\n%3").arg(privMsg->sender().name()).arg(title()).arg(privMsg->message());
            }
        }
        else
        {
            setHighlighted(true);
            if (!isCurrent())
                alertText = tr("%1 in private:\n%2").arg(privMsg->sender().name()).arg(privMsg->message());
        }

        if (!alertText.isEmpty())
        {
            setAlertText(alertText);
            emit alert(this);
        }

        if (!isCurrent())
            setUnreadCount(unreadCount() + 1);
    }
    else if (message->type() == IrcMessage::Numeric)
    {
        IrcNumericMessage* numMsg = static_cast<IrcNumericMessage*>(message);
        if (isChannel() && numMsg->code() == Irc::RPL_TOPIC)
            setSubtitle(numMsg->parameters().value(2));
        else if (!isChannel() && numMsg->code() == Irc::RPL_WHOISUSER)
            setSubtitle(numMsg->parameters().value(5));
    }
}
示例#7
0
bool HistoryItem::canDeleteForEveryone(TimeId now) const {
	const auto peer = history()->peer;
	const auto messageToMyself = peer->isSelf();
	const auto messageTooOld = messageToMyself
		? false
		: peer->isUser()
		? (now - date() >= Global::RevokePrivateTimeLimit())
		: (now - date() >= Global::RevokeTimeLimit());
	if (id < 0 || messageToMyself || messageTooOld || isPost()) {
		return false;
	}
	if (peer->isChannel()) {
		return false;
	} else if (const auto user = peer->asUser()) {
		// Bots receive all messages and there is no sense in revoking them.
		// See https://github.com/telegramdesktop/tdesktop/issues/3818
		if (user->botInfo) {
			return false;
		}
	}
	if (!toHistoryMessage()) {
		return false;
	} else if (const auto media = this->media()) {
		if (!media->allowsRevoke()) {
			return false;
		}
	}
	if (!out()) {
		if (const auto chat = peer->asChat()) {
			if (!chat->amCreator()
				&& !(chat->adminRights()
					& ChatAdminRight::f_delete_messages)) {
				return false;
			}
		} else if (peer->isUser()) {
			return Global::RevokePrivateInbox();
		} else {
			return false;
		}
	}
	return true;
}
示例#8
0
HistoryMessage::HistoryMessage(
	not_null<History*> history,
	MsgId id,
	MTPDmessage::Flags flags,
	TimeId date,
	UserId from,
	const QString &postAuthor,
	not_null<HistoryMessage*> original)
: HistoryItem(
		history,
		id,
		NewForwardedFlags(history->peer, from, original) | flags,
		date,
		from) {
	CreateConfig config;

	if (original->Has<HistoryMessageForwarded>() || !original->history()->peer->isSelf()) {
		// Server doesn't add "fwd_from" to non-forwarded messages from chat with yourself.
		config.originalDate = original->dateOriginal();
		auto senderOriginal = original->senderOriginal();
		config.senderOriginal = senderOriginal->id;
		config.authorOriginal = original->authorOriginal();
		if (senderOriginal->isChannel()) {
			config.originalId = original->idOriginal();
		}
	}
	if (history->peer->isSelf()) {
		//
		// iOS app sends you to the original post if we forward a forward from channel.
		// But server returns not the original post but the forward in saved_from_...
		//
		//if (config.originalId) {
		//	config.savedFromPeer = config.senderOriginal;
		//	config.savedFromMsgId = config.originalId;
		//} else {
			config.savedFromPeer = original->history()->peer->id;
			config.savedFromMsgId = original->id;
		//}
	}
	if (flags & MTPDmessage::Flag::f_post_author) {
		config.author = postAuthor;
	}
	auto fwdViaBot = original->viaBot();
	if (fwdViaBot) config.viaBotId = peerToUser(fwdViaBot->id);
	int fwdViewsCount = original->viewsCount();
	if (fwdViewsCount > 0) {
		config.viewsCount = fwdViewsCount;
	} else if (isPost()) {
		config.viewsCount = 1;
	}

	// Copy inline keyboard when forwarding messages with a game.
	auto mediaOriginal = original->media();
	if (mediaOriginal && mediaOriginal->game()) {
		config.inlineMarkup = original->inlineReplyMarkup();
	}

	createComponents(config);

	auto ignoreMedia = [&] {
		if (mediaOriginal && mediaOriginal->webpage()) {
			if (const auto channel = history->peer->asChannel()) {
				if (channel->restricted(ChannelRestriction::f_embed_links)) {
					return true;
				}
			}
		}
		return false;
	};
	if (mediaOriginal && !ignoreMedia()) {
		_media = mediaOriginal->clone(this);
	}
	setText(original->originalText());
}
示例#9
0
void SessionChildItem::close()
{
    if (isChannel())
        m_parent->session()->sendCommand(IrcCommand::createPart(title(), "Communi 1.0.0 for N9"));
    m_parent->removeChild(title());
}
示例#10
0
void SessionChildItem::receiveMessage(IrcMessage* message)
{
    if (m_usermodel)
        m_usermodel->processMessage(message);

    if (message->type() == IrcMessage::Numeric) {
        IrcNumericMessage* numeric = static_cast<IrcNumericMessage*>(message);
        switch (numeric->code()) {
            case Irc::RPL_NAMREPLY:
                if (m_sent.contains(IrcCommand::Names))
                    return;
                break;
            case Irc::RPL_ENDOFNAMES:
                if (m_sent.contains(IrcCommand::Names)) {
                    emit namesReceived(m_usermodel->users());
                    m_sent.remove(IrcCommand::Names);
                    return;
                }
                break;
            case Irc::RPL_TOPIC:
                if (isChannel()) {
                    setSubtitle(message->parameters().value(2));
                    setDescription(IrcUtil::messageToHtml(subtitle()));
                }
                break;
            case Irc::RPL_WHOISUSER:
                if (!isChannel()) {
                    setSubtitle(message->parameters().value(5));
                    setDescription(IrcUtil::messageToHtml(subtitle()));
                }
                if (m_sent.contains(IrcCommand::Whois)) {
                    m_whois.append(tr("Ident: %1").arg(message->parameters().value(2)));
                    m_whois.append(tr("Host: %1").arg(message->parameters().value(3)));
                    m_whois.append(tr("Name: %1").arg(message->parameters().value(5)));
                    return;
                }
                break;
            case Irc::RPL_WHOISSERVER:
                if (m_sent.contains(IrcCommand::Whois)) {
                    m_whois.append(tr("Server: %1 (%2)").arg(message->parameters().value(2), message->parameters().value(3)));
                    return;
                }
                break;
            case Irc::RPL_WHOISOPERATOR:
                if (m_sent.contains(IrcCommand::Whois)) {
                    m_whois.append(tr("IRC operator"));
                    return;
                }
                break;
            case Irc::RPL_WHOISACCOUNT:
                if (m_sent.contains(IrcCommand::Whois)) {
                    m_whois.append(tr("Logged in as: %1").arg(message->parameters().value(2)));
                    return;
                }
                break;
            case Irc::RPL_WHOISREGNICK:
                if (m_sent.contains(IrcCommand::Whois)) {
                    m_whois.append(tr("Registered nick"));
                    return;
                }
                break;
            case Irc::RPL_WHOISSECURE:
                if (m_sent.contains(IrcCommand::Whois)) {
                    m_whois.append(tr("Secure connection"));
                    return;
                }
                break;
            case Irc::RPL_WHOISIDLE:
                if (m_sent.contains(IrcCommand::Whois)) {
                    QDateTime signon = QDateTime::fromTime_t(message->parameters().value(3).toInt());
                    QTime idle = QTime().addSecs(message->parameters().value(2).toInt());
                    m_whois.append(tr("Connected: %1").arg(signon.toString()));
                    m_whois.append(tr("Idle: %1").arg(idle.toString()));
                    return;
                }
                break;
            case Irc::RPL_WHOISCHANNELS:
                if (m_sent.contains(IrcCommand::Whois)) {
                    m_whois.append(tr("Channels: %1").arg(message->parameters().value(2)));
                    return;
                }
                break;
            case Irc::RPL_WHOISHOST:
            case Irc::RPL_WHOISMODES:
                if (m_sent.contains(IrcCommand::Whois)) {
                    return;
                }
                break;
            case Irc::RPL_ENDOFWHOIS:
                if (m_sent.contains(IrcCommand::Whois)) {
                    emit whoisReceived(m_whois);
                    m_sent.remove(IrcCommand::Whois);
                    m_whois.clear();
                }
            case Irc::RPL_WHOISHELPOP:
            case Irc::RPL_WHOISSPECIAL:
                return;
            default:
                break;
        }
    }

    if (message->type() == IrcMessage::Private) {
        IrcPrivateMessage* privMsg = static_cast<IrcPrivateMessage*>(message);

        QString alertText;
        if (isChannel()) {
            if (privMsg->message().contains(m_parent->session()->nickName(), Qt::CaseInsensitive)) {
                setHighlighted(true);
                if (!isCurrent())
                    alertText = tr("%1 on %2:\n%3").arg(privMsg->sender().name()).arg(title()).arg(privMsg->message());
            }
        } else {
            setHighlighted(true);
            if (!isCurrent())
                alertText = tr("%1 in private:\n%2").arg(privMsg->sender().name()).arg(privMsg->message());
        }

        if (!alertText.isEmpty())
            emit alerted(alertText);

        if (!isCurrent())
            setUnreadCount(unreadCount() + 1);
    }

    const QString formatted = messageFormatter()->formatMessage(message, m_usermodel);
    if (!formatted.isEmpty())
        appendMessage(formatted);
}
示例#11
0
bool SessionChildItem::hasUser(const QString& user) const
{
    return (!session()->nickName().compare(user, Qt::CaseInsensitive)) ||
           (!isChannel() && !receiver().compare(user, Qt::CaseInsensitive)) ||
           (isChannel() && m_usermodel->hasUser(user));
}
示例#12
0
void Window::display() {

    if (view == MODEL_VIEW) {
        if (curSTATE & WIREFRAME) {
            glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
            Scene::toggleLights(false);
        } else if (curSTATE & POINT_DISP) {
            glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);
            Scene::toggleLights(false);
        } else { 
            glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
            Scene::toggleLights(true);
        }
        if (curSTATE & SMOOTH_SD) {
            glShadeModel(GL_SMOOTH);
        } else {
            glShadeModel(GL_FLAT);
        }

        glViewport(x, y, w, h);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        if (cam != NULL) {
            gluPerspective(cam->fovy, (GLdouble)w/(GLdouble)h, cam->zNear, cam->zFar);

            glMatrixMode(GL_MODELVIEW);
            glLoadIdentity();
            // USE GLULOOKAT
            mat4 M = cam->lookAt();
            glMultMatrixf(M.mat_array);
        }
        Scene::displayLights();
        Scene::showScene();
    } else if (view == IMAGE_VIEW) {
        // display grid with current selected texture.... 
    } else if (view == CHANNEL_VIEW) {
        glViewport(x, y, w, h);
        Scene::toggleLights(false);
        glDisable(GL_DEPTH_TEST);
        glMatrixMode(GL_PROJECTION);
        glPushMatrix();
        glLoadIdentity();
        gluOrtho2D(x,x+w,y,y+h);
        glMatrixMode(GL_MODELVIEW);
        glPushMatrix();
        glLoadIdentity();

        glLineWidth(3.0f);
        for(unsigned int i=0;i<allOBJS.size();i++) {
            if (isChannel(allOBJS[i]) && CH(allOBJS[i])->enabled) {
                //glColor3f(float((i+1) & 4), float((i+1) & 2), float((i+1) & 1));
                float r = float((i+1) & 4); float g = float((i+1) & 2); float b= float((i+1) & 1);
                if (! bool(r+g+b) ) r = g = b = 1;
                glColor3f(r,g,b);
                CH(allOBJS[i])->display(x,y,w,h,scopeB, scopeAmountx, scopeAmounty);
            }
        }
        glLineWidth(1.0f);
        glColor3f(1.0f,1.0f,1.0f);

        glMatrixMode(GL_PROJECTION);
        glPopMatrix();
        glMatrixMode(GL_MODELVIEW);
        glPopMatrix();
        glEnable(GL_DEPTH_TEST);
        Scene::toggleLights(true);

    }


}
示例#13
0
void Get_m0_m12_robin(TFile *file){

  TH1I* runNumber  = (TH1I*)(file ->Get("runNumber_histo")) ;  
//  int Nevents = (int)(runNumber ->Integral());
  double run = (runNumber ->GetMean());

  double m0=0.;
  double m12=0.;
  
  get_m0_m12(run, &m0, &m12);

  myfile << "  if (run=="<<run<<") {"<<endl;
  
// GET NLO XSECTION  

  double NLOcrossSection = 0.;
  double NLOcrossSection_cs = 0.;
  double NLOcrossSection_gq = 0.;
  double NLOcrossSection_gg= 0.; 
  double NLOcrossSection_qq= 0.; 
  double NLOcrossSection_qaq= 0.;
  double NLOcrossSection_tt = 0.;
  double NLOcrossSection_bb = 0.;
  double NLOcrossSection_gchi= 0.;
  double NLOcrossSection_qqchi= 0.;

  int maxchannels=91;

  for(int i = 0; i < maxchannels;i++){
    if (isChannel(i)){
    //cout << i << endl;
      double thisCrossSection = getUncertaintyValue(m0,m12, i, "crossSection", file_robin);
      NLOcrossSection +=thisCrossSection;
      
      if (i==1) NLOcrossSection_gq  +=thisCrossSection;
      if (i==2) NLOcrossSection_gg  +=thisCrossSection;
      if (i==3) NLOcrossSection_qq  +=thisCrossSection;
      if (i==4) NLOcrossSection_qaq +=thisCrossSection;
      if (i==51) NLOcrossSection_tt +=thisCrossSection;
      if (i==52) NLOcrossSection_tt +=thisCrossSection;
      if (i==61) NLOcrossSection_bb +=thisCrossSection;
      if (i==62) NLOcrossSection_bb +=thisCrossSection;
      if ((i>=71)&&(i<=78)) NLOcrossSection_gchi  +=thisCrossSection;
      if ((i>=81)&&(i<=88)) NLOcrossSection_qqchi +=thisCrossSection;
     
      myfile << "    if (channel=="<<i<<") {*xsection_process ="<<thisCrossSection<<";}"<<endl;
    }
  }
  
  myfile << "    *xsection = "<<NLOcrossSection<<";"<<endl;
  myfile << "  }"<<endl;
  
  cout << "  run "<<run<<" m0 "<<m0<<" m12 "<<m12<<" x-section "<<NLOcrossSection<<endl;
  
  grid_cs ->Fill(m0, m12, NLOcrossSection);
  grid_gq ->Fill(m0, m12, NLOcrossSection_gq);
  grid_gg ->Fill(m0, m12, NLOcrossSection_gg);
  grid_qq ->Fill(m0, m12, NLOcrossSection_qq);
  grid_qaq->Fill(m0, m12, NLOcrossSection_qaq);
  grid_tt ->Fill(m0, m12, NLOcrossSection_tt);
  grid_bb ->Fill(m0, m12, NLOcrossSection_bb);
  grid_gchi->Fill(m0, m12, NLOcrossSection_gchi); 
  grid_qqchi->Fill(m0, m12, NLOcrossSection_qqchi);  


}
示例#14
0
command parseScopeCmd(void){
	command cmdIn=CMD_ERR;
	uint8_t error=0;
	//try to parse command while buffer is not empty 

///////		do{ 
		cmdIn = giveNextCmd();
		switch(cmdIn){
			case CMD_SCOPE_TRIG_MODE://set trigger mode
				cmdIn = giveNextCmd();
				if(isScopeTrigMode(cmdIn)){
					if(cmdIn == CMD_MODE_NORMAL){
						scopeSetTriggerMode(TRIG_NORMAL);
					}else if(cmdIn == CMD_MODE_AUTO){
						scopeSetTriggerMode(TRIG_AUTO);
					}else if(cmdIn == CMD_MODE_SINGLE){
						scopeSetTriggerMode(TRIG_SINGLE);
					}
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;
				
			case CMD_SCOPE_TRIG_EDGE: //set trigger edge
				cmdIn = giveNextCmd();
				if(isScopeTrigEdge(cmdIn)){
					if(cmdIn == CMD_EDGE_RISING){
						scopeSetTriggerEdge(EDGE_RISING);
					}else if(cmdIn == CMD_EDGE_FALLING){
						scopeSetTriggerEdge(EDGE_FALLING);
					}
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;		
				
			case CMD_SCOPE_CHANNELS: //set number of channels
				cmdIn = giveNextCmd();
				if(isChannel(cmdIn)){
					if(cmdIn == CMD_CHANNELS_1){
						error=scopeSetNumOfChannels(1);
					}else if(cmdIn == CMD_CHANNELS_2){
						error=scopeSetNumOfChannels(2);
					}else if(cmdIn == CMD_CHANNELS_3){
						error=scopeSetNumOfChannels(3);
					}else if(cmdIn == CMD_CHANNELS_4){
						error=scopeSetNumOfChannels(4);
					}
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;
				
			case CMD_SCOPE_TRIG_CHANNEL: //set trigger channel
				cmdIn = giveNextCmd();
				if(isChannel(cmdIn)){
					if(cmdIn == CMD_CHANNELS_1){
						error=scopeSetTrigChannel(1);
					}else if(cmdIn == CMD_CHANNELS_2){
						error=scopeSetTrigChannel(2);
					}else if(cmdIn == CMD_CHANNELS_3){
						error=scopeSetTrigChannel(3);
					}else if(cmdIn == CMD_CHANNELS_4){
						error=scopeSetTrigChannel(4);
					}
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;
				
			case CMD_SCOPE_DATA_DEPTH: //set data bit depth
				cmdIn = giveNextCmd();
				if(isScopeDataDepth(cmdIn)){
					if(cmdIn == CMD_DATA_DEPTH_12B){
						error=scopeSetDataDepth(12);
					}else if(cmdIn == CMD_DATA_DEPTH_10B){
						error=SCOPE_UNSUPPORTED_RESOLUTION;
					}else if(cmdIn == CMD_DATA_DEPTH_8B){
						error=scopeSetDataDepth(8);
					}else if(cmdIn == CMD_DATA_DEPTH_6B){
						error=SCOPE_UNSUPPORTED_RESOLUTION;
					}
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;
				
			case CMD_SCOPE_SAMPLING_FREQ: //set sampling frequency
				cmdIn = giveNextCmd();
				if(isScopeFreq(cmdIn)){
					if(cmdIn == CMD_FREQ_1K){
						error=scopeSetSamplingFreq(1000);
					}else if(cmdIn == CMD_FREQ_2K){
						error=scopeSetSamplingFreq(2000);
					}else if(cmdIn == CMD_FREQ_5K){
						error=scopeSetSamplingFreq(5000);
					}else if(cmdIn == CMD_FREQ_10K){
						error=scopeSetSamplingFreq(10000);
					}else if(cmdIn == CMD_FREQ_20K){
						error=scopeSetSamplingFreq(20000);
					}else if(cmdIn == CMD_FREQ_50K){
						error=scopeSetSamplingFreq(50000);
					}else if(cmdIn == CMD_FREQ_100K){
						error=scopeSetSamplingFreq(100000);
					}else if(cmdIn == CMD_FREQ_200K){
						error=scopeSetSamplingFreq(200000);
					}else if(cmdIn == CMD_FREQ_500K){
						error=scopeSetSamplingFreq(500000);
					}else if(cmdIn == CMD_FREQ_1M){
						error=scopeSetSamplingFreq(1000000);
					}else if(cmdIn == CMD_FREQ_2M){
						error=scopeSetSamplingFreq(2000000);
					}else if(cmdIn == CMD_FREQ_5M){
						error=scopeSetSamplingFreq(5000000);
					}else if(cmdIn == CMD_FREQ_10M){
						error=scopeSetSamplingFreq(10000000);
					}
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;
						
			case CMD_SCOPE_TRIG_LEVEL: //set trigger level
				cmdIn = giveNextCmd();
				if(cmdIn != CMD_END && cmdIn != CMD_ERR){
					scopeSetTrigLevel((uint16_t)cmdIn);
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;
				
			case CMD_SCOPE_PRETRIGGER: //set prettriger
				cmdIn = giveNextCmd();
				if(cmdIn != CMD_END && cmdIn != CMD_ERR){
					scopeSetPretrigger((uint16_t)cmdIn);
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;	
				
			case CMD_SCOPE_DATA_LENGTH: //set trigger edge
				cmdIn = giveNextCmd();
				if(isScopeNumOfSamples(cmdIn)){
					if(cmdIn == CMD_SAMPLES_100){
						error=scopeSetNumOfSamples(100);
					}else if(cmdIn == CMD_SAMPLES_200){
						error=scopeSetNumOfSamples(200);
					}else if(cmdIn == CMD_SAMPLES_500){
						error=scopeSetNumOfSamples(500);
					}else if(cmdIn == CMD_SAMPLES_1K){
						error=scopeSetNumOfSamples(1000);
					}else if(cmdIn == CMD_SAMPLES_2K){
						error=scopeSetNumOfSamples(2000);
					}else if(cmdIn == CMD_SAMPLES_5K){
						error=scopeSetNumOfSamples(5000);
					}else if(cmdIn == CMD_SAMPLES_10K){
						error=scopeSetNumOfSamples(10000);
					}else if(cmdIn == CMD_SAMPLES_20K){
						error=scopeSetNumOfSamples(20000);
					}else if(cmdIn == CMD_SAMPLES_50K){
						error=scopeSetNumOfSamples(50000);
					}else if(cmdIn == CMD_SAMPLES_100K){
						error=scopeSetNumOfSamples(100000);
					}
				}else{
					cmdIn = CMD_ERR;
					error = SCOPE_INVALID_FEATURE_PARAM;
				}
			break;
				
			case CMD_SCOPE_START: //start sampling
				scopeStart();
			break;	
			
			case CMD_SCOPE_STOP: //stop sampling
				scopeStop();
			break;	
			
			case CMD_SCOPE_NEXT: //restart sampling
				scopeRestart();
			
			break;	
			case CMD_GET_CONFIG:
				xQueueSendToBack(messageQueue, "5SendScopeConfig", portMAX_DELAY);
			break;
				
			case CMD_END:break;
			default:
				error = SCOPE_INVALID_FEATURE;
////				commsSendUint32(cmdIn);
				cmdIn = CMD_ERR;
			break;
		}
///////	}while(cmdIn != CMD_END && cmdIn != CMD_ERR && error==0);
	if(error>0){
		cmdIn=error;
	}else{
		cmdIn=CMD_END;
	}
return cmdIn;
}