<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于A(yíng)ndroid平臺和藍牙的太陽(yáng)輻照度采集系統

基于A(yíng)ndroid平臺和藍牙的太陽(yáng)輻照度采集系統

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

  3 顯示與記錄

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

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

  (1)橫豎屏顯示

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

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

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

  this.setRequestedOrientation(Orientation);

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

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

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

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

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

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

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

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

  (4)記錄采集數據

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

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

  4 系統功能測試

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>