<em id="ri2my"></em>
  • <em id="ri2my"></em>
    <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
  • <em id="ri2my"><label id="ri2my"></label></em>
    <div id="ri2my"></div>
    1. <em id="ri2my"><label id="ri2my"></label></em>
    2. <em id="ri2my"><ol id="ri2my"></ol></em>
      <em id="ri2my"></em>

      1. 天貓精靈指令

        作者:1983king | 更新時間:2019-12-25 | 瀏覽量:1219

        這段是從串口接收到的

        {"M":"say","ID":"U123","S":"D999","C":"{\"n\":\"SetBrightness\",\"a\":\"brightness\",\"v\":\"50\"}","SIGN":"Aligenie","T":"1577109735"}

        可以從 C 提取出 v 的值嗎?

        重要代碼如下

        void serialEvent() 
        {
           if (Serial.available()>0) 
           {
             String inputString = Serial.readStringUntil('\n');
             inputString.trim();
             Serial.println(inputString);
             int len = inputString.length()+1;
             if(inputString.startsWith("{") && inputString.endsWith("}"))
             {
               char jsonString[len];
               inputString.toCharArray(jsonString,len);
               aJsonObject *msg = aJson.parse(jsonString);
               processMessage(msg);
               aJson.deleteItem(msg);
             }          
           }

        - --- -- -  ----- ------------------------------------------

        void processMessage(aJsonObject *msg){
           aJsonObject* method = aJson.getObjectItem(msg, "M");
           aJsonObject* content = aJson.getObjectItem(msg, "C");
           aJsonObject* contentV = aJson.getObjectItem(content, "v");

           
             if (!method) 
             {
               return;
             } 
             String M=method->valuestring;
             String C=content->valuestring;
             String V=contentV->valuestring;

        if(M=="say")
             {
               if(V == "50" )
                {
                  Serial.println(V);                                      
                }

              }

        }


        評論:共5條

        貝殼物聯 評論于:2019-12-26 09:21:12
        可以把C值當做JSON字符串再次解析,就跟處理收到的的msg一樣。
        1983king 回復于:2019-12-26 21:44:32
        回復 @貝殼物聯:明白,謝謝
        SPOPULAY 評論于:2020-01-04 22:49:37
        if (C == "play") Serial.println("play");
        else if (C == "stop")Serial.println("stop");
        else
        {
        aJsonObject *A = bigiot.getJsonObj(C);
        aJsonObject* contentV = aJson.getObjectItem(A, "v");
        String V = contentV->valuestring;
        Serial.println(V);
        }

        Arm 回復于:2020-02-22 21:28:29
        回復 @SPOPULAY:讀取S 也一樣嗎,如果使用子設備需要讀取S 的值吧
        yangjie 評論于:2020-02-25 22:52:33
        按照上面回復的,這樣就可以取到S值了
        void processMessage(aJsonObject *msg){
        aJsonObject* method = aJson.getObjectItem(msg, "M");
        aJsonObject* content = aJson.getObjectItem(msg, "C");
        aJsonObject* contentV = aJson.getObjectItem(content, "v");
        aJsonObject* contentS = aJson.getObjectItem(content, "S");


        if (!method)
        {
        return;
        }
        String M=method->valuestring;
        String C=content->valuestring;
        String V=contentV->valuestring;
        String S=contentS->valuestring;
        返回頂部

        <em id="ri2my"></em>
      2. <em id="ri2my"></em>
        <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
      3. <em id="ri2my"><label id="ri2my"></label></em>
        <div id="ri2my"></div>
        1. <em id="ri2my"><label id="ri2my"></label></em>
        2. <em id="ri2my"><ol id="ri2my"></ol></em>
          <em id="ri2my"></em>

          1. 免费高清视频