CN117573214A - 一种串口设备和Android系统框架融合的方法及装置 - Google Patents
一种串口设备和Android系统框架融合的方法及装置 Download PDFInfo
- Publication number
- CN117573214A CN117573214A CN202410068857.0A CN202410068857A CN117573214A CN 117573214 A CN117573214 A CN 117573214A CN 202410068857 A CN202410068857 A CN 202410068857A CN 117573214 A CN117573214 A CN 117573214A
- Authority
- CN
- China
- Prior art keywords
- data
- serial
- android system
- serial port
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004891 communication Methods 0.000 claims abstract description 66
- 238000012544 monitoring process Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000007781 pre-processing Methods 0.000 claims abstract description 13
- 230000009471 action Effects 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 19
- 239000013598 vector Substances 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 16
- 238000012360 testing method Methods 0.000 claims description 16
- 238000012937 correction Methods 0.000 claims description 14
- 238000011156 evaluation Methods 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 11
- 230000002457 bidirectional effect Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000004927 fusion Effects 0.000 claims description 9
- 238000013468 resource allocation Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 35
- 230000001960 triggered effect Effects 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011158 quantitative evaluation Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2123/00—Data types
- G06F2123/02—Data types in the time domain, e.g. time-series data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及数据处理技术领域,公开了一种串口设备和Android系统框架融合的方法及装置。所述方法包括:在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备并进行初始化,得到第二串口设备;进行串口通信参数配置,得到目标串口设备;创建目标串口设备的新线程并自定义串口通信协议,获取串口模块的原始数据进行预处理,得到目标数据;通过fake_driver生成目标节点并进行写入操作,当目标数据写入Android系统时,调用kobject_uevent发出的事件通知;当事件通知被发出,触发monitor线程并进行数据更新与处理,生成线程监控结果,本申请能够实现将串口设备融入Android系统框架。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种串口设备和Android系统框架融合的方法及装置。
背景技术
Android是一款非常流行的移动操作系统,如今每天激活的Android设备多达成上万部,而一个Android设备内部集成了非常多个多种的功能模块,如I2C、SPI、One-Wire、MMIO等模块,配置或驱动这些模块均可通过regmap或直接使用类似module_i2c_driver进行设备注册然后进行配置,但是没有提供串口类设备的进行注册和配置,目前Android系统或Android设备需要支持这种串口类设备需要独自开发APK进行单独功能展示,而像电量计这些Android均有自己的框架(batteryService-health)去支持展示,所以大部份厂商为了直接使用Android框架API,在为Android设备选择这类模块物料时就不会选择串口接口的模块。
以串口电量计来说,如果能融入Android系统框架,将会对这类串口电量计极大拓宽了市场,特别是手机这块,一般手机厂商是不会采用单独写个APK去显示电量的这种模块,这样本发明的提出对于手机厂商来说又多了一个选择。或者又多一个降低成本的选择。现有技术通过开发单独的APK,在APK中实现open该串口设备→配置该串口(波特率、奇偶较验等)→read/write进行串口自定义数据通信协议,获取相关采集数据进行显示或网络发送。现有技术无法使用Android现有的框架服务,如串口电量计就不能在状态栏或系统设置里进行电量的展示。
发明内容
本申请提供了一种串口设备和Android系统框架融合的方法及装置,用于能够实现将串口设备融入Android系统框架。
第一方面,本申请提供了一种串口设备和Android系统框架融合的方法,所述串口设备和Android系统框架融合的方法包括:
在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备,并对所述第一串口设备进行初始化,得到第二串口设备;
通过所述Android系统对所述第二串口设备进行串口通信参数配置,得到目标串口设备;
通过所述AIDL服务或者所述HIDL服务创建所述目标串口设备对应的新线程,并通过所述新线程自定义串口通信协议,以及通过所述新线程获取串口模块的原始数据;
对所述原始数据进行预处理,得到目标数据;
通过fake_driver生成目标节点,并通过所述目标节点中的write函数对所述目标数据进行写入操作,当所述目标数据写入所述Android系统时,调用kobject_uevent发出对应的事件通知;
当所述事件通知被发出,触发所述AIDL服务或者所述HIDL服务中的monitor线程,并通过所述monitor线程进行数据更新与处理,生成线程监控结果。
第二方面,本申请提供了一种串口设备和Android系统框架融合的装置,所述串口设备和Android系统框架融合的装置包括:
识别模块,用于在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备,并对所述第一串口设备进行初始化,得到第二串口设备;
配置模块,用于通过所述Android系统对所述第二串口设备进行串口通信参数配置,得到目标串口设备;
创建模块,用于通过所述AIDL服务或者所述HIDL服务创建所述目标串口设备对应的新线程,并通过所述新线程自定义串口通信协议,以及通过所述新线程获取串口模块的原始数据;
预处理模块,用于对所述原始数据进行预处理,得到目标数据;
写入模块,用于通过fake_driver生成目标节点,并通过所述目标节点中的write函数对所述目标数据进行写入操作,当所述目标数据写入所述Android系统时,调用kobject_uevent发出对应的事件通知;
处理模块,用于当所述事件通知被发出,触发所述AIDL服务或者所述HIDL服务中的monitor线程,并通过所述monitor线程进行数据更新与处理,生成线程监控结果。
本申请提供的技术方案中,通过创建新线程和自定义串口通信协议,允许用户根据具体需求设计和实施高度定制化的通信协议,以适应各种串口设备和数据传输要求。通过在Android系统中对串口设备进行动态加载和初始化,能够有效管理和利用系统资源,确保只有在需要时才初始化串口设备,以节省资源。通过深度学习技术,能够自动化性能监控和分析,以检测系统性能问题并生成动作执行策略。这有助于提高系统的稳定性和性能。通过数据预处理和缓存,能够确保从串口设备获取的数据得到有效处理,并提供目标数据,以满足应用程序的实时数据需求。允许用户根据需要添加新的串口设备和定制通信协议,从而具有良好的可扩展性,适应不断变化的硬件设备和通信需求。通过奖励反馈和策略更新机制,能够在运行时优化动作执行策略,以确保系统性能最佳化。通过错误校验和写入性能分析,有助于及时发现和处理通信错误,增强系统的鲁棒性和可靠性。通过事件通知机制,能够及时通知系统中的其他模块或线程发生了重要事件,从而实现实时响应和协同操作。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以基于这些附图获得其他的附图。
图1为本申请实施例中串口设备和Android系统框架融合的方法的一个实施例示意图;
图2为本申请实施例中串口设备和Android系统框架融合的装置的一个实施例示意图。
具体实施方式
本申请实施例提供了一种串口设备和Android系统框架融合的方法及装置。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本申请实施例的具体流程进行描述,请参阅图1,本申请实施例中串口设备和Android系统框架融合的方法的一个实施例包括:
步骤S101、在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备,并对第一串口设备进行初始化,得到第二串口设备;
可以理解的是,本申请的执行主体可以为串口设备和Android系统框架融合的装置,还可以是终端或者服务器,具体此处不做限定。本申请实施例以服务器为执行主体为例进行说明。
具体的,在AIDL服务或者HIDL服务启动时,首先对连接到Android系统的串口设备进行识别,通过扫描系统接口和检测硬件信号,识别并得到第一串口设备。对第一串口设备进行设备信息扫描,包括读取设备的识别码、制造商数据、硬件版本信息以及其他的元数据,这些信息决定了如何以及何时与该设备进行交互。根据收集到的串口设备类型和设备元数据,计算设备的响应时间和初始化成功率,这两个参数是评估设备性能和可靠性的关键指标。设备响应时间反映了设备对指令的反应速度,而初始化成功率则直接关联到设备的稳定性和兼容性。根据设备响应时间和初始化成功率来决定加载哪个版本的驱动程序,驱动程序是确保硬件设备能够正常工作并与操作系统顺利沟通的软件组件。选择合适的驱动程序后,通过Android系统对第一串口设备进行资源分配和设备初始化,配置设备所需的内存空间、设置合适的通信参数以及确保设备能够接收和发送数据,得到第二串口设备。
步骤S102、通过Android系统对第二串口设备进行串口通信参数配置,得到目标串口设备;
具体的,通过Android的串口通信管理组件对第二串口设备进行波特率设置,波特率是决定数据传输速率的重要参数,不同的设备和应用场景需要不同的波特率设置,正确的波特率能确保数据传输既快速又准确。完成波特率的配置后,通过Android系统对第二串口设备进行数据位的配置,数据位决定了每次传输的数据大小,正确的数据位设置能够提高数据传输的效率并减少错误。对第二串口设备进行进行停止位的选择,停止位是串口通信中用于标记每个数据包结束的信号,适当的停止位数量可以确保接收设备正确地辨识数据包的结束,从而避免数据混淆。对第二串口设备进行奇偶校验配置,奇偶校验是一种错误检测机制,它通过添加额外的校验位来帮助检测数据在传输过程中是否发生了错误,这有助于提高数据传输的可靠性。Android系统根据波特率、数据位、停止位数量以及奇偶校验参数生成对应的目标串口设备。这个配置文件包含了所有必要的信息,使得第二串口设备能够以设定的参数运行,确保了数据传输的稳定性和效率。步骤S103、通过AIDL服务或者HIDL服务创建目标串口设备对应的新线程,并通过新线程自定义串口通信协议,以及通过新线程获取串口模块的原始数据;
具体的,通过AIDL服务或HIDL服务创建一个新的线程,这个线程专门负责与目标串口设备的通信,确保数据传输的独立性和稳定性,这个线程将专注于处理与串口设备相关的所有任务,从而避免干扰系统的其他部分。通过新线程设计数据包的格式和大小,数据包的格式和大小直接影响数据传输的效率和可靠性。合理的设计可以减少每次传输的开销,提高通信速率,同时也能减少因格式不匹配引起的错误。同时,确定数据包的发送顺序和时间间隔,这关系到数据的接收顺序和完整性,确保接收方能够准确无误地重组信息。这些参数的设定需要基于目标设备的性能和网络状况,以及数据的紧急程度和重要性来综合考虑。通过新线程进行协议测试和协议优化,对数据传输过程进行模拟和分析,通过实际测试来发现的问题和瓶颈,然后根据测试结果对协议进行调整和优化,确保自定义的串口通信协议能够在实际应用中达到最佳性能。协议测试和优化是一个迭代过程,需要多次测试和调整才能达到满意的结果。通过这个协议获取串口模块的原始数据。新线程负责处理所有与数据收发相关的任务,包括错误检测和校正,数据缓存管理,以及在必要时进行数据的重组和解码。
步骤S104、对原始数据进行预处理,得到目标数据;
具体的,通过预置的滤波算法对收集到的原始数据进行噪声过滤,得到第一数据。在实际的通信环境中,数据往往会受到各种噪声的干扰,如电磁干扰、设备噪声或信号衰减等。这些噪声将严重影响数据的质量和后续处理的准确性。预置的滤波算法包括低通滤波、带通滤波或其他先进的数字滤波技术,目的是尽地从原始数据中去除噪声,而保留有用的信号。对第一数据进行数据校正,得到第二数据。纠正由于设备误差、传输延迟或环境变化等因素引起的数据偏差。数据校正包括时间同步、幅度调整和偏移校正等,通过精确的校正,可以确保数据的准确性和一致性,从而提高整个系统的可靠性和稳定性。对第二数据进行格式转换,得到第三数据。不同的设备或系统需要不同格式的数据,格式转换确保了数据能够被接收方正确解读和处理。通过适当的格式转换,数据能够在不同的系统或设备之间顺利传输和使用。对第三数据进行数据缓存,提高数据处理的效率和响应速度,得到目标数据。在高速或实时的通信系统中,数据缓存可以显著提高系统的性能,确保数据能够在需要时迅速被处理和访问。数据缓存涉及将数据暂存到快速的存储介质中,如RAM或高速缓存等,通过有效的数据缓存策略,系统可以在保证数据处理速度的同时,也保证了数据的完整性和一致性。
步骤S105、通过fake_driver生成目标节点,并通过目标节点中的write函数对目标数据进行写入操作,当目标数据写入Android系统时,调用kobject_uevent发出对应的事件通知;
具体的,通过fake_driver生成目标节点,这个虚拟驱动充当了硬件设备和操作系统之间的桥梁,它模拟了真实硬件的行为,为数据传输提供了一个稳定和可控的环境。通过目标节点,使用write函数将目标数据写入到Android系统中,这个过程类似于在真实的硬件环境中进行数据写入,但具有更高的灵活性和可控性。当目标数据开始写入Android系统时,进行状态同步,确保Android系统的当前状态与目标串口设备的状态保持一致。状态同步不仅包括检查系统的就绪状态,还包括协调数据写入的速率和时序,确保数据能够顺利且正确地传输。随着数据的持续写入,对写入操作进行错误校验和性能分析。错误校验确保了数据的准确性和完整性,任何检测到的错误都将被记录和纠正。而性能分析则关注于写入操作的速度和效率,系统将监测和记录写入过程中的各项指标,如延迟时间、吞吐量和资源利用率等。这些指标有助于评估和优化系统的性能。基于写入性能分析的结果,对写入参数进行动态调整。这包括调整数据包的大小、写入缓冲区的大小和写入操作的优先级等,目的是在保证数据准确性的同时,最大化写入操作的速度和效率。动态参数调整是一个复杂的过程,它需要考虑到当前系统的状态、硬件的能力以及数据的特性等多种因素。当数据成功写入并且参数调整完成后,调用kobject_uevent发出对应的事件通知。这个事件通知不仅标志着写入操作的完成,还携带了关于写入操作的详细信息,如是否成功、持续时间和性能指标等。
步骤S106、当事件通知被发出,触发AIDL服务或者HIDL服务中的monitor线程,并通过monitor线程进行数据更新与处理,生成线程监控结果。
具体的,当事件通知被发出,触发AIDL服务或HIDL服务中预先定义的monitor线程。这个monitor线程专门负责监听来自系统或硬件的事件通知,并作为响应机制的一部分,确保系统能够及时且有效地对事件进行处理。随着monitor线程的触发,对事件通知进行监听,分析事件的类型、来源以及相关的数据和状态信息。监听过程不仅需要判断事件的紧急性和重要性,还需要根据事件的具体内容来决定后续的处理步骤。通过monitor线程对Android系统进行数据更新。包括从硬件设备读取最新的数据、将新数据写入系统的数据库或缓存、以及更新系统的状态和配置等。通过这些更新,系统能够保持与外部设备和环境的同步,确保所有操作都基于最新和最准确的信息。根据数据更新的状态,对Android系统进行动作执行和性能监控,生成线程监控结果。动作执行包括触发其他服务或线程、发送命令到硬件设备、或调整系统的配置和参数等。同时,性能监控则关注于系统在处理事件时的表现,包括处理速度、资源消耗、错误率和成功率等指标。通过监控这些性能指标,系统能够评估自身的响应能力和稳定性,并在必要时进行自我调整和优化。
其中,对数据更新状态进行状态映射和标准化,将从各种源收集到的原始状态数据转换成一种更易于分析和处理的格式,同时确保数据的一致性和可比性。得到的标准状态评价指标集是对系统当前状态的量化描述。将标准状态评价指标集输入预置的双向LSTM网络进行处理。双向LSTM网络是一种特殊的循环神经网络,它能够同时考虑输入数据的前向和后向时序信息,从而提高对序列数据特征提取的能力。在这个网络中,前向LSTM网络对标准状态评价指标集进行前向时序隐藏特征提取,得到了反映数据历史和当前趋势的前向时序隐藏特征向量,而后向LSTM网络则从相反的时间顺序对同一数据进行处理,提取出反映未来趋势的后向时序隐藏特征向量。将这两种特征向量进行特征融合后,得到了一个综合反映了数据全时序特性的融合时序隐藏特征向量。基于融合时序隐藏特征向量,生成Android系统对应的动作执行策略。这个策略决定了系统应该如何响应当前的状态,包括进行哪些数据更新操作、调整哪些参数以及执行哪些性能优化措施等。在动作执行策略的指导下,系统对Android系统进行了相应的数据更新。数据更新完成后,采集Android系统的性能监控参数数据,这些数据反映了系统在执行策略后的性能和状态。通过分析这些性能监控参数数据,计算出对应的奖励反馈参数,这些参数是根据系统的性能表现来调整和优化动作执行策略的关键。奖励反馈机制是许多先进的机器学习和自适应控制系统中的一个重要组成部分,它能够使系统根据实际表现自我调整,不断学习和进步。基于得到的奖励反馈参数,对动作执行策略进行了策略更新,生成对应的目标执行策略。这个更新后的策略更加贴合当前的系统状态和性能需求,能够指导系统进行更有效的动作执行和性能监控。
本申请实施例中,通过创建新线程和自定义串口通信协议,允许用户根据具体需求设计和实施高度定制化的通信协议,以适应各种串口设备和数据传输要求。通过在Android系统中对串口设备进行动态加载和初始化,能够有效管理和利用系统资源,确保只有在需要时才初始化串口设备,以节省资源。通过深度学习技术,能够自动化性能监控和分析,以检测系统性能问题并生成动作执行策略。这有助于提高系统的稳定性和性能。通过数据预处理和缓存,能够确保从串口设备获取的数据得到有效处理,并提供目标数据,以满足应用程序的实时数据需求。允许用户根据需要添加新的串口设备和定制通信协议,从而具有良好的可扩展性,适应不断变化的硬件设备和通信需求。通过奖励反馈和策略更新机制,能够在运行时优化动作执行策略,以确保系统性能最佳化。通过错误校验和写入性能分析,有助于及时发现和处理通信错误,增强系统的鲁棒性和可靠性。通过事件通知机制,能够及时通知系统中的其他模块或线程发生了重要事件,从而实现实时响应和协同操作。
在一具体实施例中,执行步骤S101的过程可以具体包括如下步骤:
(1)在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备;
(2)对第一串口设备进行设备信息扫描,得到第一串口设备的串口设备类型以及设备元数据;
(3)根据串口设备类型以及设备元数据,计算第一串口设备的设备响应时间和初始化成功率;
(4)根据设备响应时间和初始化成功率,加载第一串口设备对应的驱动程序,并通过Android系统对第一串口设备进行资源分配和设备初始化,得到第二串口设备。
具体的,在AIDL或HIDL服务启动时,检测和识别连接到Android系统的串口设备。例如,扫描系统的硬件接口、检测设备的信号以及读取设备标识信息。然后,对第一串口设备进行设备信息扫描。这包括读取串口设备的型号、制造商、硬件版本、支持的通信协议和其他的技术规格等元数据。根据串口设备的类型和元数据计算设备的响应时间和初始化成功率。设备响应时间是指设备从接收到命令到做出响应所需的时间,它直接影响到通信的效率和实时性。而初始化成功率则反映了设备在与系统连接并进行初始化时的可靠性和稳定性。例如,发送测试命令并监测设备的响应、记录设备初始化的成功次数和失败次数等。通过这些测试和分析,得到一个量化的评估结果,反映设备的性能和可靠性。根据设备响应时间和初始化成功率,加载第一串口设备对应的驱动程序。驱动程序是操作系统用来与硬件设备进行通信的软件,它负责转换系统的指令和设备的响应,确保两者能够正确且有效地交互。选择合适的驱动程序是确保设备正常工作的关键,因为不同的设备需要不同的驱动程序来支持它们的特定功能和通信协议。加载驱动程序通常涉及到从系统的驱动库中选择合适的驱动文件、加载到内存中以及进行必要的配置设置等步骤。通过Android系统对第一串口设备进行资源分配和设备初始化,得到第二串口设备。资源分配是指为设备分配必要的系统资源,如内存空间、I/O端口和中断等。而设备初始化则涉及到设置设备的工作模式、通信参数以及其他必要的状态和配置。这两个步骤共同确保了设备能够在系统的控制下正确且高效地工作。通过精确的资源分配和设备初始化,能够最大化设备的性能,同时保持系统的稳定性和可靠性。
在一具体实施例中,执行步骤S102的过程可以具体包括如下步骤:
(1)通过Android系统对第二串口设备进行波特率设置,得到对应的波特率;
(2)通过Android系统对第二串口设备进行数据位配置,得到对应的数据位;
(3)通过Android系统对第二串口设备进行停止位选择,得到对应的停止位数量;
(4)通过Android系统对第二串口设备进行奇偶校验配置,得到对应的奇偶校验参数;
(5)根据波特率、数据位、停止位数量以及奇偶校验参数生成对应的目标串口设备。
具体的,对第二串口设备进行波特率设置。波特率是串口通信中最关键的参数之一,它定义了传输数据的速率,即每秒传输的比特数。波特率的设置需要考虑到数据传输的速度需求和串口设备的能力,一个过高或过低的波特率都导致数据传输不稳定或效率低下。Android系统通过与串口设备的驱动程序交互,将用户或应用程序指定的波特率值设置到硬件中,确保数据能够以预定的速率传输。对第二串口设备进行数据位配置。数据位决定了串口通信中每个数据包的大小,常见的设置有7位或8位。数据位的选择取决于数据的复杂性及兼容性要求,正确的数据位设置能够保证数据包的完整性和准确性。Android系统通过修改串口设备的配置寄存器来设置数据位,这个过程通常涉及到低层的硬件控制和精确的位操作。进行停止位选择。停止位用于标记每个数据包的结束,常见的设置有1位或2位停止位。停止位的数量影响到数据包的辨识和帧同步,一个正确的停止位设置能够帮助接收方准确地识别数据包的边界,从而减少数据的解析错误。Android系统通过发送特定的控制命令到串口设备,来配置停止位的数量。对第二串口设备进行奇偶校验配置。奇偶校验是串口通信中用于错误检测的一种机制,它通过在数据包中添加一个额外的校验位来检测数据在传输过程中是否发生了改变。根据具体的需求,可以选择奇校验、偶校验或不进行校验。奇偶校验的配置同样需要系统进行低层的硬件设置,确保每个传输的数据包都能进行正确的错误检测。在完成了波特率、数据位、停止位和奇偶校验的配置后,根据这些参数生成对应的目标串口设备。这个目标串口设备是第二串口设备经过配置和优化后的版本,它完全根据通信需求和硬件能力进行了定制。生成目标串口设备的过程不仅涉及到参数的设置,还包括对设备进行测试和验证,确保所有的配置都能在实际的通信中正确工作。
在一具体实施例中,执行步骤S103的过程可以具体包括如下步骤:
(1)通过AIDL服务或者HIDL服务创建目标串口设备对应的新线程;
(2)通过新线程设计数据包的格式和大小,并确定数据包的发送顺序和时间间隔;
(3)通过新线程进行协议测试和协议优化,得到对应的自定义串口通信协议,并根据自定义串口通信协议,通过新线程获取串口模块的原始数据。
具体的,通过AIDL(Android Interface Definition Language)服务或HIDL(HALInterface Definition Language)服务创建一个新线程。这个新线程专门负责与目标串口设备的通信,包括数据的发送和接收。AIDL和HIDL是Android系统中用于允许不同进程之间进行通信的接口定义语言,它们可以帮助开发者创建可以跨进程通信的服务。通过这些服务创建的新线程将在其操作环境中运行,与主进程相独立,这样可以确保数据通信的过程不会被其他进程的操作所干扰,提高了通信的效率和可靠性。通过新线程设计数据包的格式和大小。数据包的格式和大小有助于通信的效率和稳定性,合适的设计可以减少每次传输的开销,提高通信速率,同时也能减少因格式不匹配引起的错误。新线程需要根据目标串口设备的特性和通信需求来决定最合适的数据包格式,这包括数据的编码方式、数据字段的排列和大小以及必要的校验信息等。同时,确定数据包的发送顺序和时间间隔,这关系到数据的接收顺序和完整性,确保接收方能够准确无误地重组信息。这些参数的设定需要基于目标设备的性能和网络状况,以及数据的紧急程度和重要性来综合考虑。通过新线程进行协议测试和协议优化。对数据传输过程进行模拟和分析,通过实际测试来发现的问题和瓶颈,然后根据测试结果对协议进行调整和优化,确保自定义的串口通信协议能够在实际应用中达到最佳性能。协议测试和优化是一个迭代过程,需要多次测试和调整才能达到满意的结果。测试涉及到模拟各种正常和异常的通信情况,观察数据的传输速度、错误率和稳定性等,而优化则包括调整数据包大小、改变重试策略或修改错误校正方法等。通过自定义串口通信协议获取串口模块的原始数据。新线程负责处理所有与数据收发相关的任务,包括错误检测和校正,数据缓存管理,以及在必要时进行数据的重组和解码。
在一具体实施例中,执行步骤S104的过程可以具体包括如下步骤:
(1)通过预置的滤波算法对原始数据进行噪声过滤,得到第一数据;
(2)对第一数据进行数据校正,得到第二数据;
(3)对第二数据进行格式转换,得到第三数据;
(4)对第三数据进行数据缓存,得到目标数据。
具体的,通过预置的滤波算法对原始数据进行噪声过滤。在实际的通信环境中,数据往往会受到各种噪声的影响,如电磁干扰、设备噪音或信号衰减等。这些噪声如果不被去除,将严重影响数据的质量和后续处理的准确性。预置的滤波算法包括低通滤波、带通滤波或其他先进的数字滤波技术,目的是尽地从原始数据中去除噪声,而保留有用的信号。得到的第一数据将更接近设备实际发送的信号。对第一数据进行数据校正。数据校正是为了纠正由于设备误差、传输延迟或环境变化等因素引起的数据偏差。这个过程包括时间同步、幅度调整和偏移校正等步骤。时间同步确保数据具有正确的时间标签,幅度调整和偏移校正则确保数据的大小和位置与实际值相符。通过精确的数据校正,可以确保第二数据的准确性和一致性,从而提高整个系统的可靠性和稳定性。对第二数据进行格式转换。不同的设备或系统需要不同格式的数据,格式转换确保了数据能够被接收方正确解读和处理。这包括将数据从一种编码格式转换为另一种,或者将数据从模拟形式转换为数字形式等。通过适当的格式转换,数据能够在不同的系统或设备之间顺利传输和使用。格式转换后得到的第三数据将是更加标准化和规范化的,便于后续的处理和分析。对第三数据进行数据缓存。在高速或实时的通信系统中,数据缓存可以显著提高系统的性能,确保数据能够在需要时迅速被处理和访问。数据缓存涉及将数据暂存到快速的存储介质中,如RAM或高速缓存等。通过有效的数据缓存策略,可以在保证数据处理速度的同时,也保证了数据的完整性和一致性。缓存后得到的目标数据将是经过一系列精细处理的结果,它将具有更高的质量和更适合于后续处理和分析的特性。
在一具体实施例中,执行步骤S105的过程可以具体包括如下步骤:
(1)通过fake_driver生成目标节点,并通过目标节点中的write函数对目标数据进行写入操作;
(2)当目标数据写入Android系统时,对Android系统和目标串口设备进行状态同步;
(3)对Android系统进行写入错误校验和写入性能分析,得到写入性能分析结果;
(4)根据写入性能分析结果对Android系统进行写入参数动态调整,并调用kobject_uevent发出对应的事件通知。
具体的,通过fake_driver生成目标节点。Fake_driver是一种模拟设备驱动程序,它被用来模拟一个硬件设备的行为,使得系统能够在没有实际硬件的情况下进行开发和测试。当使用fake_driver生成目标节点时,它实际上创建了一个虚拟设备,这个虚拟设备表现得就像一个真实的串口设备。通过目标节点中的write函数对目标数据进行写入操作。将数据从用户空间传输到内核空间,并通过虚拟设备的接口将数据发送出去。在写入操作进行时,确保数据的正确性和完整性,同时也需要监控写入操作的状态和性能。当目标数据被写入Android系统时,进行状态同步,确保Android系统的当前状态与目标串口设备的状态保持一致。任何状态的不一致都导致数据丢失或错误。状态同步不仅包括检查系统的就绪状态,还包括协调数据写入的速率和时序,确保数据能够顺利且正确地传输。随着数据的持续写入,对写入操作进行错误校验和性能分析。错误校验确保了数据的准确性和完整性,任何检测到的错误都将被记录和纠正。而性能分析则关注于写入操作的速度和效率,例如监测和记录写入过程中的各项指标,如延迟时间、吞吐量和资源利用率等。这些指标有助于评估和优化系统的性能。基于写入性能分析的结果,对写入参数进行动态调整。这包括调整数据包的大小、写入缓冲区的大小和写入操作的优先级等,目的是在保证数据准确性的同时,最大化写入操作的速度和效率。动态参数调整是一个复杂的过程,它需要考虑到当前系统的状态、硬件的能力以及数据的特性等多种因素。当数据成功写入并且参数调整完成后,调用kobject_uevent发出对应的事件通知。这个事件通知不仅标志着写入操作的完成,还携带了关于写入操作的详细信息,如是否成功、持续时间和性能指标等。
在一具体实施例中,执行步骤S106的过程可以具体包括如下步骤:
(1)当事件通知被发出,触发AIDL服务或者HIDL服务中的monitor线程;
(2)通过monitor线程对事件通知进行监听,并对Android系统进行数据更新,得到数据更新状态;
(3)根据数据更新状态,对Android系统进行动作执行和性能监控,生成线程监控结果。
具体的,当事件通知被发出,触发在AIDL服务或HIDL服务中预定义的monitor线程。AIDL和HIDL服务是Android系统中的一种机制,用于定义和处理不同组件或进程间的通信接口,而monitor线程是这些服务中专门用于监控和处理特定事件的线程。通过monitor线程对Android系统进行数据更新,得到一个新的数据更新状态,这个状态反映了所有变更后的系统状态和数据。根据事件通知所携带的信息进行自我调整,这包括修改内部状态、更新存储的数据或调整正在运行的操作。根据数据更新状态,对Android系统进行动作执行。这些操作是内部的,例如调整参数、启动或停止某个过程,或者是外部的,比如发送通知或调用其他系统的服务。同时,对Android系统进行性能监控。例如,跟踪和记录各种性能指标,如处理时间、资源使用率和成功率等。通过分析性能监控的结果,识别瓶颈和问题区域,并据此调整自己的行为和配置。例如,如果监控结果表明某个操作的响应时间过长,系统会调整其执行的优先级或资源分配来解决这个问题,最终生成线程监控结果。
在一具体实施例中,执行步骤根据数据更新状态,对Android系统进行动作执行和性能监控,生成线程监控结果的过程可以具体包括如下步骤:
(1)对数据更新状态进行状态映射和状态标准化,得到标准状态评价指标集;
(2)将标准状态评价指标集输入预置的双向LSTM网络,通过双向LSTM网络中的前向LSTM网络对标准状态评价指标集进行前向时序隐藏特征提取,得到前向时序隐藏特征向量,并通过双向LSTM网络中的后向LSTM网络对标准状态评价指标集进行后向时序隐藏特征提取,得到后向时序隐藏特征向量,以及对前向时序隐藏特征向量和后向时序隐藏特征向量进行特征融合,得到融合时序隐藏特征向量;
(3)基于融合时序隐藏特征向量,生成Android系统对应的动作执行策略,并基于动作执行策略对Android系统进行数据更新;
(4)在Android系统完成数据更新后,采集Android系统的性能监控参数数据,并基于性能监控参数数据对Android系统进行奖励反馈数据计算,得到对应的奖励反馈参数;
(5)基于奖励反馈参数对动作执行策略进行策略更新,生成对应的目标执行策略,并通过目标执行策略进行动作执行和性能监控,生成线程监控结果。
具体的,对数据更新状态进行状态映射和状态标准化。将原始的、非结构化的数据状态转换成一种更标准化和易于处理的形式,将各种状态和指标转换成数值或类别,以便于计算和比较。状态标准化则进一步处理这些数值,使其落在一个标准的范围内,通常是0到1或-1到1,这有助于后续的算法处理。将标准状态评价指标集输入预置的双向LSTM(LongShort-Term Memory)网络中。双向LSTM是一种特殊的循环神经网络,它能够学习数据在时间序列上的前后依赖关系。在这个网络中,前向LSTM网络负责学习从过去到现在的数据依赖关系,而后向LSTM网络则学习从未来到现在的依赖关系。通过这种方式,双向LSTM能够全面地捕捉时间序列数据的特征。本实施例中,前向LSTM网络会对标准状态评价指标集进行处理,提取出反映过去和现在状态的时序隐藏特征,而后向LSTM网络则处理相同的数据,但方向相反,提取出反映现在和未来状态的时序隐藏特征。这两种特征被进一步融合,形成一个综合的时序隐藏特征向量,这个向量深刻地表达了数据随时间变化的复杂特征。基于这个融合的时序隐藏特征向量,生成对应的Android系统动作执行策略。这个策略决定了系统应该如何响应当前和预测的未来状态,它包括调整系统设置、启动或停止特定操作、或触发其他系统的服务等。生成这个策略的过程涉及到复杂的决策算法,包括基于规则的逻辑、优化算法或其他机器学习模型。根据动作执行策略对自身进行数据更新,确保系统的状态和行为与策略一致。在Android系统完成数据更新后,采集一系列性能监控参数。这些参数反映了系统在执行动作执行策略后的表现,包括响应时间、资源消耗、错误率和完成度等。这些数据被用于计算奖励反馈数据,这是一个评估系统表现的过程,根据系统的实际表现来调整和优化之前的动作执行策略。奖励反馈通常基于一些性能指标,系统表现越好,获得的奖励越多。这使系统具有自我学习和适应的能力,能够根据实际表现不断优化自己的行为和策略。基于奖励反馈数据,对动作执行策略进行策略更新。包括修改、调整或完全重写之前的策略,以更好地适应和响应当前的系统状态和环境条件。策略更新是一个持续的过程,它使系统能够在不断变化的环境中保持最佳表现。更新后的策略将再次用于指导系统的动作执行和性能监控,生成线程监控结果。通过这个过程,不仅能够对初始的事件做出响应,还能够根据实际表现和环境变化不断自我调整和优化,提高其整体性能和适应性。
上面对本申请实施例中串口设备和Android系统框架融合的方法进行了描述,下面对本申请实施例中串口设备和Android系统框架融合的装置进行描述,请参阅图2,本申请实施例中串口设备和Android系统框架融合的装置一个实施例包括:
识别模块201,用于在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备,并对所述第一串口设备进行初始化,得到第二串口设备;
配置模块202,用于通过所述Android系统对所述第二串口设备进行串口通信参数配置,得到目标串口设备;
创建模块203,用于通过所述AIDL服务或者所述HIDL服务创建所述目标串口设备对应的新线程,并通过所述新线程自定义串口通信协议,以及通过所述新线程获取串口模块的原始数据;
预处理模块204,用于对所述原始数据进行预处理,得到目标数据;
写入模块205,用于通过fake_driver生成目标节点,并通过所述目标节点中的write函数对所述目标数据进行写入操作,当所述目标数据写入所述Android系统时,调用kobject_uevent发出对应的事件通知;
处理模块206,用于当所述事件通知被发出,触发所述AIDL服务或者所述HIDL服务中的monitor线程,并通过所述monitor线程进行数据更新与处理,生成线程监控结果。
通过上述各个组成部分的协同合作,通过创建新线程和自定义串口通信协议,允许用户根据具体需求设计和实施高度定制化的通信协议,以适应各种串口设备和数据传输要求。通过在Android系统中对串口设备进行动态加载和初始化,能够有效管理和利用系统资源,确保只有在需要时才初始化串口设备,以节省资源。通过深度学习技术,能够自动化性能监控和分析,以检测系统性能问题并生成动作执行策略。这有助于提高系统的稳定性和性能。通过数据预处理和缓存,能够确保从串口设备获取的数据得到有效处理,并提供目标数据,以满足应用程序的实时数据需求。允许用户根据需要添加新的串口设备和定制通信协议,从而具有良好的可扩展性,适应不断变化的硬件设备和通信需求。通过奖励反馈和策略更新机制,能够在运行时优化动作执行策略,以确保系统性能最佳化。通过错误校验和写入性能分析,有助于及时发现和处理通信错误,增强系统的鲁棒性和可靠性。通过事件通知机制,能够及时通知系统中的其他模块或线程发生了重要事件,从而实现实时响应和协同操作。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random acceS memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种串口设备和Android系统框架融合的方法,其特征在于,所述串口设备和Android系统框架融合的方法包括:
在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备,并对所述第一串口设备进行初始化,得到第二串口设备;
通过所述Android系统对所述第二串口设备进行串口通信参数配置,得到目标串口设备;
通过所述AIDL服务或者所述HIDL服务创建所述目标串口设备对应的新线程,并通过所述新线程自定义串口通信协议,以及通过所述新线程获取串口模块的原始数据;
对所述原始数据进行预处理,得到目标数据;
通过fake_driver生成目标节点,并通过所述目标节点中的write函数对所述目标数据进行写入操作,当所述目标数据写入所述Android系统时,调用kobject_uevent发出对应的事件通知;
当所述事件通知被发出,触发所述AIDL服务或者所述HIDL服务中的monitor线程,并通过所述monitor线程进行数据更新与处理,生成线程监控结果。
2.根据权利要求1所述的串口设备和Android系统框架融合的方法,其特征在于,所述在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备,并对所述第一串口设备进行初始化,得到第二串口设备,包括:
在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备;
对所述第一串口设备进行设备信息扫描,得到所述第一串口设备的串口设备类型以及设备元数据;
根据所述串口设备类型以及所述设备元数据,计算所述第一串口设备的设备响应时间和初始化成功率;
根据所述设备响应时间和所述初始化成功率,加载所述第一串口设备对应的驱动程序,并通过所述Android系统对所述第一串口设备进行资源分配和设备初始化,得到第二串口设备。
3.根据权利要求1所述的串口设备和Android系统框架融合的方法,其特征在于,所述通过所述Android系统对所述第二串口设备进行串口通信参数配置,得到目标串口设备,包括:
通过所述Android系统对所述第二串口设备进行波特率设置,得到对应的波特率;
通过所述Android系统对所述第二串口设备进行数据位配置,得到对应的数据位;
通过所述Android系统对所述第二串口设备进行停止位选择,得到对应的停止位数量;
通过所述Android系统对所述第二串口设备进行奇偶校验配置,得到对应的奇偶校验参数;
根据所述波特率、所述数据位、所述停止位数量以及所述奇偶校验参数生成对应的目标串口设备。
4.根据权利要求1所述的串口设备和Android系统框架融合的方法,其特征在于,所述通过所述AIDL服务或者所述HIDL服务创建所述目标串口设备对应的新线程,并通过所述新线程自定义串口通信协议,以及通过所述新线程获取串口模块的原始数据,包括:
通过所述AIDL服务或者所述HIDL服务创建所述目标串口设备对应的新线程;
通过所述新线程设计数据包的格式和大小,并确定所述数据包的发送顺序和时间间隔;
通过所述新线程进行协议测试和协议优化,得到对应的自定义串口通信协议,并根据所述自定义串口通信协议,通过所述新线程获取串口模块的原始数据。
5.根据权利要求1所述的串口设备和Android系统框架融合的方法,其特征在于,所述对所述原始数据进行预处理,得到目标数据,包括:
通过预置的滤波算法对所述原始数据进行噪声过滤,得到第一数据;
对所述第一数据进行数据校正,得到第二数据;
对所述第二数据进行格式转换,得到第三数据;
对所述第三数据进行数据缓存,得到目标数据。
6.根据权利要求1所述的串口设备和Android系统框架融合的方法,其特征在于,所述通过fake_driver生成目标节点,并通过所述目标节点中的write函数对所述目标数据进行写入操作,当所述目标数据写入所述Android系统时,调用kobject_uevent发出对应的事件通知,包括:
通过fake_driver生成目标节点,并通过所述目标节点中的write函数对所述目标数据进行写入操作;
当所述目标数据写入所述Android系统时,对所述Android系统和所述目标串口设备进行状态同步;
对所述Android系统进行写入错误校验和写入性能分析,得到写入性能分析结果;
根据所述写入性能分析结果对所述Android系统进行写入参数动态调整,并调用kobject_uevent发出对应的事件通知。
7.根据权利要求1所述的串口设备和Android系统框架融合的方法,其特征在于,所述当所述事件通知被发出,触发所述AIDL服务或者所述HIDL服务中的monitor线程,并通过所述monitor线程进行数据更新与处理,生成线程监控结果,包括:
当所述事件通知被发出,触发所述AIDL服务或者所述HIDL服务中的monitor线程;
通过所述monitor线程对所述事件通知进行监听,并对所述Android系统进行数据更新,得到数据更新状态;
根据所述数据更新状态,对所述Android系统进行动作执行和性能监控,生成线程监控结果。
8.根据权利要求7所述的串口设备和Android系统框架融合的方法,其特征在于,所述根据所述数据更新状态,对所述Android系统进行动作执行和性能监控,生成线程监控结果,包括:
对所述数据更新状态进行状态映射和状态标准化,得到标准状态评价指标集;
将所述标准状态评价指标集输入预置的双向LSTM网络,通过所述双向LSTM网络中的前向LSTM网络对所述标准状态评价指标集进行前向时序隐藏特征提取,得到前向时序隐藏特征向量,并通过所述双向LSTM网络中的后向LSTM网络对所述标准状态评价指标集进行后向时序隐藏特征提取,得到后向时序隐藏特征向量,以及对所述前向时序隐藏特征向量和所述后向时序隐藏特征向量进行特征融合,得到融合时序隐藏特征向量;
基于所述融合时序隐藏特征向量,生成所述Android系统对应的动作执行策略,并基于所述动作执行策略对所述Android系统进行数据更新;
在所述Android系统完成数据更新后,采集所述Android系统的性能监控参数数据,并基于所述性能监控参数数据对所述Android系统进行奖励反馈数据计算,得到对应的奖励反馈参数;
基于所述奖励反馈参数对所述动作执行策略进行策略更新,生成对应的目标执行策略,并通过所述目标执行策略进行动作执行和性能监控,生成线程监控结果。
9.一种串口设备和Android系统框架融合的装置,其特征在于,所述串口设备和Android系统框架融合的装置包括:
识别模块,用于在AIDL服务或者HIDL服务启动时,对连接到Android系统的串口设备进行识别,得到第一串口设备,并对所述第一串口设备进行初始化,得到第二串口设备;
配置模块,用于通过所述Android系统对所述第二串口设备进行串口通信参数配置,得到目标串口设备;
创建模块,用于通过所述AIDL服务或者所述HIDL服务创建所述目标串口设备对应的新线程,并通过所述新线程自定义串口通信协议,以及通过所述新线程获取串口模块的原始数据;
预处理模块,用于对所述原始数据进行预处理,得到目标数据;
写入模块,用于通过fake_driver生成目标节点,并通过所述目标节点中的write函数对所述目标数据进行写入操作,当所述目标数据写入所述Android系统时,调用kobject_uevent发出对应的事件通知;
处理模块,用于当所述事件通知被发出,触发所述AIDL服务或者所述HIDL服务中的monitor线程,并通过所述monitor线程进行数据更新与处理,生成线程监控结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410068857.0A CN117573214B (zh) | 2024-01-17 | 2024-01-17 | 一种串口设备和Android系统框架融合的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410068857.0A CN117573214B (zh) | 2024-01-17 | 2024-01-17 | 一种串口设备和Android系统框架融合的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573214A true CN117573214A (zh) | 2024-02-20 |
CN117573214B CN117573214B (zh) | 2024-04-19 |
Family
ID=89892296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410068857.0A Active CN117573214B (zh) | 2024-01-17 | 2024-01-17 | 一种串口设备和Android系统框架融合的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573214B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118034751A (zh) * | 2024-04-15 | 2024-05-14 | 深圳市天玑互联科技有限公司 | 基于应用程序的mcu动态控制方法及系统 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120324067A1 (en) * | 2011-06-17 | 2012-12-20 | Adiseshu Hari | Method and apparatus for remote delivery of managed usb services via a mobile computing device |
CN103617068A (zh) * | 2013-11-18 | 2014-03-05 | 四川长虹电器股份有限公司 | 在Android模拟器中模拟操作USB设备的方法 |
CN104778222A (zh) * | 2015-03-23 | 2015-07-15 | 四川长虹电器股份有限公司 | 基于usb存储设备的媒体库建立及更新方法 |
US9294913B1 (en) * | 2011-08-02 | 2016-03-22 | The United States of America as repressented by Secretary of the Navy | Android-based secure handheld network access device and micro-USB version of IEEE 802.15.4 bridge for ACSD networks |
CN105518620A (zh) * | 2014-10-31 | 2016-04-20 | 华为技术有限公司 | 一种网卡配置方法及资源管理中心 |
CN106445762A (zh) * | 2016-08-29 | 2017-02-22 | 广州视源电子科技股份有限公司 | 整机设备调试方法和系统 |
CN106776320A (zh) * | 2016-12-16 | 2017-05-31 | 四川长虹电器股份有限公司 | 安卓智能终端自动化测试系统及方法 |
CN107992367A (zh) * | 2017-10-20 | 2018-05-04 | 河南平高电气股份有限公司 | 一种Modbus串口数据处理方法 |
CN108280034A (zh) * | 2018-01-30 | 2018-07-13 | 深圳市宏电技术股份有限公司 | 一种安卓系统usb-hid设备自适应方法及装置 |
CN108536479A (zh) * | 2018-04-17 | 2018-09-14 | 百度在线网络技术(北京)有限公司 | 用于重启安卓设备的方法和装置 |
US20200326492A1 (en) * | 2019-04-12 | 2020-10-15 | ProTVSolutions LLC | Light guide with usb interface |
CN114328336A (zh) * | 2021-12-24 | 2022-04-12 | 深圳市智微智能软件开发有限公司 | 基于Android的串口收发方法、系统、终端及存储介质 |
CN114595177A (zh) * | 2022-02-23 | 2022-06-07 | 成都万创科技股份有限公司 | 一种基于android的多通信模组及其兼容方法 |
CN114722386A (zh) * | 2022-03-31 | 2022-07-08 | 和安科技创新有限公司 | 一种基于Fanotify机制的U盘传输监控方法 |
US20230028513A1 (en) * | 2021-06-21 | 2023-01-26 | Jc Software, Llc | Computer based system for configuring, manufacturing, testing, diagnosing, and resetting target unit equipment and methods of use thereof |
CN116795754A (zh) * | 2023-07-20 | 2023-09-22 | 珠海万思维信息科技有限公司 | Usb转串口驱动实现方法、网络测试方法、计算机装置及计算机可读存储介质 |
CN116841625A (zh) * | 2022-03-24 | 2023-10-03 | 成都鼎桥通信技术有限公司 | 基于安卓的usb网卡配置方法、装置、设备及存储介质 |
CN220021850U (zh) * | 2023-03-01 | 2023-11-14 | 深圳前海深蕾半导体有限公司 | 一种通过usb接口扩增显示的显示设备 |
-
2024
- 2024-01-17 CN CN202410068857.0A patent/CN117573214B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120324067A1 (en) * | 2011-06-17 | 2012-12-20 | Adiseshu Hari | Method and apparatus for remote delivery of managed usb services via a mobile computing device |
US9294913B1 (en) * | 2011-08-02 | 2016-03-22 | The United States of America as repressented by Secretary of the Navy | Android-based secure handheld network access device and micro-USB version of IEEE 802.15.4 bridge for ACSD networks |
CN103617068A (zh) * | 2013-11-18 | 2014-03-05 | 四川长虹电器股份有限公司 | 在Android模拟器中模拟操作USB设备的方法 |
CN105518620A (zh) * | 2014-10-31 | 2016-04-20 | 华为技术有限公司 | 一种网卡配置方法及资源管理中心 |
CN104778222A (zh) * | 2015-03-23 | 2015-07-15 | 四川长虹电器股份有限公司 | 基于usb存储设备的媒体库建立及更新方法 |
CN106445762A (zh) * | 2016-08-29 | 2017-02-22 | 广州视源电子科技股份有限公司 | 整机设备调试方法和系统 |
CN106776320A (zh) * | 2016-12-16 | 2017-05-31 | 四川长虹电器股份有限公司 | 安卓智能终端自动化测试系统及方法 |
CN107992367A (zh) * | 2017-10-20 | 2018-05-04 | 河南平高电气股份有限公司 | 一种Modbus串口数据处理方法 |
CN108280034A (zh) * | 2018-01-30 | 2018-07-13 | 深圳市宏电技术股份有限公司 | 一种安卓系统usb-hid设备自适应方法及装置 |
CN108536479A (zh) * | 2018-04-17 | 2018-09-14 | 百度在线网络技术(北京)有限公司 | 用于重启安卓设备的方法和装置 |
US20200326492A1 (en) * | 2019-04-12 | 2020-10-15 | ProTVSolutions LLC | Light guide with usb interface |
US20230028513A1 (en) * | 2021-06-21 | 2023-01-26 | Jc Software, Llc | Computer based system for configuring, manufacturing, testing, diagnosing, and resetting target unit equipment and methods of use thereof |
CN114328336A (zh) * | 2021-12-24 | 2022-04-12 | 深圳市智微智能软件开发有限公司 | 基于Android的串口收发方法、系统、终端及存储介质 |
CN114595177A (zh) * | 2022-02-23 | 2022-06-07 | 成都万创科技股份有限公司 | 一种基于android的多通信模组及其兼容方法 |
CN116841625A (zh) * | 2022-03-24 | 2023-10-03 | 成都鼎桥通信技术有限公司 | 基于安卓的usb网卡配置方法、装置、设备及存储介质 |
CN114722386A (zh) * | 2022-03-31 | 2022-07-08 | 和安科技创新有限公司 | 一种基于Fanotify机制的U盘传输监控方法 |
CN220021850U (zh) * | 2023-03-01 | 2023-11-14 | 深圳前海深蕾半导体有限公司 | 一种通过usb接口扩增显示的显示设备 |
CN116795754A (zh) * | 2023-07-20 | 2023-09-22 | 珠海万思维信息科技有限公司 | Usb转串口驱动实现方法、网络测试方法、计算机装置及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118034751A (zh) * | 2024-04-15 | 2024-05-14 | 深圳市天玑互联科技有限公司 | 基于应用程序的mcu动态控制方法及系统 |
CN118034751B (zh) * | 2024-04-15 | 2024-07-19 | 深圳市天玑互联科技有限公司 | 基于应用程序的mcu动态控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117573214B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117573214B (zh) | 一种串口设备和Android系统框架融合的方法及装置 | |
Khan et al. | Dustminer: troubleshooting interactive complexity bugs in sensor networks | |
CN100412802C (zh) | 有计划的计算机问题诊断和解决及其自动报告和更新 | |
CN111651366B (zh) | Sdk测试方法、装置、设备及存储介质 | |
US5701408A (en) | Method for testing computer operating or application programming interfaces | |
CN108984389B (zh) | 一种应用程序测试方法及终端设备 | |
WO2019216976A1 (en) | Analytics for an automated application testing platform | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN103729294B (zh) | 应用软件性能脚本测试方法与装置 | |
WO2012066091A1 (en) | Method and apparatus for automatic diagnosis of software failures | |
CN109388535A (zh) | 一种存储性能测试方法、装置及应用服务器 | |
CN107832059A (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
CN111124870A (zh) | 一种接口测试方法及装置 | |
CN114741283A (zh) | 一种基于python设计的接口自动化测试方法及装置 | |
CN111679982A (zh) | 一种rest api接口软件自动化测试方法 | |
CN117009243A (zh) | 芯片性能自动化测试方法、装置、计算机设备及存储介质 | |
CN113742215A (zh) | 一种自动配置和调用测试工具进行测试分析的方法及系统 | |
CN117370217B (zh) | 一种基于python的接口测试结果自动生成方法 | |
EP3923144A1 (en) | Method for developing and testing a connectivity driver for an instrument | |
CN110837467B (zh) | 软件测试方法、装置以及系统 | |
US11847059B2 (en) | Embedding data in address streams | |
US10481969B2 (en) | Configurable system wide tests | |
CN110457056B (zh) | 基于hart总线的仪表在线升级方法和接收装置 | |
US11574090B2 (en) | System and method for simulating field device in industrial plant | |
CN114428747A (zh) | 一种用户界面测试方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |