91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為做二次開(kāi)發(fā)量身打造發(fā)嵌入式操作系統(tǒng)QuecPython

2fCd_quectelwir ? 來(lái)源:QuecPython ? 作者:QuecPython ? 2021-06-26 16:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

QuecPython——執(zhí)行Python代碼的運(yùn)行環(huán)境,是一種全新的物聯(lián)網(wǎng)開(kāi)發(fā)方式。Quec取自Quectel,QuecPython的開(kāi)發(fā)是基于Quectel的物聯(lián)網(wǎng)模組。Python(中文名蟒蛇,俗名爬蟲(chóng),別名膠水語(yǔ)言)是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,入門(mén)容易、編寫(xiě)簡(jiǎn)單快捷、調(diào)試方便、開(kāi)發(fā)效率高,已成為當(dāng)下最受歡迎的程序設(shè)計(jì)語(yǔ)言之一。

QuecPython也可以說(shuō)是移遠(yuǎn)通信為客戶更加便捷地在物聯(lián)網(wǎng)模組上做二次開(kāi)發(fā)而量身打造的嵌入式操作系統(tǒng)。

大家好,我是“QuecPython”,今天來(lái)給大家介紹一下QPYcom開(kāi)源。

QPYcom是移遠(yuǎn)通信Quectel官方發(fā)布的QuecPython開(kāi)發(fā)調(diào)試工具,穩(wěn)定可靠、易用高效,被譽(yù)為QuecPython的“屠龍刀”。

經(jīng)過(guò)幾百個(gè)日夜的千錘百煉,QPYcom終于可以以最根本的方式(源代碼)和大家坦誠(chéng)相見(jiàn)。QPYcom使用CPython語(yǔ)言,wxGlade設(shè)計(jì)GUI,WXPython為圖形庫(kù),PyInstaller打包exe的Windows工具。現(xiàn)在,您只需要按照下邊的說(shuō)明文檔操作就可以在本地順利地跑起來(lái)啦!

在本地搭建運(yùn)行環(huán)境和拉取代碼

第一步——拉取代碼

首先在本地安裝git,這個(gè)就不贅述啦。

接下來(lái)從github上拉取開(kāi)源項(xiàng)目代碼,執(zhí)行以下代碼。

git clone https://github.com/quecpython/QPYcom.git

cd QPYcom

執(zhí)行完上述代碼后,代碼就已經(jīng)拉取到本地啦。

第二步——安裝運(yùn)行所需要的庫(kù)

首先確保本地Python版本大于等于3.8(若沒(méi)安裝請(qǐng)自行去官網(wǎng)下載安裝),Python環(huán)境變量已配置。

如果沒(méi)有配置,請(qǐng)點(diǎn)擊

https://www.pianshen.com/article/65461087669/,了解配置方法。

然后執(zhí)行以下代碼安裝requirements.txt依賴。

pip install -r requirements.txt

接下來(lái)執(zhí)行以下代碼就可以運(yùn)行工具。

pythonwxglade_out.py

執(zhí)行完這行代碼后,GUI就會(huì)顯示出來(lái);如果報(bào)錯(cuò)提示No module named “XXX”,按照缺失的庫(kù)名按照對(duì)應(yīng)的py庫(kù)即可,如果提示pysimplegui錯(cuò)誤,檢查庫(kù)是否完全拉到本地,是否有文件缺失。

目錄結(jié)構(gòu)解析

現(xiàn)在就是整個(gè)項(xiàng)目的目錄結(jié)構(gòu),QPYcom GUI工具運(yùn)行的全部所需文件如上圖一所示。配置文件和部分文件夾是代碼運(yùn)行必需文件,若缺失則代碼無(wú)法運(yùn)行。

__pycache__中存放的python可執(zhí)行文件,.git開(kāi)頭的是git的配置文件,可以不用關(guān)注。

配置文件

cloud_conf.json和local_conf.json分別是工具自動(dòng)升級(jí)的云端和本地配置文件

fw_config.json是配置合并固件參數(shù)、串口參數(shù)以及狀態(tài)欄提示內(nèi)容的配置文件

config.ini是工具的基本功能配置文件,對(duì)應(yīng)的是工具設(shè)置頁(yè)面的功能

update_message.json用于工具升級(jí)時(shí)彈窗顯示升級(jí)內(nèi)容和配置自定義提示內(nèi)容

子目錄

docs存放工具的changelog和使用說(shuō)明,exes存放固件和下載和合并的工具

fw存放合并固件過(guò)程中的固件文件,project存放客戶的項(xiàng)目配置文件

images存放工具的圖標(biāo)文件,locale存放多語(yǔ)言支持的翻譯文件

logs中存放的是工具的運(yùn)行日志(software子目錄下)和調(diào)試日志(apps子目錄下)

其他文件

qpy_design.wxg是通過(guò)wxGlade設(shè)計(jì)的GUI的頁(yè)面原型文件,需要使用wxGlade打開(kāi)并編輯該文件

restart.bat是工具自動(dòng)升級(jí)時(shí)切換新舊版本的腳本文件

requirement.txt是python的包管理文件

代碼文件

代碼文件解析詳見(jiàn)下個(gè)章節(jié)

應(yīng)用代碼解析

fileIO.py

主要涉及文件系統(tǒng)處理,配置文件讀寫(xiě),工具自動(dòng)補(bǔ)全功能邏輯處理等函數(shù),詳細(xì)內(nèi)容可自行閱讀代碼(配合主程序一起閱讀更容易理解函數(shù)的作用)。

json_process.py

工具的自動(dòng)升級(jí)部分代碼,通過(guò)對(duì)比cloud_conf.json和local_conf.json配置文件內(nèi)容來(lái)判斷云端文件是否有更新,每次版本升級(jí)將云端最新版本的文件拉取到本地替換舊文件實(shí)現(xiàn)工具版本更新,可配置多種升級(jí)模式。

通過(guò)定時(shí)器(間隔2小時(shí))檢測(cè)是否有版本更新,如果有則觸發(fā)升級(jí)動(dòng)作,若不想開(kāi)啟升級(jí)功能,在主程序中注釋掉repeat_update_check()這一行即可關(guān)閉工具升級(jí)功能。

wxglade_out.py

工具GUI主程序,主要分為頁(yè)面顯示代碼和功能實(shí)現(xiàn)代碼,頁(yè)面實(shí)現(xiàn)部分代碼主要負(fù)責(zé)GUI頁(yè)面的顯示,生成各個(gè)頁(yè)面的不同控件及其位置大小等,詳細(xì)可見(jiàn)wxpython API,對(duì)應(yīng)的控件又通過(guò)事件綁定對(duì)應(yīng)不同的函數(shù),當(dāng)點(diǎn)擊控件或者觸發(fā)事件就會(huì)通過(guò)功能實(shí)現(xiàn)部分的代碼實(shí)現(xiàn)對(duì)應(yīng)的功能。

功能實(shí)現(xiàn)部分代碼值得強(qiáng)調(diào)的是串口數(shù)據(jù)的接收發(fā)送和下載/合并固件功能的實(shí)現(xiàn),工具的交互和文件頁(yè)面所有操作皆是基于串口數(shù)據(jù)交互實(shí)現(xiàn)的,串口的數(shù)據(jù)接收是通過(guò)wxPython的timer來(lái)實(shí)現(xiàn)的,通過(guò)不同的全局變量(操作類(lèi)型)對(duì)從串口的接收數(shù)據(jù)進(jìn)行不同的處理后顯示在頁(yè)面上或者生成文件列表,詳細(xì)代碼見(jiàn)serRcvHandler函數(shù);發(fā)送數(shù)據(jù)的部分通過(guò)全局變量來(lái)發(fā)送不同的指令代碼到串口中并通過(guò)uos模塊來(lái)實(shí)現(xiàn)文件操作。

下載/合并固件功能通過(guò)cpython的subprocess模塊調(diào)用EXE實(shí)現(xiàn)。下載和合并工具是命令函,故此QPYcom通過(guò)subprocess創(chuàng)建一個(gè)子進(jìn)程,在后臺(tái)執(zhí)行相應(yīng)的操作,并將執(zhí)行的返回結(jié)果處理后在頁(yè)面上顯示(如更新進(jìn)度條進(jìn)度等)。

應(yīng)用發(fā)布

在調(diào)試完代碼之后就可以將PY代碼打包成可執(zhí)行的exe文件,打包命令如下:

pyinstaller -F --win-private-assemblies--icon images/quectel.ico -w 。/wxglade_out.py

打包完之后會(huì)在項(xiàng)目目錄下生成一個(gè)dist文件夾,文件夾下就是exe文件(和主程序同名),注意此時(shí)的exe需要一些依賴文件才能運(yùn)行,需要將這些依賴文件和可執(zhí)行程序exe放在同一目錄下才可正常運(yùn)行(依賴文件上文有提到,也可參考官網(wǎng)發(fā)布的正式版本工具文件列表)。

PS:您可以根據(jù)自己的需求和喜好任意添加、修改內(nèi)容,甚至還可以移植到其他操作系統(tǒng)。歡迎提pr、貢獻(xiàn)代碼哦。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5200

    文章

    20483

    瀏覽量

    334596
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2947

    文章

    47870

    瀏覽量

    415672
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7405

    瀏覽量

    129378
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4877

    瀏覽量

    90113

原文標(biāo)題:什么是QPYcom開(kāi)源?

文章出處:【微信號(hào):quectelwireless,微信公眾號(hào):移遠(yuǎn)通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式驅(qū)動(dòng)開(kāi)發(fā),需要掌握哪些技能?

    有經(jīng)驗(yàn)的老司機(jī)都知道,嵌入式驅(qū)動(dòng)開(kāi)發(fā)需要掌握一系列的技能,包含編程、硬件、操作系統(tǒng)、調(diào)試等多個(gè)方面。 1、硬件知識(shí)熟悉原理圖:能看懂原理圖以及各種元器件的含義,以及PCB布局
    發(fā)表于 01-20 16:46

    什么是嵌入式應(yīng)用開(kāi)發(fā)?

    概述 所謂的嵌入式應(yīng)用開(kāi)發(fā)就是在嵌入式操作系統(tǒng)下進(jìn)行開(kāi)發(fā)、軟硬件綜合開(kāi)發(fā) ?
    發(fā)表于 01-12 16:13

    宇樹(shù)人形機(jī)器人的配置,核心代碼,調(diào)試方法,二次開(kāi)發(fā)接口

    宇樹(shù)人形機(jī)器人的配置,核心代碼,調(diào)試方法,二次開(kāi)發(fā)接口
    的頭像 發(fā)表于 12-10 09:05 ?3819次閱讀

    什么是嵌入式操作系統(tǒng)

    、嵌入式操作系統(tǒng)的定義 嵌入式操作系統(tǒng)是專(zhuān)門(mén)資源受限的嵌入式設(shè)備(比如 STM32 單片機(jī)、
    發(fā)表于 12-09 10:33

    嵌入式實(shí)時(shí)操作系統(tǒng)的特點(diǎn)

    實(shí)時(shí)嵌入式操作系統(tǒng)(Real-Time Embedded Operating System)是專(zhuān)門(mén)設(shè)計(jì)用于嵌入式系統(tǒng)的實(shí)時(shí)操作系統(tǒng)。
    發(fā)表于 11-13 06:30

    將蜂鳥(niǎo)E203的內(nèi)核移植到fpga之后該怎么進(jìn)行二次開(kāi)發(fā)呢?

    你們好!請(qǐng)問(wèn)一下我將蜂鳥(niǎo)E203的內(nèi)核移植到fpga之后該怎么進(jìn)行二次開(kāi)發(fā)呢?比如我想點(diǎn)亮板子上的led?驅(qū)動(dòng)攝像頭進(jìn)行圖像識(shí)別?這些該如何進(jìn)行呢?蜂鳥(niǎo)有類(lèi)似freedom studio這樣的嵌入式開(kāi)發(fā)平臺(tái)嗎?
    發(fā)表于 11-10 07:09

    直播回顧 | 掌握車(chē)載通信核心技術(shù),虹科CAN總線實(shí)戰(zhàn):PCAN二次開(kāi)發(fā)技術(shù)直播助您輕松拿捏總線開(kāi)發(fā)“創(chuàng)新引擎

    ,已成為車(chē)企與零部件供應(yīng)商應(yīng)對(duì)深度研發(fā)、定制化測(cè)試與前沿功能開(kāi)發(fā)的核心競(jìng)爭(zhēng)力。然而,CAN總線二次開(kāi)發(fā)絕非簡(jiǎn)單的“調(diào)用接口”,而是一項(xiàng)融合了嵌入式開(kāi)發(fā)、汽車(chē)網(wǎng)絡(luò)協(xié)議、軟
    的頭像 發(fā)表于 10-09 17:33 ?621次閱讀
    直播回顧 | 掌握車(chē)載通信核心技術(shù),虹科CAN總線實(shí)戰(zhàn):PCAN<b class='flag-5'>二次開(kāi)發(fā)</b>技術(shù)直播助您輕松拿捏總線<b class='flag-5'>開(kāi)發(fā)</b>“創(chuàng)新引擎

    安信可VC-01/02二次開(kāi)發(fā)篇: PWM輸出

    系列教程 【二次開(kāi)發(fā)篇】虛擬開(kāi)發(fā)環(huán)境搭建和分享 安信可離線語(yǔ)音模組 VC-01、VC-02 系列教程 【二次開(kāi)發(fā)篇】事件和GPI
    的頭像 發(fā)表于 08-27 16:06 ?961次閱讀
    安信可VC-01/02<b class='flag-5'>二次開(kāi)發(fā)</b>篇: PWM輸出

    安信可VC-01/02二次開(kāi)發(fā)篇: 事件和GPIO控制

    系列教程 【二次開(kāi)發(fā)篇】虛擬開(kāi)發(fā)環(huán)境搭建和分享 安信可離線語(yǔ)音模組 VC-01、VC-02 系列教程 【二次開(kāi)發(fā)篇】事件和GPIO控
    的頭像 發(fā)表于 08-19 14:02 ?1109次閱讀
    安信可VC-01/02<b class='flag-5'>二次開(kāi)發(fā)</b>篇: 事件和GPIO控制

    Linux嵌入式和單片機(jī)嵌入式的區(qū)別?

    : 單片機(jī)嵌入式開(kāi)發(fā)環(huán)境相對(duì)簡(jiǎn)單,通常使用C語(yǔ)言或匯編語(yǔ)言進(jìn)行編程,開(kāi)發(fā)工具包括Keil、IAR等。 Linux嵌入式開(kāi)發(fā)環(huán)境較
    發(fā)表于 06-20 09:46

    嵌入式開(kāi)發(fā),如何選擇適合的系統(tǒng)?

    嵌入式ARM開(kāi)發(fā)中,面對(duì)多種操作系統(tǒng)的選擇,如何做出最適合項(xiàng)目的決策?本文將為您梳理常見(jiàn)系統(tǒng)的特性,幫助您快速了解它們的優(yōu)缺點(diǎn),以便更好地選擇適合的
    的頭像 發(fā)表于 05-20 11:32 ?1162次閱讀
    <b class='flag-5'>嵌入式開(kāi)發(fā)</b>,如何選擇適合的<b class='flag-5'>系統(tǒng)</b>?

    嵌入式開(kāi)發(fā)入門(mén)指南:從零開(kāi)始學(xué)習(xí)嵌入式

    基礎(chǔ) 3. 學(xué)習(xí)路徑推薦第一階段:熟悉開(kāi)發(fā)環(huán)境(如Keil、IAR、STM32)第階段:掌握裸機(jī)編程與驅(qū)動(dòng)開(kāi)發(fā)第三階段:學(xué)習(xí)RTOS(實(shí)時(shí)操作系統(tǒng))如FreeRTOS第四階段:深入理
    發(fā)表于 05-15 09:29

    云MES系統(tǒng)源碼,支持 SaaS 多租戶,支持二次開(kāi)發(fā)

    萬(wàn)界星空科技MES生產(chǎn)制造執(zhí)行系統(tǒng)源碼,有演示,多個(gè)項(xiàng)目應(yīng)用案例,成熟穩(wěn)定。支持二次開(kāi)發(fā),商業(yè)授權(quán)后可商用。
    的頭像 發(fā)表于 05-07 11:14 ?814次閱讀
    云MES<b class='flag-5'>系統(tǒng)</b>源碼,支持 SaaS 多租戶,支持<b class='flag-5'>二次開(kāi)發(fā)</b>

    RT-Thread嵌入式操作系統(tǒng)專(zhuān)業(yè)培訓(xùn)班-深圳站重磅開(kāi)啟!

    RT-Thread官方將在深圳舉辦為期三天的嵌入式操作系統(tǒng)專(zhuān)業(yè)培訓(xùn)班!本次培訓(xùn)將深入講解RT-Thread嵌入式實(shí)時(shí)操作系統(tǒng)的核心技術(shù)與實(shí)戰(zhàn)應(yīng)用,助力
    的頭像 發(fā)表于 04-11 18:18 ?857次閱讀
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>專(zhuān)業(yè)培訓(xùn)班-深圳站重磅開(kāi)啟!

    操作系統(tǒng)適配,飛凌嵌入式T527核心板打造高效開(kāi)發(fā)新體驗(yàn)

    飛凌嵌入式基于全志T536處理器開(kāi)發(fā)設(shè)計(jì)的FET527N-C核心板適配了全新升級(jí)的ForlinxDesktop22.04操作系統(tǒng),這一舉措不僅能夠?yàn)橛脩魩?lái)了更加流暢、穩(wěn)定的
    的頭像 發(fā)表于 03-20 14:33 ?1431次閱讀
    新<b class='flag-5'>操作系統(tǒng)</b>適配,飛凌<b class='flag-5'>嵌入式</b>T527核心板<b class='flag-5'>打造</b>高效<b class='flag-5'>開(kāi)發(fā)</b>新體驗(yàn)