仰邦BX-Y1L的SDK二次开发—>用python32调用C++的dll库

https://blog.csdn.net/inch2006/article/details/79930414

https://www.cnblogs.com/gaowengang/p/7919219.html

https://blog.csdn.net/inch2006/article/details/79908384tm_source=blogxgwz6

https://blog.csdn.net/Stay_Alive_L/article/details/82857346

参考以上这些文章。

接下来先说说注意的东西,最后上代码。

  1. 因为用到python32开发,所以用anconda来装32位pyhton3.x,以免弄乱自己的环境

     

  2. 参考anaconda创建并激活python32,如果不能翻墙那么参考这个修改源,
  3. anaconda的python32环境里面安装环境:eg:    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
  4. python是解释器,不要用conda install来安装东西,非常不稳定,在python32里面的pip来装,所以首先要激活后采用:

 

  •   而且要用python -m pip install 来安装东西,不要用pip install 因为pip对应的python版本不知道(当然不出问题还是直接pip install方便)
  •   long long *是指针,32位,两个指针就是64位,可以直接一个longlong 直接64位来取代(long long *,long long *)前提是这两个longlong指针参数在开发文档说了没有用
  • 记得用dir来看dll.某函数,可以看到里面有上面功能,eg:argtypes和restype是定义传入传出的(argtypes是要求数组的形式)
  • 直接看dll工作库的头文件 = 直接看开发文档里面的函数参数

Python3的字符串的编码语言用的是unicode编码,由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节,如果要在 络上传输,或保存在磁盘上就需要把str变成以字节为单位的bytes
字符对象(给人看)–>编码–>字节对象(给电脑看)–>解码–>字符对象(给人看)
python的str->encode(或者b”)->变Bytes— 络传输(返回的是bytes 类型的utf-8编码的数据)—>decode–> 变回python的Str

参见:https://blog.csdn.net/inch2006/article/details/79930414

 

附上一张ctype类型转换图(参考他):

 

全部源码:

记得,如果传入的类型是空但是传进去之后说你少了4byte,或者8byte,试着将其填充,换一个长度一样的类型,因为只要占满它即可,反正这个数据也没用。

后面的东西有空再加上并修改文章吧,第一次做软件开发,真的见识了,还有很多自己是不懂的,继续努力吧。 

 

补充:有时候莫名其妙,能ping通控制卡,但是发送出去没反应。check_time返回始终是-1。此时检查地址有没有问题,然后用YQ软件试一下,还是不行,就去电脑直连接收卡,用ledshowtv,发现可以,那有可能是控制卡到接收卡这里有问题,此时换控制卡,直接淘宝买,不要去定制买,又贵又慢。也有可能是控制卡IP有问题,有冲突,解决流程如下:

去官 下载最新的YQ播放器软件->自己电脑选择自动IP,不要设置手动IP,否则控制卡IP改不了->YQ软件设置屏参(密码888)->寻机->寻机ok后->设置屏参->控制器IP修改为我们想要的IP->然后测试发张图片没问题就ok了。

 

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览211008 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月21日
下一篇 2020年6月21日

相关推荐