女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

利用愛星物聯(lián)服務(wù)腳手架實現(xiàn)定制服務(wù)

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2024-06-07 09:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

hello,小伙伴們,愛星物聯(lián)云平臺開源已發(fā)布一段時間了,這篇文章《愛星物聯(lián)開源版后臺定制開發(fā)簡介》介紹了愛星物聯(lián)開源版的后臺定制開發(fā)介紹。

可能有人會說,這純理論的內(nèi)容,如果沒有深入去了解源代碼和相關(guān)工具,可能理解起來還是云里霧里,還是沒法下手定制開發(fā)吧?

別急,理論指導(dǎo)實踐來了。本文介紹基于API腳手架和微服務(wù)腳手架構(gòu)建自定義的對應(yīng)服務(wù),以及自定義服務(wù)怎么與愛星物聯(lián)IoT平臺服務(wù)進(jìn)行交互(內(nèi)容屬于下圖紅色線框部分)。

wKgZomZiZFyAJj4CAAB1BE1w7x058.jpeg

為了方便演示和理解,先以一個最簡單的需求為例:

目標(biāo):給平臺增加一個產(chǎn)品功能項告警配置功能。

場景設(shè)想:一個可充電電池版設(shè)備,當(dāng)電量過低時,需要在平臺端判定告警,而告警閾值因用戶而異,數(shù)值各有不同。

需求:實現(xiàn)告警配置(備注:判定告警和記錄告警的邏輯不在演示范圍),后臺需提供告警閾值的增刪改查接口

如何實現(xiàn)上述功能?按照下面的流程走一遍試試。

01創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表

經(jīng)過簡單梳理設(shè)備狀態(tài)的相關(guān)內(nèi)容,可在設(shè)備庫iot_device下創(chuàng)建數(shù)據(jù)表t_iot_device_alarm_config,數(shù)據(jù)表字段內(nèi)容整理如下:

wKgZomZiZGaAX97pAADQQG0vsrQ42.jpeg

其中dev_id、dpid兩列創(chuàng)建唯一索引,創(chuàng)建完成后可進(jìn)入下一步。

02數(shù)據(jù)庫操作代碼生成

在愛星物聯(lián)IoT平臺中,所有配置類業(yè)務(wù)全部采用了MySQL數(shù)據(jù)庫

Go語言的MySQL數(shù)據(jù)庫ORM相關(guān)的框架,開源的有很多,功能基本相同。平臺使用了在國內(nèi)備受歡迎的數(shù)據(jù)庫ORM框架gorm及其配套的gen代碼生成工具。

gen工具有定制部分功能,主要是對特定列名、駝峰方式,MySQL部分?jǐn)?shù)據(jù)類型轉(zhuǎn)換做了特定修改定制,代碼已開源。

后臺的小伙伴們可以到https://github.com/ubases/gen找到定制的倉庫。

這個工具有打包exe,建倉庫代碼中的tool/mysql-to-model/gentool.exe,windows下的開發(fā)者可以直接使用,linux下的開發(fā)者可從源碼倉庫中下載gen代碼編譯工具。

iot_device數(shù)據(jù)庫對應(yīng)的ORM包,在路徑iot_model/db_device下,進(jìn)入該目錄后,可看到有g(shù)entoo.bat文件,打開該文件,內(nèi)容如下:

rem 生成整個庫

..\..\tool\mysql-to-model\gentool.exe -dsn "root:iLmz8sCXjkTYuh@tcp(192.168.5.56:3306)/iot_device?charset=utf8mb4&parseTime=True&loc=Local" -outPath orm -modelPkgName model

rem 生成單元測試加 -withUnitTest true

rem 生成某個表,后邊加 -tables {table name}

將其中的數(shù)據(jù)庫用戶名、密碼、IP、端口部分改成實際部署環(huán)境的參數(shù),然后執(zhí)行g(shù)entoo.bat.如果環(huán)境和參數(shù)配置都正確,那么會在model和orm子目錄下,會生成很多go文件。仔細(xì)觀察,會發(fā)現(xiàn),這兩個子目錄新生成1個名為

t_iot_device_alarm_config.gen.go的文件,這個2個文件就是我們新增加的表t_iot_device_alarm_config的所有公共代碼。

其中model目錄的t_iot_device_alarm_config.gen.go里邊包含t_iot_device_alarm_config表對應(yīng)go結(jié)構(gòu)體及映射關(guān)系.

wKgaomZiZGeAE1eYAAEcrxH1hCc26.jpeg

orm目錄的t_iot_device_alarm_config.gen.go里邊包含該表的常用增刪改查操作方法。

wKgZomZiZHKAQiglAADZD-nv4Ws16.jpeg

Model目錄下的model包比較好理解,orm目錄下的orm包,每個表的操作方法一樣,不過只需要熟悉掌握其中的1個表的所有方案,即可掌握orm包下所有方法的用法。

03創(chuàng)建自定義服務(wù)骨架

在了解愛星物聯(lián)API和微服務(wù)腳手架的源代碼結(jié)構(gòu)后,開源倉庫中的iot_demo_api_service是API的腳手架,自定義API服務(wù)可以基于這個腳手架進(jìn)行開發(fā)。

倉庫中的iot_demo_service是微服務(wù)的腳手架。

愛星物聯(lián)IoT平臺有一條未明確說明的規(guī)則,Web、APP、小程序等的入口都是API類的服務(wù),該類API服務(wù)對外提供http/websocket+json接口;API調(diào)用內(nèi)部服務(wù)以及內(nèi)部服務(wù)之間,全部是基于grpc+protobuf的接口。

為了演示需要,按照這個規(guī)則,基于iot_demo_api_service和iot_demo_service服務(wù)分別拷貝整個工程目錄到新的目錄,并改名為iot_my_api_service和iot_my_service(正式服務(wù)定制時請用正常名稱,這里演示,取名隨意),修改后的代碼結(jié)構(gòu)見下圖(左側(cè)是腳手架,右側(cè)是自定義的API和微服務(wù))。

wKgaomZiZHKAa_0JAABZBwGK2zA92.jpeg

拷貝完成后,開始進(jìn)行包名和代碼修改。

進(jìn)入iot_my_api_service目錄,挨個將go文件import的所有包名中的包含的iot_demo_api_service全部替換為iot_my_api_service。進(jìn)入iot_my_service目錄,挨個將go文件import的所有包名中的包含的iot_demo_service全部替換為iot_my_service。改為后,進(jìn)行簡單的編譯,確保編譯通過。

04微服務(wù)和API代碼生成和完善

開源倉庫中,類似iot_{XXX}_service的目錄中,都是一個個服務(wù)。這些服務(wù)結(jié)構(gòu)看起來是不是很整齊的樣子,那是因為大部分增刪改查之類的代碼、部分實體、及RPC接口都是用工具生成,上一步用到的腳手架部分代碼也是這樣生成的。

代碼生成工具在tool/mysql-to-service路徑下。具體的用法可以參考README.md文件。

修改config.yaml配置文件

wKgZomZiZHiAdpOSAAECPIsXElw41.jpeg

執(zhí)行g(shù)en.bat

打開gen.bat文件,并修改為如下內(nèi)容:

wKgaomZiZHiAG2hSAAAs_4brV8M15.jpeg

后邊--tableName 后邊加表名,也就是第一步創(chuàng)建的表的名字。

修改后運行,就會在gen目錄下,生成如下目錄結(jié)構(gòu)的文件。

wKgZomZiZHmAOAnrAABwP4aTHS066.jpeg

注意到上面有個proto目錄,工具生成了2個文件:

iot_device_alarm_config_model.gen.proto

iot_device_alarm_config_service.gen.proto。這2個文件里邊有定義grpc接口和消息結(jié)構(gòu)。

本次生成的代碼,感興趣的開發(fā)者們可以仔細(xì)看看代碼結(jié)構(gòu),這里不貼代碼介紹了。

執(zhí)行g(shù)engo.bat

這一步依賴上一步生成proto文件,這一步的目標(biāo)是利用protoc工具將proto文件生成go語言代碼。

這一步比較簡單,不需要修改gengo.bat文件,執(zhí)行執(zhí)行即可。執(zhí)行完成后,會在protosService下生成對應(yīng)的go代碼,這個例子生成了4個文件:

iot_device_alarm_config_model.gen.pb.go

iot_device_alarm_config_model.gen.pb.micro.go

iot_device_alarm_config_service.gen.pb.go

iot_device_alarm_config_service.gen.pb.micro.go

將這4個文件拷貝到iot_proto/protos/protosService路徑下。

代碼拷貝

將gen目錄下的convert、entitys、handler、service目錄整體拷貝到iot_my_service下,覆蓋原來的文件。覆蓋后的目錄文件結(jié)構(gòu)如下所示:

wKgaomZiZHqAAT3iAABfYEeQhfY06.jpeg

將entitys下的文件iot_device_alarm_config_entitys.gen.go拷貝到iot_my_api_service/controls/system/entitys下(這里演示放到了system模塊下,實際定制開發(fā)中請根據(jù)實際需要放到controls下的子模塊中)。

完成iot_my_service服務(wù)

●打開iot_my_service/handler/register_handler.go文件,把剛生成的handler注冊進(jìn)去。

wKgZomZiZHqAc5z2AACk4M4k1Fg88.jpeg

●進(jìn)入bin/conf/open,復(fù)制一份iot_demo_service.yml,將其改名為iot_my_service.yml,并修改配置文件中的內(nèi)容。重點是logfile和database下的內(nèi)容,注意修改正確。

●打開源代碼

iot_my_service/config/config.go,修改配置文件為iot_my_service.yml。

●原來demo中的表config_dict_type在iot_config數(shù)據(jù)庫,現(xiàn)在切換到了iot_device數(shù)據(jù)庫,因此,需要刪除掉原來config_dict_type相關(guān)的內(nèi)容。

●進(jìn)入

iot_common/iotconst/service_name.go,給服務(wù)定義一個常量IOT_MY_SERVICE,并取個服務(wù)名,其它服務(wù)會根據(jù)這個服務(wù)名去微服務(wù)注冊中心找到地址信息。并在main.go中將服務(wù)名修改為新取得名稱,即將iotconst.IOT_DEMO_SERVICE修改為iotconst.IOT_MY_SERVICE。

●至此iot_my_service全部改造完成,可直接編譯運行。

完成iot_my_api_service服務(wù)

●定義rpc客戶端。進(jìn)入rpc目錄打開globalService.go,修改為如下內(nèi)容:

wKgaomZiZHyADpuzAABIvQb5m6U17.jpeg

●進(jìn)入iot_my_api_service/controls下,實現(xiàn)HTTP接口,這塊目前沒有代碼生成工具生成,可以仿照basedata開頭的文件,實現(xiàn)自己的api和service。代碼中可以使用上一步創(chuàng)建的客戶端接口,類似調(diào)用本地函數(shù)類似,調(diào)用接口方法。關(guān)于這塊的代碼生成,后續(xù)可能會推出。

●打開iot_my_api_service/router/router.go,注冊新實現(xiàn)的模塊的路由。如果共用demo提供的system則不需要重復(fù)注冊。

●仿照iot_my_service添加配置文件。

●修改config.go,將配置文件名稱改為第4步添加的配置文件。

●至此iot_my_api_service全部改造完成,可直接編譯運行。

經(jīng)過以上步驟就完成了微服務(wù)和API服務(wù)代碼的基本定制,通過API接口調(diào)用微服務(wù)實現(xiàn)告警配置的增刪改查。其中基于腳手架的配置步驟有點多,但不復(fù)雜,熟練了這個過程是很快的,各位開發(fā)者小伙伴來試試吧~

審核編輯 黃宇

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

    關(guān)注

    2

    文章

    1571

    瀏覽量

    63773
  • 腳手架
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    5537
  • IOT
    IOT
    +關(guān)注

    關(guān)注

    187

    文章

    4296

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    2010年迪拜五大行業(yè)展|迪拜建材展|緊固件|腳手架|建筑五金|衛(wèi)浴|陶瓷|大理石

    ;建筑安全設(shè)備;混凝土-預(yù)制、建筑系統(tǒng);建筑立面、盤座面及包覆;加熱裝置;模板/百葉窗;工具-空氣、手動及電動;砌體-磚、預(yù)制、水泥、灰漿;螺帽、錨桿、螺絲、鉸鏈等;建筑拆除;木材-框架及結(jié)構(gòu);腳手架
    發(fā)表于 09-06 15:51

    2011年沙特建材展|吉達(dá)建材展|五大行業(yè)展|緊固件|腳手架|玻璃|門窗|

    |吉達(dá)建材展|五大行業(yè)展|緊固件|腳手架|玻璃|門窗|2011年沙特建材展|吉達(dá)建材展|五大行業(yè)展|緊固件|腳手架|玻璃|門窗|2011年沙特建材展|吉達(dá)建材展|五大行業(yè)展|緊固件|腳手架|玻璃|門窗
    發(fā)表于 09-06 15:55

    2011年沙特建材展|吉達(dá)建材展|五大行業(yè)展|緊固件|腳手架|玻璃|門窗|

    ;nbsp;2011年沙特建材展|吉達(dá)建材展|五大行業(yè)展|緊固件|腳手架|玻璃|門窗|2011年沙特建材展|吉達(dá)建材展|五大行業(yè)展|緊固件|腳手架|玻璃|門窗|2011年沙特建材展|吉達(dá)建材展|五大行業(yè)展
    發(fā)表于 09-06 16:05

    BLE定制服務(wù)中心+外設(shè)示例

    我想通過PLE連接2個PSoC 6設(shè)備,并通過定制服務(wù)傳輸串行數(shù)據(jù)。根據(jù)使用情況,每個設(shè)備可以是中央設(shè)備或外圍設(shè)備。定制服務(wù)只在外圍數(shù)據(jù)庫中,中央必須發(fā)現(xiàn)它并啟用通知。這有一個示例項目嗎?我只在
    發(fā)表于 09-10 15:31

    X86主板定制服務(wù)

    `資深x86研發(fā)團(tuán)隊,10+年研發(fā)經(jīng)驗,研發(fā)成員來自于一線的PC、服務(wù)器、工控廠商,為客戶提供專屬的X86主板定制服務(wù)。平臺:Xeon/Core/Pentium/Celeron/ATOMXeon
    發(fā)表于 03-02 11:28

    懸挑式腳手架監(jiān)理控制要點

    懸挑式腳手架一般有兩種:一種是每層一挑,將立桿底部頂在樓板、梁或墻體等建筑部位,向外傾斜固定后,在其上部搭設(shè)橫桿、鋪腳手板形成施工層,施工一個層高,待轉(zhuǎn)入上層
    發(fā)表于 12-15 14:29 ?15次下載

    腳手架的避雷方法

    搭設(shè)在曠野山坡上雷擊區(qū)的鋼腳手架在雷雨季節(jié)應(yīng)設(shè)避雷裝置,避雷裝置包括接閃器、接地極、接地線。
    發(fā)表于 01-19 15:26 ?18次下載

    聯(lián)網(wǎng)腳手架系統(tǒng)能帶來什么益處

    橫向移動不是腳手架上工人唯一需要擔(dān)心的事情。超重載荷對立柱施加的壓力過大可能會導(dǎo)致結(jié)構(gòu)崩塌。平板下面的聯(lián)網(wǎng)傳感器可以在壓力成為問題之前測量到它。
    發(fā)表于 03-20 10:16 ?662次閱讀

    科學(xué)家研發(fā)可溶解的植入骨折的腳手架材料——特殊繃帶

    植入骨折的腳手架材料,能夠促使身體自身的骨細(xì)胞長入其中并治愈骨折。而現(xiàn)在,科學(xué)家們開發(fā)了一種特殊的繃帶,也可以做到這一點。
    的頭像 發(fā)表于 09-25 11:30 ?1892次閱讀

    腳手架掛牌方案需要符合哪些層面的規(guī)定

    腳手架掛牌的過程中,當(dāng)然就必須應(yīng)用到方案,即然是方案,又和生產(chǎn)安全有關(guān),也就必須讓它符合各個方面的規(guī)定,那麼必須讓這類方案符合哪些層面的規(guī)定呢? 最先就必須讓它符合機器設(shè)備構(gòu)造上的規(guī)定,由于生產(chǎn)線
    發(fā)表于 02-11 10:52 ?1498次閱讀

    關(guān)于針對腳手架掛牌的歸納分析

    描述:用五金鎖具鎖定防護(hù)設(shè)備來防止很多人 隨便操作過程安全防護(hù)的能量源或者機器設(shè)備,(腳手架掛牌)直到維修結(jié)束,五金鎖具消除。 :運用衣服標(biāo)簽來警告別人早就被安全防護(hù)的能量源或者機器設(shè)備不能隨便
    發(fā)表于 03-01 11:50 ?892次閱讀

    為何需要腳手架掛牌,它的作用是怎樣的

    腳手架掛牌是便于避免員工在進(jìn)行維修、維修保養(yǎng)時,遇到來自設(shè)備的發(fā)生意外啟動、出現(xiàn)異常啟動、動力裝置釋放出所導(dǎo)致的風(fēng)險性,以保證 員工的人身安全。進(jìn)行腳手架掛牌操作程序的根本所在,斷掉設(shè)備與動力裝置
    發(fā)表于 03-05 11:39 ?2181次閱讀

    腳手架掛牌是什么,有什么作用

    上邊的案例,看了后耐人尋味。有誤實際操作腳手架掛牌,導(dǎo)致這么多可憐生命的身亡和資產(chǎn)的損害。由此可見恰當(dāng)應(yīng)用安全鎖具,是一件多么的關(guān)鍵的事兒。溫州市博士安全用品 解釋一下什么叫腳手架掛牌?
    發(fā)表于 03-22 10:27 ?2147次閱讀

    聯(lián)開源IoT平臺助力企業(yè)構(gòu)建安全可定制化的IoT解決方案

    聯(lián)團(tuán)隊近期推出了
    的頭像 發(fā)表于 03-25 10:05 ?715次閱讀

    聯(lián)IoT平臺正式開源

    聯(lián)IoT平臺,是面向智能設(shè)備和智能化企業(yè)的IoT平臺,提供成熟、安全、全球可用的聯(lián)網(wǎng)服務(wù)
    的頭像 發(fā)表于 03-29 11:08 ?792次閱讀
    <b class='flag-5'>愛</b><b class='flag-5'>星</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)</b>IoT平臺正式開源
    主站蜘蛛池模板: 新巴尔虎左旗| 宣城市| 辛集市| 施秉县| 上杭县| 黄石市| 贵港市| 佛冈县| 治多县| 通州区| 贵港市| 阳泉市| 图木舒克市| 佛山市| 呼和浩特市| 仙桃市| 博野县| 盐源县| 陕西省| 甘南县| 平昌县| 南昌市| 吉隆县| 仁布县| 潼关县| 绥棱县| 南溪县| 汉阴县| 邢台县| 岢岚县| 杨浦区| 抚远县| 东海县| 贵溪市| 丰顺县| 河源市| 湖北省| 莱阳市| 社旗县| 旌德县| 务川|