上位机图像处理和嵌入式模块部署(利用python开发软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        开发windows和linux软件的时候,大家一般都是习惯于用c/c++语言进行开发,但是目前来说很多的开发板都是支持python语言开发的。这个时候,如果不是特别复杂的功能,或者说我们已经具备了对应的linux c语言开发库,这个时候就完全可以用python来完成windows和linux的通信、以及linux软件的开发。

1、windows和linux的通信

        如果是用python开发windows和linux的网络通信,这并不是一件很复杂的事情。首先我们需要确定下开发板的python版本;接着继续在windows上面安装相同版本的python版本即可,比如python3版本;这些都做好之后,就可以开始脚本的编写了。一般来说,windows作为客户端,linux作为服务器端。windows的python脚本通常是这样的,

# -*- coding:utf8 -*-
import socketdef main():host = '192.168.0.97'port = 12345client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:client_socket.connect((host, port))print("成功连接到服务器")message = "Hello, Server!"client_socket.sendall(message.encode())data = client_socket.recv(1024)print(data)except Exception as e:print("连接或通信出现错误")finally:client_socket.close()if __name__ == "__main__":main()

        而linux的python版本是这样的,

# -*- coding:utf8 -*-
import socketdef main():host = '0.0.0.0'  # 监听所有可用的网络接口port = 12345  # 选择一个未被占用的端口server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind((host, port))server_socket.listen(1)  # 同时监听一个连接print(f"等待客户端连接在 {host}:{port} ...")while True:client_socket, client_address = server_socket.accept()print(f"成功接收来自 {client_address} 的连接")data = client_socket.recv(1024)print(f"从客户端接收到的数据: {data.decode()}")message = "Hello, Client!"client_socket.sendall(message.encode())client_socket.close()endserver_socket.close()if __name__ == "__main__":main()

        这样有了tcp client端和tcp server端,两者就可以进行通信处理了。

2、扩展linux端python的功能

        前面我们谈到过,python自身提供的功能不一定符合我们自己的要求。所以,这个时候我们一般还需要开发一个算法库。但是算法库本身是没有办法被python直接访问的,所以通常还需要按照python的格式重新对一下接口,才能被python语言使用。假设有一个example_module.c文件,它的代码是这样的,

#include <Python.h>static PyObject *example_function(PyObject *self, PyObject *args) {// C 函数的实现return Py_BuildValue("s", "Hello from C!");
}static PyMethodDef methods[] = {{"example_function", example_function, METH_NOARGS, "Example function"},{NULL, NULL, 0, NULL} // 结尾标志
};static struct PyModuleDef module = {PyModuleDef_HEAD_INIT,"example_module",NULL,-1,methods
};PyMODINIT_FUNC PyInit_example_module(void) {return PyModule_Create(&module);
}

        接着把这段代码进行编译,可以直接用树莓派4b自带的编译器进行编译,

gcc -o example_module.so -shared -fPIC $(python3-config --cflags) example_module.c

        最后尝试一下,直接在python脚本里面调用这个动态库文件,

import example_moduleresult = example_module.example_function()
print(result)

        如果能够看到这样的打印,那么代表整个处理的流程是没有问题的,

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

防火墙USG6000V配置接口实验

要求:防火墙向下使用子接口分别对应生产区和办公区,所有分区设备可以ping通网关 最终效果部分示例:client1,Server1,PC2都能ping通网关 实现流程: 云要添加虚拟网卡ip(此处用的是创建的虚拟环回ip),更改端口映射为双向通道且更改编号 SW1:#要先登录防火墙初始账号和密码,然后…

尝新果未熟,探新途未尽。寒冬凝锐气,雷鸣蓄神力——小康师兄的2023年度总结

文章目录 一、前言二、工作总结2.1 我期望的&#xff0c;而公司想要的2.2 公司利益VS员工利益2.3 这个问题问得很有问题 三、生活总结3.1 一胎3.2 二胎 四、其他总结4.1 博客4.2 无人自助台球馆4.3 我要出书了 五、OKR 一、前言 又是一年除夕夜&#xff0c;万家灯火同团圆。 老…

|Python新手小白低级教程|第十九章:函数(1)

文章目录 前言一、概说二、方法def简介1.示例&#xff1a;使用def关键字制作功能函数——找最大最小2.代码剖析示例代码Part 1示例代码Part 2示例代码Part 3练习1.1制作函数 三、灵活使用函数1.制作一种函数&#xff0c;函数名和格式为even_num(a,b)&#xff0c;输入a&#xff…

数据结构——单向链表和双向链表的实现(C语言版)

目录 前言 1. 链表 1.1 链表的概念及结构 1.2 链表的分类 2. 单链表接口实现 2.1 数据结构设计与接口函数声明 2.2 创建结点&#xff0c;打印&#xff0c;查找 2.3 尾插&#xff0c;头插&#xff0c;尾删&#xff0c;头删 2.4 插入或删除 2.4.1在指定位置后 2.4.2在…

防疫物资管理新篇章:Java+SpringBoot实战

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

初识String类和String类的拓展

前言&#xff1a;以下是Java中String类的知识点与一些常见问题和注意事项&#xff0c;如有讲解不妥&#xff0c;请见谅&#xff01; 目录 1.String类的创建及常见API &#xff08;1&#xff09;String类的四种创建方式&#xff1a; 补充&#xff1a;字符串转化成字符数组 / …

038 什么是面向对象

面向过程&面向对象 什么是面向对象 现实世界中的事物、类、对象之间的关系 在我们想通过计算机解决一个具体问题的时候&#xff0c;我们可以研究与问题有关事物的共性&#xff0c;比如我在观察了大量的杯子后得出一些结论&#xff1a;杯子都应该有材质、颜色、尺寸、形状这…

Docker 容器网络:C++ 客户端 — 服务器应用程序。

一、说明 在下面的文章中&#xff0c; 将向您概述 docker 容器之间的通信。docker 通信的验证将通过运行 C 客户端-服务器应用程序和标准“ping”命令来执行。将构建并运行两个单独的 Docker 映像。 由于我会关注 docker 网络方面&#xff0c;因此不会提供 C 详细信息。…

LeetCode-第15题-三叔之和

1.题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…

1899_野火FreeRTOS教程阅读笔记_任务创建

1899_野火FreeRTOS教程阅读笔记_任务创建 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 关于这部分&#xff0c;从一般前后台程序到RTOS的任务描述了很多。但是我觉得这本书的这部分描述没有描述到关键的信息点。其实&#xff0c;RTOS存在的一个主要的目…

MySQL篇----第八篇

系列文章目录 文章目录 系列文章目录前言一、存储过程优化思路二、触发器(一段能自动执行的程序)三、数据库并发策略四、MySQL 中有哪几种锁?五、MySQL 中有哪些不同的表格?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳…

创建自己的系统创富法则,做个轻松赚钱的甩手掌柜

一、教程描述 本套系统创富教程&#xff0c;大小744.80M&#xff0c;共有28个文件。 二、教程目录 01.走遍全球四十多个国家&#xff0c;我才发现赚钱的本质如此雷同.mp4 02.靠工资技术赚钱太慢&#xff0c;想赚到自己的第一个一百万的方法是&#xff1f;.mp4 03.不服暴发…

CSP-202112-2-序列查询新解

CSP-202112-2-序列查询新解 【70分思路】 【暴力枚举】按照题目思路遍历一遍f(x)和g(x)&#xff0c;计算error(A)&#xff0c;时间复杂度为O(N)&#xff0c;时间超限。 #include <iostream> using namespace std; int main() {long long n, N, sum 0;cin >> n …

【c++基础】骑士的金币(coin)(NOIP2015)

说明 国王将金币作为奖励&#xff0c;发放给忠诚的骑士。第一天&#xff0c;骑士收到一枚金币&#xff1b;之后两天&#xff08;第二天和第三天&#xff09;里&#xff0c;每天收到两枚金币&#xff1b;之后三天&#xff08;第四、五、六天&#xff09;里&#xff0c;每天收到…

微软 CMU - Tag-LLM:将通用大语言模型改用于专业领域

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 论文地址&#xff1a;https://arxiv.org/abs/2402.05140 Github 地址&#xff1a;https://github.com/sjunhongshen/Tag-LLM 大语言模型&#xff08…

ChatGPT高效提问—prompt常见用法

ChatGPT高效提问—prompt常见用法 1.1 角色扮演 ​ prompt最为常见的用法是ChatGPT进行角色扮演。通常我们在和ChatGPT对话时&#xff0c;最常用的方式是一问一答&#xff0c;把ChatGPT当作一个单纯的“陪聊者”。而当我们通过prompt为ChatGPT赋予角色属性后&#xff0c;即使…

SpringIOC之support模块PropertySourcesPlaceholderConfigurer

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

LeetCode Python - 6.Z字形变换

文章目录 题目答案运行结果 题目 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输…

STM32 FSMC (Flexible static memory controller) 灵活静态内存控制器介绍

文章目录 1. 介绍FSMC2. FSMC特点3. Block示意图4. AHB接口4.1 Supported memories and transactionsGeneral transaction rulesConfiguration registers 5. 外部设备地址映射5.1 NOR/PSRAM地址映射将NOR Flash/PSRAM的支持进行封装 5.2 NAND/PC Card地址映射 1. 介绍FSMC 说到…

【正在更新】从零开始认识语音识别:DNN-HMM混合系统语音识别(ASR)模型原理

摘要 | Abstract TO-BE-FILLED 前言 | Introduction 近期想深入了解HMM隐马尔可夫模型和DNN-HMM混合模型&#xff0c;但是尽管网络上有许多关于DNN-HMM的介绍&#xff0c;如李宏毅教授的《深度学习人类语言处理》[1]&#xff0c;一些博主的语音识别系列文章[2]&#xff0c;斯坦…