在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于Android平臺(tái)和藍(lán)牙的太陽輻照度采集系統(tǒng)

      基于Android平臺(tái)和藍(lán)牙的太陽輻照度采集系統(tǒng)

      作者:劉敏 賀永亮 時(shí)間:2015-04-29 來源:電子產(chǎn)品世界 收藏

        3 顯示與記錄

      本文引用地址:http://www.biyoush.com/article/273342.htm

        在與下位機(jī)模塊匹配成功之后,點(diǎn)擊配置界面中的按鈕,即可以進(jìn)入到界面。數(shù)據(jù)采集界面支持豎屏和橫屏兩種顯示,以方便設(shè)備中手機(jī)和平板的使用。

        (1)橫豎屏顯示

        橫豎屏要解決的兩個(gè)問題:布局和重新載入。布局問題的解決,首先獲得邏輯顯示屏信息,比較寬度和高度的大小,判斷當(dāng)前橫屏還是豎屏,分別設(shè)置不同的XML文件定義的界面布局,核心代碼如下:

        // 如果是橫屏
        if (width > height)
        {
        Orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
        // 設(shè)置使用datacollectlandscape.xml文件定義的界面布局
        this.setContentView(R.layout.datacollectlandscape);
        }
        // 如果是豎屏
        else
        {
        Orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
        // 設(shè)置使用datacollectportrait.xml文件定義的界面布局
        this.setContentView(R.layout.datacollectportrait);
        }

        重新載入問題的解決,AndroidManifest.xml文件中添加android:configChanges="orientation|keyboardHidden| screenSize",然后重寫onConfigurationChanged函數(shù)。在該函數(shù)中,實(shí)現(xiàn)橫豎屏切換時(shí)保持屏幕原有方向:

        this.setRequestedOrientation(Orientation);

        這樣在確定橫豎屏顯示之后,再旋轉(zhuǎn)屏幕,界面保持不變,數(shù)據(jù)采集不會(huì)中斷。

        (2)發(fā)送采集命令

        允許設(shè)置測(cè)試間隔時(shí)間,Android藍(lán)牙向下位機(jī)藍(lán)牙模塊按照測(cè)試間隔時(shí)間定時(shí)發(fā)送采集命令,通過設(shè)置定時(shí)器任務(wù)來實(shí)現(xiàn)。每次啟動(dòng)一個(gè)發(fā)送采集命令的任務(wù),部分代碼如下:

        // 獲得輸出流
        OutputStream os = socket.getOutputStream();
        // 向輸出流中寫入采集命令
        for (int i = 0; i < len; i++)
        {
        socket.write(cmd[i]);
        }

        (3)接收數(shù)據(jù),處理顯示

        首先創(chuàng)建讀取線程,在讀取線程中讀取下位機(jī)藍(lán)牙模塊發(fā)來的數(shù)據(jù)。部分代碼如下:

        // 獲得輸入流
        InputStream mmInStream =socket.getInputStream();
        //讀取數(shù)據(jù)
        readCount += mmInStream.read(buffer, readCount, countAll - readCount);

        這樣采集的數(shù)據(jù)放在了buffer數(shù)組中,下面的工作即是根據(jù)通信協(xié)議,對(duì)數(shù)組中的數(shù)據(jù)進(jìn)行處理,數(shù)據(jù)錯(cuò)誤提示錯(cuò)誤緣由,數(shù)據(jù)正確則構(gòu)造Message信息,采用Handler消息傳遞機(jī)制顯示在對(duì)應(yīng)的文本框中。

        (4)記錄采集數(shù)據(jù)

        選中記錄復(fù)選框,可以自動(dòng)記錄測(cè)試結(jié)果,將測(cè)試結(jié)果以文本格式保存至Android設(shè)備中,部分代碼如下:

        // 以指定文件創(chuàng)建 RandomAccessFile對(duì)象
        RandomAccessFile raf = new RandomAccessFile(targetFile, "rw");
        // 將文件記錄指針移動(dòng)到最后
        raf.seek(targetFile.length());
        // 輸出文件內(nèi)容
        raf.write(content.getBytes());
        raf.close();

        4 系統(tǒng)功能測(cè)試

        在手機(jī)端運(yùn)行上位機(jī)軟件,進(jìn)入到藍(lán)牙配置界面,依次進(jìn)行打開藍(lán)牙、藍(lán)牙模塊匹配操作,匹配結(jié)果如圖3所示。然后點(diǎn)擊數(shù)據(jù)采集,根據(jù)手機(jī)屏幕進(jìn)入到采集數(shù)據(jù)界面的橫屏或者豎屏顯示,設(shè)置好測(cè)試間隔時(shí)間,點(diǎn)擊啟動(dòng)按鈕,采集結(jié)果如圖4、圖5所示。采集結(jié)束,點(diǎn)擊停止按鈕,按返回鍵至藍(lán)牙配置界面,點(diǎn)擊退出,確認(rèn)。經(jīng)過測(cè)試,系統(tǒng)支持100米距離藍(lán)牙連接,運(yùn)行正常,健壯性良好。目前已成功應(yīng)用于一款計(jì)儀表中,并參展2014年國際太陽能產(chǎn)業(yè)及光伏工程(上海)展覽會(huì),獲得好評(píng)。


      上一頁 1 2 下一頁

      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉