利用大语言模型(KIMI)构建智能产品的信息模型

          数字化的核心是数字化建模,为一个事物构建数字模型是一件非常繁杂和耗费人工的事情。利用大语言模型,能够轻松地生成设备的信息模型,我们的初步实验表明,只要提供足够的模板,就能够准确地生成设备的数字化模型。

        我们尝试了利用大预言模型生成OPCUA 和工业4.0 管理壳模型,实验中采用JSON 作为中间模型,构建了各种JSON 模板(template),得到了令人满意的结果。

笔者认为 大语言模型是生成产品信息模型的最佳工具。

产品信息模型与控制模型

        不同的应用场景,对事物的关注重点的不同的。例如,对于一个智能传感器而言,从商业的角度看,产品的信息模型中应该包括产品的类型,名称,制造商,技术规格,产品图片,3D模型,安全论证等信息。而对于应用工程师而言,关心的是产品的接口,协议和控制方法。产品的商业信息和使用信息是不同的。信息模型也不同。

   于是,产品的商业信息和使用信息采用的建模方式和标准也是不同的。产品信息主要标准包括GS-1,ETIM,ECL@SS。而控制模型包括OPC UA 和工业4.0 管理壳(AAS)。

  本文首先探讨在ETIM 模型的基础上扩展基于JSON 的控制信息模型。并且通过转换软件将JSON 控制模型转换成OPCUA 模型。采用JSON 的原因是JSON 更具有可读性。适合大语言模型构建产品模型。
      

智能产品信息模型   

  对于智能化技术产品而言,产品的信息包含下面几个方面:

  1. 产品的基本信息
  2. 产品的技术指标
  3. 产品的操作过程
  4. 产品的几何图形
  5. 产品的商务信息

   这些信息除了商务信息之外,通常包含在产品的数据表(DataSheet) 中,对于复杂的智能产品,为了帮助用户使用产品,还提供了辅助的技术文档。 商务信息在销售部门的报价单或者ERP 系统中。

           数字化的主要工作之一是构建生产过程中所有资产的数字化模型。产品的基本信息,技术指标和几何图形通常包含在产品分类目录中(例如ETIM,GS-1,ECL@SS)。产品的商务信息包含在电子商务平台信息模型中。而产品的操作过程包含在技术文档中。

  产品操作过程的模型

  在工业4.0 的相关标准中,数字资产的数字化模型被称为资产管理壳(AAS),其中包含了操作数据和服务,这是模型能够转换成自动控制系统中的信息模型,例如OPCUA 信息模型。

       资产管理壳和OPC UA 是相对比较复杂的形式化信息模型,构建这些信息模型要借助专业的设计工具,并且具备一定的AAS和OPCUA 背景知识,笔者关注的重点是使用更加便捷,高效的方法描述产品的信息模型。特别是ChatGPT 技术的出现。为使用自然语言描述信息模型带来了新的机会。在我看来,chatGPT 为代表的大语言模型最强大的能力是将人类自然语言的内容转换成为机器能够识别的形式化信息。

JSON LD 物模型

JSON -LD 的全称是(JSON linked data),是Google公司提出来的,W3C 发布 JSON-LD 1.1 正式推荐标准。

       JSON-LD 是一种轻量级链接数据格式。它 对人类来说很容易读写。它基于已经 成功的 JSON 格式,并提供了一种帮助 JSON 数据互操作的方法。

JSON-LD的初衷是提供了一种更简单的方法来从网站创建机器可读数据以提升搜索结果。

        具体来说,使用 <script type="application/ld+json"> 标签可以让网页中的元素被编码为一个 JSON-LD 对象,并将其嵌入到页面中。这个 JSON-LD 对象可以包含诸如实体名称、描述、图像、地址、联系方式等属性信息,让搜索引擎更好地理解网页的含义和结构。

        通过使用结构化数据,网站管理员可以帮助搜索引擎更好地了解他们网站的内容和结构,并且有助于提高网站在搜索引擎中的排名和可见度。另外,使用 JSON-LD 还可以使您的网站在 Google 的搜索结果中显示富媒体的搜索结果,例如公司地址、电话号码、评分等等。

在网页正文中嵌入结构化数据,例如描述组织、产品或事件的相关信息。以下是一个示例:
 

<!DOCTYPE html>
<html>
  <head>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Organization",
      "name": "Example Company",
      "url": "https://www.example.com/",
      "logo": "https://www.example.com/logo.png"
    }
    </script>
  </head>
  <body>
    <h1>Welcome to Example Company</h1>
    <p>Visit our website at <a href="https://www.example.com/">www.example.com</a></p>
  </body>
</html>

JSON-LD 被用于物联网(Web of thing )描述物模型,下面是一个例子:

{
    "id": "urn:dev:wot:com:example:servient:lamp",
    "name": "MyLampThing",
    "securityDefinitions": {
        "basic_sc": {"scheme": "basic"}
    },
    "security": ["basic_sc"],
    "properties": {
        "status" : {
            "type": "string",
            "forms": [{"href": "https://mylamp.example.com/status"}]
        }
    },
    "actions": {
        "toggle" : {
            "forms": [{"href": "https://mylamp.example.com/toggle"}]
        }
    },
    "events":{
        "overheating":{
            "data": {"type": "string"},
            "forms": [{
                "href": "https://mylamp.example.com/oh",
                "subprotocol": "longpoll"
            }]
        }
    },
    "annotation": {
      "@context": {
        "@base": "http://example.org/data/",
        "vendor": "http://vendor.org/product/"
      }
      "@type": "vendor:color-light",
      "isAbstractionOf": "appartment/134#light-1"
    }
}

 受到WoT 使用JSON LD 建模的启发,我们可以利用JSON构建控制过程的模型:

  • JSON 更适合人类阅读和书写
  • JSON 更适合LLM 生成

大语言模型生成产品模型的实验

        笔者曾经尝试使用LLM 直接生成产品信息模型,结果发现,LLM 的输出存在不一致的现象,在数字化建模中是无法接受的。而LLM是基于语言的实例来学习语言的语法。它目前无法学习schema 规范。因此,我放弃了直接生成产品模型的想法,而是为LLM 提供一个JSON 模型的模板,让LLM 完成模型的实例化.通过阅读产品的datasheet ,提取相关信息,填入预先定义的JSON 模型中,并且将JSON 模型中未定义的属性作为专用属性增补在后面。

构建产品信息模型

这是产品的控制模型: 

{
    "name":"mydevice",
    "description":"description of mydevice",
    "group_id":"group id",
    "class_id":"class_id",
    "properties":[{
        "name":"status",
        "type":"string",
        "description":"the status of device"
        },
        {
            "name":"temperature",
            "type":"numeric",
            "description":"the temperature of device",
            "max":"max of value",
            "min":"min of value",
            "value":"the default value"
            }
     ],
    "actions":[{
        "name":"the name og action",
        "description":"the description of the action",
        "arguments":{
            "inputs":[],
            "output"[]
        }
    }],
    "events":[{
        "name":" the name of event",
        "description":"description of the event"
    }]
}

输入产品控制模型的描述

使用word 编写了一个产品的简单描述:

这是产品的信息
名称 温度传感器
属性:
     温度
      最大值:180
      最小值: -30
      初始值:0
电流
  初始值:0
电压
初始值:24
动作:
初始化
   输入:
输入1:电流初始值
   输出:无
读取温度:
  输入:无
  输出:
输出1当前温度
复位:
  输入:无
输出:无

将产品模型和产品信息上传给kimi 大模型,结果为:

{
  "name": "温度传感器",
  "properties": {
    "temperature": {
      "max": 180,
      "min": -30,
      "initial_value": 0
    },
    "current": {
      "initial_value": 0
    },
    "voltage": {
      "initial_value": 24
    }
  },
  "actions": [
    {
      "name": "initialize",
      "description": "初始化设备,设置电流的初始值",
      "arguments": {
        "inputs": [
          {
            "name": "current_initial_value",
            "description": "电流的初始值"
          }
        ],
        "outputs": []
      }
    },
    {
      "name": "read_temperature",
      "description": "读取设备当前的温度值",
      "arguments": {
        "inputs": [],
        "outputs": [
          {
            "name": "current_temperature",
            "description": "当前的温度值"
          }
        ]
      }
    },
    {
      "name": "reset",
      "description": "复位设备到初始状态",
      "arguments": {
        "inputs": [],
        "outputs": []
      }
    }
  ]
}

构建工业4.0 管理壳信息模型

        同样地,我们根据《IDTA 02006-2-0 Digital Nameplate for Industrial Equipment》 规范构建了工业设备数字铭牌的JSON 模板,生成了一个锅炉的数字铭牌:

JSON 模板

{
    "submodelId": "urn:company:submodel:nameplate",
    "submodelName": "namepalte",
    "description": "the name plate",
    "semanticId": "http://www.example.com/nameplate",
    "globalAssetId": "urn:company:asset:67890",
    "ManufacturerName": "legally valid designation of the natural or judicial person which is directly responsible for the design, production, packaging and labeling of a product in respect to its being brought into circulation",
    "ManufacturerProductDesignation": "Short description of the product ",
    "ContactInformation": {
        "Street":"street name and house number",
        "Zipcode":"ZIP code of address",
        "CityTown":"town or city",
        "NationalCode":"code of a country",
        "Phone":{},
        "Fax":{},
        "Email":{},
        "IPCommunication":{}
    },
    "ManufacturerProductRoot": "Top level of a 3 level manufacturer specific product hierarchy",
    "ManufacturerProductType": "Characteristic to differentiate between different products of a product family or special variants",
    "OrderCodeOfManufacturer": "By manufactures issued unique combination of numbers and letters used to identify the device for ordering",
    "ProductArticleNumberOfManufacturer": "unique product identifier of the manufacturer",
    "SerialNumber": "unique combination of numbers and letters used to identify the device once it has been manufactured",
    "YearOfConstruction": "Date from which the production and / or development process is completed or from which a service is provided completely",
    "HardwareVersion": "Version of the hardware supplied with the device",
    "FirmwareVersion": "Version of the firmware supplied with the device",
    "SoftwareVersion": "Version of the software used by the device",
    "CountryOfOrigin": "Country where the product was manufactured",
    "CompanyLogo": "A graphic mark used to represent a company",
    "Markings": {
        "MarkingName":"common name of the marking",
        "DesignationOfCertificateOrApproval":"alphanumeric character sequence identifying a certificate or approva",
        "IssueDate":"Date, at which the specified certificate is issued",
        "ExpiryDate":"Date, at which the specified certificate expires ",
        "MarkingFile":"conformity symbol of the marking",
        "MarkingAdditionalText":"where applicable, additional information on the marking in plain text, e.g. the ID-number of the notified body involved in the conformity process",
        "ExplosionSafeties":{
            "ExplosionSafety":{
                "DesignationOfCertificateproval":"alphanumeric character sequence identifying a certificate or approval",
                "TypeOfApproval":"classification according to the standard or directive to which the approval applies",
                "ApprovalAgencyTestingAgency":"certificates and approvals pertaining to general usage and compliance with constructional standards and directives",
                "TypeOfProtection":"classification of an explosion protection according to the specific measures applied to avoid ignition of a surrounding explosive atmosphere",
                "RatedInsulationVoltage":"from the manufacturer for the capital assets limited isolation with given(indicated) operating conditions",
                "InstructionsControlDrawing":"designation used to uniquely identify a control/reference drawing stored in a file system",
                "SpecificConditionsForUse":"",
                "IncompleteDevice":"",
                "AmbientConditions":{
                    "DeviceCategory":"category of device in accordance with directive",
                    "EquipmentProtectionLeve":"part of a hazardous area classification system indicating the likelihood of the existence of a classified hazard",
                    "RegionalSpecificMarking":"Marking used only in specific regions",
                    "TypeOfProtection":"",
                    "ExplosionGroup":"",
                    "MinimumAmbientTemperature":"",
                    "MaxAmbientTemperature":"",
                    "MaxSurfaceTemperatureForDustProof":"",
                    "TemperatureClass":""


                },
                "ProcessConditions":{
                    "DeviceCategory":"",
                    "EquipmentProtectionLeve":"",
                    "RegionalSpecificMarking":"",
                    "TypeOfProtection":"",
                    "ExplosionGroup":"",
                    "LowerLimitingValueOfProcessTemperature":"",
                    "UpperLimitingValueOfProcessTemperature":"",
                    "MaxSurfaceTemperatureForDustProof":"",
                    "TemperatureClass":""



                },
                "ExternalElectricalCircuit":{
                    "DesignationOfElectricalTerminal":"",
                    "TypeOfProtection":"",
                    "EquipmentProtectionLevel":"",
                    "ExplosionGroup":"",
                    "Characteristics":"",
                    "Fisco":"",
                    "TwoWISE":"",
                    "SafetyRelatedPropertiesForPassiveBehaviour":{
                        "MaxInputPower":"",
                        "MaxInputVoltage":"",
                        "MaxInputCurrent":"",
                        "MaxInternalCapacitance":"",
                        "MaxInternalInductance":"",


                    },
                    "SafetyRelatedPropertiesForActiveBehaviour":{
                        "MaxOutputPower":"",
                        "MaxOutputVoltage":"",
                        "MaxOutputCurrent":"",
                        "MaxExternalCapacitance":"",
                        "MaxExternalInductance":"",
                        "MaxExternalInductanceResistanceRatio":"",


                    }
             
                }


            }

        }
    },
    "AssetSpecificProperties": "Group of properties that are listed on the asset's nameplate and are grouped based on guidelines",
}

将该文件以PDF 格式上传给KIMI。然后开始对话 

KIMI 的会话

“你是一个工业4.0 专家,请构建一个锅炉的数字铭牌的子管理壳模型”

输出

{
  "submodelId": "urn:company:submodel:nameplate:boiler",
  "submodelName": "Boiler Nameplate",
  "description": "Digital nameplate for industrial boiler",
  "semanticId": "http://www.example.com/boiler-nameplate",
  "globalAssetId": "urn:company:asset:boiler123",
  "ManufacturerName": "ABC Boiler Systems Ltd.",
  "ManufacturerProductDesignation": "Industrial Steam Boiler",
  "ContactInformation": {
    "Street": "123 Industrial Park Road",
    "Zipcode": "12345",
    "CityTown": "Metropolis City",
    "NationalCode": "US",
    "Phone": "555-1234",
    "Fax": "555-5678",
    "Email": "info@abcboiler.com",
    "IPCommunication": {
      "IP": "192.168.1.10",
      "Port": "80"
    }
  },
  "ManufacturerProductRoot": "Boilers",
  "ManufacturerProductType": "Steam Boiler",
  "OrderCodeOfManufacturer": "BTL-100-S",
  "ProductArticleNumberOfManufacturer": "BTL100S-001",
  "SerialNumber": "SN2023040123456",
  "YearOfConstruction": "2023",
  "HardwareVersion": "HW1.0",
  "FirmwareVersion": "FW1.0",
  "SoftwareVersion": "SW1.0",
  "CountryOfOrigin": "USA",
  "CompanyLogo": "http://www.abcboiler.com/logo.png",
  "Markings": {
    "MarkingName": "CE Mark",
    "DesignationOfCertificateOrApproval": "CE123456",
    "IssueDate": "2023-01-01",
    "ExpiryDate": "2026-01-01",
    "MarkingFile": "http://www.abcboiler.com/cert/CE123456.png",
    "MarkingAdditionalText": "Notified Body ID: NB789"
  },
  "ExplosionSafeties": {
    // 省略了详细内容,根据实际安全标准和认证进行填充
  },
  "AssetSpecificProperties": {
    "BoilerType": "Fire-Tube",
    "FuelType": "Natural Gas",
    "OutputCapacity": "1000 kg/h",
    "WorkingPressure": "15 bar",
    "SafetyValveRating": "16 bar",
    "Efficiency": "85%",
    "ControlSystem": "Automatic with Remote Monitoring"
  }
}

实验-2 构建反应釜的数字铭牌

KIMI 会话

“你是一个工业4.0 专家,请构建一个反应釜的数字铭牌的子管理壳模型”

回答

{
  "submodelId": "urn:company:submodel:nameplate:reactor",
  "submodelName": "Reactor Nameplate",
  "description": "Digital nameplate containing key information about the reactor",
  "semanticId": "http://www.example.com/nameplate#reactor",
  "globalAssetId": "urn:company:asset:reactor456",
  "ManufacturerName": "Chemical Processing Inc.",
  "ManufacturerProductDesignation": "Stainless Steel Reaction Vessel",
  "ContactInformation": {
    "Street": "200 Chemical Road",
    "Zipcode": "54321",
    "CityTown": "Industrial City",
    "NationalCode": "DE",
    "Phone": {
      "countryCode": "49",
      "areaCode": "69",
      "number": "123-456-789"
    },
    "Fax": {
      "countryCode": "49",
      "areaCode": "69",
      "number": "123-456-098"
    },
    "Email": "info@chemicalprocessing.com",
    "IPCommunication": {
      "IP": "192.168.1.20",
      "Protocol": "HTTPS"
    }
  },
  "ManufacturerProductRoot": "Reaction Vessels",
  "ManufacturerProductType": "Agitated Reactor",
  "OrderCodeOfManufacturer": "CPI-RXV-200",
  "ProductArticleNumberOfManufacturer": "ART-2002",
  "SerialNumber": "SN2023000567",
  "YearOfConstruction": "2023",
  "HardwareVersion": "HWv1.2",
  "FirmwareVersion": "FWv1.1",
  "SoftwareVersion": "SWv2.2",
  "CountryOfOrigin": "Germany",
  "CompanyLogo": "http://www.chemicalprocessing.com/logo.png",
  "Markings": {
    "MarkingName": "Pressure Vessel Certification",
    "DesignationOfCertificateOrApproval": "PVC-2023-789",
    "IssueDate": "2023-02-10",
    "ExpiryDate": "2026-02-10",
    "MarkingFile": "http://www.chemicalprocessing.com/cert/PVC-2023-789.png",
    "MarkingAdditionalText": "Certification Body: Pressure Vessel Certifiers Ltd."
  },
  "AssetSpecificProperties": {
    "VesselType": "Stainless Steel Reactor",
    "VolumeCapacity": "2000 Liters",
    "WorkingPressure": "10 bar",
    "TemperatureRange": "-20°C to 200°C",
    "AgitationSpeed": "0 to 500 RPM",
    "HeatingMethod": "Electric",
    "MaterialOfConstruction": "304 Stainless Steel",
    "DesignCode": "ASME Section VIII, Div. 1",
    "SafetyFeatures": "Pressure relief valve, temperature control system"
  }
}

实验表明,我们可以根据标准和规范直接生成各种模型。 构建OPCUA 及其配套规范也是可行的。

结论

下一步我们的工作:

  • 依据OPC UA 和I4.0 AAS 规范构建更多的产品模型的模板
  • 收集产品的规格书(datasheet)

   根据产品的datasheet 直接生成产品信息模型,是LLM 擅长的工作。它将对开放自动化系统产生深远的影响。在这之前,仍然有许多基础工作需要完成。没有数据基础,贸然推广应用收到惊艳的 效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/593974.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python数据分析——在数据分析中有关概率论的知识

参数和统计量 前言一、总体二、样本三、统计抽样四、随机抽样4.1. 抽签法4.2. 随机数法 五、分层抽样六、整群抽样七、系统抽样八、统计参数九、样本统计量十、样本均值和样本方差十一、描述样本集中位置的统计量11.1. 样本均值11.2. 样本中位数11.3. 样本众数 十二、描述样本分…

电脑怎样才能每天定时自动打开指定文件?定时打开指定文件的方法

要实现电脑每天定时自动打开指定文件&#xff0c;你可以采用多种方法&#xff0c;其中最常见和可靠 的是使用汇帮定时精灵和操作系统的任务计划程序。下面我将为你详细介绍这两种方 法。 方法一&#xff0c;使用汇帮定时精灵【汇帮定时精灵】提供了更多的选项和功能&#xff0c…

Git常用(持续更新)

常用场景&#xff1a; 初始化&#xff1a; git config --global user.name "codelabs" git config --global user.email mycodelabs.com git init git remote add origin https://github.com/username/repository.git git pull origin master 提交&#xff1a; gi…

开源版本管理系统的搭建二:SVN部署及使用

作者&#xff1a;私语茶馆 1. Visual SVN Server部署 SVN Server部署包括&#xff1a; 创建版本仓库创建用户 这些部署是通过VisualSVN Server Manager实现的&#xff0c;如下图&#xff1a; VisualSVN Server Manager&#xff08;安装后自带&#xff09; 1.1.SVN 初始化配…

Fourier 测试时间自适应与多级一致性用于鲁棒分类

文章目录 Fourier Test-Time Adaptation with Multi-level Consistency for Robust Classification摘要方法实验结果 Fourier Test-Time Adaptation with Multi-level Consistency for Robust Classification 摘要 该研究提出了一种名为 Fourier 测试时间适应&#xff08;FTT…

windows驱动开发-内核调度(一)

驱动层面的调度和同步一向是内核中比较困难的部分&#xff0c;和应用层不一样&#xff0c;内核位于系统进程下&#xff0c;所以它的调度和同步一旦出现纰漏&#xff0c;那会影响所有的程序&#xff0c;而内核并不具备对于这种情况下的纠错能力&#xff0c;没有异常手段能够让挂…

workminer之dht通信部分

workminer是通过SSH爆破传播的挖矿木马&#xff0c;感染后会释放xmrig挖矿程序利用主机的CPU挖取北方门罗币。该样本能够执行特定的指令&#xff0c;指令保存在一个配置文件config中&#xff0c;config文件类似于xml文件&#xff0c;里面有要执行的指令和参数&#xff0c;样本中…

BUUCTF---misc---[BJDCTF2020]纳尼

1、下载附件是一个gif图片&#xff0c;但是图片打不开 2、用winhex分析&#xff0c;看到缺少了文件头 3、将文件头通过ASCII码方式粘贴后&#xff0c;保存&#xff0c;图片恢复了正常 4、是一张动图&#xff0c;一共四张&#xff0c;每张都有base64编码 5、用stegsolve分解图…

【竞技宝jjb.lol】LOL:TES顺利晋级却暴露问题

北京时间2024年5月5日,英雄联盟2024MSI季中赛正在如火如荼的进行之中,目前入围赛阶段的比赛已经进入尾声,入围赛实力最强的两支战队T1、TES都已经顺利晋级淘汰赛阶段,在昨天的比赛结束之后,A组的FLY、PSG,B组的FNC、GAM将争夺剩下的两个出线名额。 回顾这次入围赛中,T1和TES的比…

buu相册

010分析是一个rar文件&#xff0c;7z打开发现是一个apk文件 但没发现什么敏感信息 全局搜索mail 然后就是查看引用与出处 base解密完是一个邮箱&#xff0c;提交对了。

vivado 在硬件中调试串行 I/O 设计-属性窗口

只要在“硬件 (Hardware) ”窗口中选中 GT 或 COMMON 块、在“链接 (Link) ”窗口中选中链接 &#xff0c; 或者在“扫描 (Scan)”窗口中选中扫描 &#xff0c; 那么就会在“ Properties ”窗口中显示该对象的属性。对于 GT 和 COMMON &#xff0c; 包括这些对象的所有属性、…

01 JVM -- JVM 体系结构、HotSpot

1. JVM、HotSpot、 OpenJDK 的区别 JVM (Java Virtual Machine) 是一个虚拟机HotSpot 是 JVM 规范的一个实现。HotSpot 虚拟机通过即时编译 (JIT) 技术将 Java 字节码转换为本地机器码&#xff0c;以提高程序的执行效率。OpenJDK 是一个项目名&#xff0c;它在 HotSpot 的基础…

常见的零拷贝技术

传统IO 基于传统的IO方式&#xff0c;底层实际上通过调用read()和write()来实现。通过read()把数据从硬盘读取到内核缓冲区&#xff0c;再复制到用户缓冲区&#xff1b;然后再通过write()写入到socket缓冲区&#xff0c;最后写入网卡设备。整个过程发生了4次用户态和内核态的上…

[Kubernetes] 安装KubeSphere

选择4核8G&#xff08;master&#xff09;、8核16G&#xff08;node1&#xff09;、8核16G&#xff08;node2&#xff09; 三台机器&#xff0c;按量付费进行实验&#xff0c;CentOS7.9安装Docker安装Kubernetes安装KubeSphere前置环境: nfs和监控安装KubeSphere masternode1no…

RK3568 学习笔记 : 精简 u-boot env 默认复杂的多种引导启动设置

前言 环境&#xff1a; 正点原子 Atompi-CA1 RK3568 开发板、正点原子 DLRK3568 开发板&#xff0c;&#xff08;一时脑热买了两块 RK3568 开发板&#xff09;&#xff0c;Atompi-CA1 RK3568 开发板比较小巧&#xff0c;利于一些前期的嵌入式 Linux 开发学习与实践。 RK3568 开…

小红的循环移位

题目描述&#xff1a;小红拿到了一个数字串&#xff0c;她每次操作可以使得其向左循环移动一位。将串 ss0 s1...sn−1s ​ 向左循环移动一位&#xff0c;将得到串s1...sn−1s0。小红想知道&#xff0c;使得该数字串变成4的倍数&#xff0c;需要最少操作多少次&#xff1f;&…

推荐网站(1)懒人Excel,函数公式、操作技巧等,一看就看会

相信很多小伙伴打开excel表的时候&#xff0c;不知道要怎么操作&#xff0c;也不知道该如何搜索自己想要的结果&#xff0c;那么我推荐个网站懒人Excel&#xff0c;它可以帮我们快速了解使用 EXCEL的基本操作&#xff0c;也可以帮我们解决使用 EXCEL的遇到的问题。 可以看到他…

PCIe总线-事物层之TLP格式介绍(五)

1.概述 PCIe总线事务层位于应用层和数据链路层之间。发送时将应用层的数据请求转换成PCIe总线事务&#xff0c;然后发送到数据链路层。接收时&#xff0c;从来自数据链路层报文中提取PCIe总线事务&#xff0c;并将数据提交到应用层。事务层使用TLP表示PCIe总线事务&#xff0c…

RK3568笔记二十四:基于Flask的网页监控系统

若该文为原创文章&#xff0c;转载请注明原文出处。 此实验参考 《鲁班猫监控检测》&#xff0c;原代码有点BUG&#xff0c;已经下载不了。2. 鲁班猫监控检测 — [野火]嵌入式AI应用开发实战指南—基于LubanCat-RK系列板卡 文档 (embedfire.com) 一、简介 记录简单的摄像头监…

C++程序设计:C++的内存分布与管理

C的内存分布与管理 栈区堆区全局区代码区常量区 栈区 &#xff08;1&#xff09;什么是栈区&#xff1f; 栈区&#xff08;Stack&#xff09; 是用于存储函数调用&#xff0c;局部变量和函数参数的一种内存区域&#xff0c;它的特性就是先进后出&#xff08;FILO&#xff09;。…