亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gsm_me_ta.c

?? Gsm手機(短信息,電話簿)開發庫C++源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:

//  Parser p(_at->chat("+CLCK=\"" + facility + "\",2,," + intToStr((int)cl),
//                     "+CLCK:"));
//  return p.parseInt() == 1;
}

void MeTa::lockFacility(string facility, FacilityClass cl, string passwd)
  throw(GsmException)
{
  if (passwd == "")
    _at->chat("+CLCK=\"" + facility + "\",1,," + intToStr((int)cl));
  else
    _at->chat("+CLCK=\"" + facility + "\",1,\"" + passwd + "\","
              + intToStr((int)cl));
}

void MeTa::unlockFacility(string facility, FacilityClass cl, string passwd)
  throw(GsmException)
{
  if (passwd == "")
    _at->chat("+CLCK=\"" + facility + "\",0,," + intToStr((int)cl));
  else
    _at->chat("+CLCK=\"" + facility + "\",0,\"" + passwd + "\","
              + intToStr((int)cl));
}

vector<PWInfo> MeTa::getPasswords() throw(GsmException)
{
  vector<PWInfo> result;
  Parser p(_at->chat("+CPWD=?", "+CPWD:"));
  while (1)
  {
    PWInfo pwi;
    if (!p.parseChar('(', true)) break; // exit if no new tuple
    pwi._facility = p.parseString();
    p.parseComma();
    pwi._maxPasswdLen = p.parseInt();
    p.parseChar(')');
    p.parseComma(true);
    result.push_back(pwi);
  }
  return result;
}

void MeTa::setPassword(string facility, string oldPasswd, string newPasswd)
  throw(GsmException)
{
  _at->chat("+CPWD=\"" + facility + "\",\"" + oldPasswd + "\",\"" +
            newPasswd + "\"");
}

bool MeTa::getNetworkCLIP() throw(GsmException)
{
  Parser p(_at->chat("+CLIP?", "+CLIP:"));
  p.parseInt();                 // ignore result code presentation
  p.parseComma();
  return p.parseInt() == 1;
}

void MeTa::setCLIPPresentation(bool enable) throw(GsmException)
{
  if (enable)
    _at->chat("+CLIP=1");
  else
    _at->chat("+CLIP=0");
}

bool MeTa::getCLIPPresentation() throw(GsmException)
{
  Parser p(_at->chat("+CLIP?", "+CLIP:"));
  return p.parseInt() == 1;     // ignore rest of line
}

void MeTa::setCallForwarding(ForwardReason reason,
                             ForwardMode mode,
                             string number,
                             string subaddr,
                             FacilityClass cl,
                             int forwardTime) throw(GsmException)
{
  // FIXME subaddr is currently ignored
  if (forwardTime != NOT_SET && (forwardTime < 0 || forwardTime > 30))
    throw GsmException(_("call forward time must be in the range 0..30"),
                       ParameterError);
  
  int numberType;
  number = removeWhiteSpace(number);
  if (number.length() > 0 && number[0] == '+')
  {
    numberType = InternationalNumberFormat;
    number = number.substr(1);  // skip the '+' at the beginning
  }
  else
    numberType = UnknownNumberFormat;
  _at->chat("+CCFC=" + intToStr(reason) + "," +  intToStr(mode) + "," 
            "\"" + number + "\"," +
            (number.length() > 0 ? intToStr(numberType) : "") +
            "," +  intToStr(cl) +
                                // FIXME subaddr and type
            (forwardTime == NOT_SET ? "" :
             (",,," + intToStr(forwardTime))));
}
                           
void MeTa::getCallForwardInfo(ForwardReason reason,
                              ForwardInfo &voice,
                              ForwardInfo &fax,
                              ForwardInfo &data) throw(GsmException)
{
  // Initialize to some sensible values:
  voice._active = false;
  voice._cl = VoiceFacility;
  voice._time = -1;
  voice._reason = NoReason;
  data._active = false;
  data._cl = DataFacility;
  data._time = -1;
  data._reason = NoReason;
  fax._active = false;
  fax._cl = FaxFacility;
  fax._time = -1;
  fax._reason = NoReason;

  vector<string> responses =
    _at->chatv("+CCFC=" + intToStr(reason) + ",2", "+CCFC:");
  if (responses.size() == 1)
  {
    // only one line was returned. We have to ask for all three classes
    // (voice, data, fax) separately
    responses.clear();
    responses.push_back(_at->chat("+CCFC=" + intToStr(reason) +
                                  ",2,,,1", "+CCFC:"));
    responses.push_back(_at->chat("+CCFC=" + intToStr(reason) +
                                  ",2,,,2", "+CCFC:"));
    responses.push_back(_at->chat("+CCFC=" + intToStr(reason) +
                                  ",2,,,4", "+CCFC:"));
  }

  for (vector<string>::iterator i = responses.begin();
       i != responses.end(); ++i)
  {
    Parser p(*i);
    int status = p.parseInt();
    p.parseComma();
    FacilityClass cl = (FacilityClass)p.parseInt();
    string number;
    string subAddr;
    int forwardTime = NOT_SET;
      
    // parse number
    if (p.parseComma(true))
    {
      number = p.parseString();
      p.parseComma();
      unsigned int numberType = p.parseInt();
      if (numberType == InternationalNumberFormat) number = "+" + number;

      // parse subaddr
      if (p.parseComma(true))
      {
        // FIXME subaddr type not handled
        subAddr = p.parseString(true);
        p.parseComma();
        p.parseInt(true);
          
        // parse forwardTime
        if (p.parseComma(true))
        {
          forwardTime = p.parseInt();
        }
      }
    }
    switch (cl)
    {
    case VoiceFacility:
      voice._active = (status == 1);
      voice._cl = VoiceFacility;
      voice._number = number;
      voice._subAddr = subAddr;
      voice._time = forwardTime;
      voice._reason = reason;
      break;
    case DataFacility:
      data._active = (status == 1);
      data._cl = DataFacility;
      data._number = number;
      data._subAddr = subAddr;
      data._time = forwardTime;
      data._reason =  reason;
      break;
    case FaxFacility:
      fax._active = (status == 1);
      fax._cl = FaxFacility;
      fax._number = number;
      fax._subAddr = subAddr;
      fax._time = forwardTime;
      fax._reason = reason;
      break;
    }
  }
}

int MeTa::getBatteryChargeStatus() throw(GsmException)
{
  Parser p(_at->chat("+CBC", "+CBC:"));
  return p.parseInt();
}

int MeTa::getBatteryCharge() throw(GsmException)
{
  Parser p(_at->chat("+CBC", "+CBC:"));
  p.parseInt();
  p.parseComma();
  return p.parseInt();
}

int MeTa::getSignalStrength() throw(GsmException)
{
  Parser p(_at->chat("+CSQ", "+CSQ:"));
  return p.parseInt();
}

int MeTa::getBitErrorRate() throw(GsmException)
{
  Parser p(_at->chat("+CSQ", "+CSQ:"));
  p.parseInt();
  p.parseComma();
  return p.parseInt();
}

vector<string> MeTa::getPhoneBookStrings() throw(GsmException)
{
  Parser p(_at->chat("+CPBS=?", "+CPBS:"));
  return p.parseStringList();
}

PhonebookRef MeTa::getPhonebook(string phonebookString,
                                bool preload) throw(GsmException)
{
  for (PhonebookVector::iterator i = _phonebookCache.begin();
       i !=  _phonebookCache.end(); ++i)
  {
    if ((*i)->name() == phonebookString)
      return *i;
  }
  PhonebookRef newPb(new Phonebook(phonebookString, _at, *this, preload));
  _phonebookCache.push_back(newPb);
  return newPb;
}

string MeTa::getServiceCentreAddress() throw(GsmException)
{
  Parser p(_at->chat("+CSCA?", "+CSCA:"));
  return p.parseString();
}

void MeTa::setServiceCentreAddress(string sca) throw(GsmException)
{
  int type;
  sca = removeWhiteSpace(sca);
  if (sca.length() > 0 && sca[0] == '+')
  {
    type = InternationalNumberFormat;
    sca = sca.substr(1, sca.length() - 1);
  }
  else
    type = UnknownNumberFormat;
  Parser p(_at->chat("+CSCA=\"" + sca + "\"," + intToStr(type)));
}

vector<string> MeTa::getSMSStoreNames() throw(GsmException)
{
  Parser p(_at->chat("+CPMS=?", "+CPMS:"));
  // only return <mem1> values
  return p.parseStringList();
}

SMSStoreRef MeTa::getSMSStore(string storeName) throw(GsmException)
{
  for (SMSStoreVector::iterator i = _smsStoreCache.begin();
       i !=  _smsStoreCache.end(); ++i)
  {
    if ((*i)->name() == storeName)
      return *i;
  }
  SMSStoreRef newSs(new SMSStore(storeName, _at, *this));
  _smsStoreCache.push_back(newSs);
  return newSs;
}

void MeTa::sendSMS(SMSMessageRef smsMessage) throw(GsmException)
{
  smsMessage->setAt(_at);
  smsMessage->send();
}

void MeTa::setMessageService(int serviceLevel) throw(GsmException)
{
  string s;
  switch (serviceLevel)
  {
  case 0:
    s = "0";
    break;
  case 1:
    s = "1";
    break;
  default:
    throw GsmException(_("only serviceLevel 0 or 1 supported"),
                       ParameterError);
  }
  // some devices (eg. Origo 900) don't support service level setting
  _at->chat("+CSMS=" + s, "+CSMS:", true);
}

unsigned int MeTa::getMessageService() throw(GsmException)
{
  Parser p(_at->chat("+CSMS?", "+CSMS:"));
  return p.parseInt();
}

void MeTa::getSMSRoutingToTA(bool &smsRouted,
                             bool &cbsRouted,
                             bool &statusReportsRouted) throw(GsmException)
{
  Parser p(_at->chat("+CNMI?", "+CNMI:"));
  p.parseInt();
  int smsMode = 0;
  int cbsMode = 0;
  int statMode = 0;
  int bufferMode = 0;

  if (p.parseComma(true))
  {
    smsMode = p.parseInt();
    if (p.parseComma(true))
    {
      cbsMode = p.parseInt();
      if (p.parseComma(true))
      {
        statMode = p.parseInt();
        if (p.parseComma(true))
        {
          bufferMode = p.parseInt();
        }
      }
    }
  }
  
  smsRouted = (smsMode == 2) || (smsMode == 3);
  cbsRouted = (cbsMode == 2) || (cbsMode == 3);
  statusReportsRouted = (statMode == 1);
}

void MeTa::setSMSRoutingToTA(bool enableSMS, bool enableCBS,
                             bool enableStatReport,
                             bool onlyReceptionIndication)
  throw(GsmException)
{
  bool smsModesSet = false;
  bool cbsModesSet = false;
  bool statModesSet = false;
  bool bufferModesSet = false;

  // find out capabilities
  Parser p(_at->chat("+CNMI=?", "+CNMI:"));
  vector<bool> modes = p.parseIntList();
  vector<bool> smsModes(1);
  vector<bool> cbsModes(1);
  vector<bool> statModes(1);
  vector<bool> bufferModes(1);
  if (p.parseComma(true))
  {
    smsModes = p.parseIntList();
    smsModesSet = true;
    if (p.parseComma(true))
    {
      cbsModes = p.parseIntList();
      cbsModesSet = true;
      if (p.parseComma(true))
      {
        statModes = p.parseIntList();
        statModesSet = true;
        if (p.parseComma(true))
        {
          bufferModes = p.parseIntList();
          bufferModesSet = true;
        }
      }
    }
  }

  // now set the mode vectors to the default if not set
  if (! smsModesSet) smsModes[0] = true;
  if (! cbsModesSet) cbsModes[0] = true;
  if (! statModesSet) statModes[0] = true;
  if (! bufferModesSet) bufferModes[0] = true;
  
  string chatString;
    
  // now try to set some optimal combination depending on
  // ME/TA's capabilities

  // handle modes
  if (isSet(modes, 2))
    chatString = "2";
  else if (isSet(modes, 1))
    chatString = "1";
  else if (isSet(modes, 0))
    chatString = "0";
  else if (isSet(modes, 3))
    chatString = "3";

  if (onlyReceptionIndication)
  {
    // handle sms mode
    if (enableSMS)
    {
      if (isSet(smsModes, 1))
        chatString += ",1";
      else 
        throw GsmException(_("cannot route SMS messages to TE"),
                           MeTaCapabilityError);
    }
    else
      chatString += ",0";
      
    // handle cbs mode
    if (enableCBS)
    {
      if (isSet(cbsModes, 1))
        chatString += ",1";
      else if (isSet(cbsModes, 2))
        chatString += ",2";
      else 
        throw GsmException(_("cannot route cell broadcast messages to TE"),
                           MeTaCapabilityError);
    }
    else
      chatString += ",0";

    // handle stat mode
    if (enableStatReport)
    {
      if (isSet(statModes, 2))
        chatString += ",2";
      else 
        throw GsmException(_("cannot route status reports messages to TE"),
                           MeTaCapabilityError);
    }
    else
      chatString += ",0";
  }
  else
  {
    // handle sms mode
    if (enableSMS)
    {
      if (isSet(smsModes, 2))
        chatString += ",2";
      else if (isSet(smsModes, 3))
        chatString += ",3";
      else 
        throw GsmException(_("cannot route SMS messages to TE"),
                           MeTaCapabilityError);
    }
    else
      chatString += ",0";
      
    // handle cbs mode
    if (enableCBS)
    {
      if (isSet(cbsModes, 2))
        chatString += ",2";
      else if (isSet(cbsModes, 3))
        chatString += ",3";
      else 
        throw GsmException(_("cannot route cell broadcast messages to TE"),
                           MeTaCapabilityError);
    }
    else
      chatString += ",0";

    // handle stat mode
    if (enableStatReport)
    {
      if (isSet(statModes, 1))
        chatString += ",1";
      else if (isSet(statModes, 2))
        chatString += ",2";
      else 
        throw GsmException(_("cannot route status report messages to TE"),
                           MeTaCapabilityError);
    }
    else
      chatString += ",0";
  }

  // handle buffer mode but only if it was reported by the +CNMI=? command
  // the Ericsson GM12 GSM modem does not like it otherwise
  if (bufferModesSet)
    if (isSet(bufferModes, 1))
      chatString += ",1";
    else
      chatString += ",0";

  _at->chat("+CNMI=" + chatString);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品综合一本久道在线视频| 精品成人私密视频| 中文字幕一区在线观看| 欧美日韩另类一区| 亚洲成a人在线观看| 91国产福利在线| 一区二区三区四区不卡视频| 一本一本大道香蕉久在线精品| 色悠悠久久综合| 国产精品久久午夜夜伦鲁鲁| www.亚洲色图.com| 亚洲国产高清aⅴ视频| av在线不卡网| 亚洲成人一区二区在线观看| 337p亚洲精品色噜噜狠狠| 日韩电影在线一区二区| 日韩欧美国产电影| 国产成人综合在线观看| 国产精品久线观看视频| 欧美视频一区二区三区在线观看| 日韩一二三区不卡| 国产精品一区二区三区99| 国产欧美一区视频| 91丨九色porny丨蝌蚪| 亚洲福利一区二区| 日韩一级片在线播放| 国产精品一二三四| 亚洲午夜一二三区视频| 精品人在线二区三区| 99这里只有久久精品视频| 日韩精品国产精品| 国产日韩高清在线| 欧美视频日韩视频在线观看| 国产一区二区三区免费在线观看| 欧美在线999| 极品少妇xxxx精品少妇| 亚洲人成精品久久久久| 欧美日韩www| 成人av在线资源| 蜜桃视频在线观看一区| 中文字幕不卡的av| 日韩一卡二卡三卡四卡| 91一区二区三区在线观看| 蜜桃视频一区二区三区在线观看| 欧美挠脚心视频网站| 成人深夜福利app| 人妖欧美一区二区| 国产精品久久久久桃色tv| 日韩午夜在线观看视频| 一本大道久久a久久精二百| 免费成人av资源网| 一区二区成人在线| 国产精品久久精品日日| 2023国产精品视频| 91精品国产入口| 欧美亚洲综合一区| 99国内精品久久| 成人综合在线观看| 久久99精品久久久久久国产越南| 欧美www视频| 欧美日韩电影在线| 在线免费视频一区二区| 成人毛片视频在线观看| 精品午夜一区二区三区在线观看 | 日韩一区二区电影在线| 免费人成网站在线观看欧美高清| 自拍偷拍亚洲欧美日韩| 日韩免费在线观看| 欧美福利一区二区| 欧美日韩国产精品自在自线| 色婷婷综合久久久中文一区二区 | 亚洲欧洲在线观看av| 欧美一级片在线| 欧美精品成人一区二区三区四区| 久久99蜜桃精品| 午夜欧美一区二区三区在线播放| 91精品国产综合久久福利| 日本高清免费不卡视频| 91麻豆视频网站| 91麻豆精品在线观看| 成人av综合一区| eeuss鲁片一区二区三区在线观看| 亚洲天堂2016| 亚洲丝袜精品丝袜在线| 中文字幕一区视频| 亚洲欧美综合在线精品| 日韩一区中文字幕| 亚洲欧美一区二区久久 | 成人aa视频在线观看| 亚洲欧洲无码一区二区三区| 欧美精品一区二区精品网| 在线观看日韩高清av| 韩国精品主播一区二区在线观看| 看国产成人h片视频| 91麻豆精品国产无毒不卡在线观看| 欧美高清在线视频| 国产成人久久精品77777最新版本| 色诱亚洲精品久久久久久| 91影院在线观看| 亚洲成人动漫在线免费观看| 五月激情丁香一区二区三区| 午夜国产不卡在线观看视频| 亚洲成人av中文| 日本亚洲视频在线| 国产真实乱对白精彩久久| 成人午夜短视频| 91电影在线观看| 欧美一区二区三区四区高清| 久久综合色天天久久综合图片| 色婷婷久久99综合精品jk白丝| 日日摸夜夜添夜夜添精品视频| 国产日韩欧美精品在线| 欧美激情综合五月色丁香| 最新欧美精品一区二区三区| 亚洲成人资源网| 韩国毛片一区二区三区| 色哟哟一区二区三区| 51久久夜色精品国产麻豆| 精品成人佐山爱一区二区| 日韩一区在线播放| 精品一区二区三区视频| aaa欧美大片| 欧美一区二区视频在线观看2020| 一本大道av一区二区在线播放 | 色拍拍在线精品视频8848| 欧美日韩不卡一区二区| 欧美国产精品劲爆| 亚洲一区二区三区视频在线播放| 国产精品福利一区二区三区| 椎名由奈av一区二区三区| 精品夜夜嗨av一区二区三区| 欧美精品v日韩精品v韩国精品v| 久久精品国产色蜜蜜麻豆| 国产盗摄女厕一区二区三区| 国产麻豆成人传媒免费观看| 欧美男人的天堂一二区| 3d动漫精品啪啪一区二区竹菊| 三级一区在线视频先锋| 久久久99久久精品欧美| 91在线视频网址| 亚洲成人一区二区在线观看| 欧美一级日韩一级| 成人欧美一区二区三区1314| 精品1区2区3区| 91免费观看视频| 国产精品影视在线| 中文字幕一区二区三区乱码在线| 在线亚洲一区观看| 欧美精品1区2区| 一区二区三区在线视频观看| 欧美乱妇23p| 一本大道久久a久久综合| 亚洲视频一区在线观看| 欧美日韩国产欧美日美国产精品| 成人深夜在线观看| 亚洲va天堂va国产va久| 欧美午夜视频网站| 一区二区三区不卡视频| 欧美老肥妇做.爰bbww视频| 欧美激情综合在线| av亚洲精华国产精华| 美腿丝袜在线亚洲一区| 国产日韩三级在线| 5566中文字幕一区二区电影 | 国产另类ts人妖一区二区| 欧美日韩视频专区在线播放| 亚洲精品水蜜桃| 在线不卡a资源高清| 国产成人精品影视| 一片黄亚洲嫩模| 26uuu另类欧美亚洲曰本| 欧美日韩视频在线第一区 | 国产精品成人免费精品自在线观看| 99国内精品久久| 国产精品欧美综合在线| 欧美日韩成人一区二区| 久久国产婷婷国产香蕉| 国产精品乱码一区二三区小蝌蚪| 日本中文一区二区三区| 国产精品国产精品国产专区不蜜 | 综合欧美一区二区三区| 91成人网在线| 国产在线精品一区二区三区不卡 | 亚洲国产人成综合网站| 久久亚洲综合色一区二区三区| 免费在线成人网| 婷婷成人激情在线网| 亚洲国产电影在线观看| 久久精品视频一区二区三区| 国产一区二区在线看| 久久久国产精品午夜一区ai换脸| 中文字幕一区二区视频| 色综合中文字幕国产| 亚洲狠狠爱一区二区三区| 69成人精品免费视频| 国产一区二区三区久久久| 国产婷婷色一区二区三区| 91麻豆swag| 美女性感视频久久| 国产午夜精品一区二区三区四区|