功能很简单,但是 网上流传的资料太少了;

java如何给单片机串口发送一个16进制的命令;

我是用PELCO-D控制协议来控制 摄像头的转动;后面256取余数是 部分硬件设备才支持;不要的同学可以去掉;

总结,和底层硬件设备打交道,基本都是 用字节;不会有web开发中的什么字符串;切记切记~

package Soc;import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;public class Test {public static void main(String[] args) {Socket s;try {s = new Socket("192.168.1.57",4196);DataOutputStream out = new DataOutputStream(s.getOutputStream());byte[] b = getCommandByDegrees(100);out.write(b);out.flush();out.close();} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//算法//假设转99度;就是99*100 转成 16进制-->得到2个数字//入参:度数;返回:命令 云台协议public static byte[] getCommandByDegrees(int du){byte[] b = new byte[10];b[0] = (byte) 0xff;b[1] = (byte) 0x01;b[2] = (byte) 0x00;b[3] = (byte) 0x4b;b[4] = (byte) 0x00;//0x17b[5] = (byte) 0x00;//0xDBb[6] = (byte) 0x9e; //byte[] b = BitConverter.GetBytes(//   0xba5eba11 ); String str=Integer.toHexString(du*100);System.out.println(du);System.out.println(Integer.toHexString(du));int  s4=Integer.valueOf(str.substring(0, 2));int  s5=Integer.valueOf(str.substring(2, 4));System.out.println();b[4] = (byte)s4;b[5] = (byte)s5;//q前面值相加对256取余数,校驗int sum=0;for(int i=1;i<6;i++){sum=sum+b[i];}int y=sum%256;//System.out.println(y+"--"+Integer.valueOf("3E",16));int s6= Integer.valueOf(Integer.toHexString(y));b[6] = (byte)s6;return b;}}

PELCO-D控制协议 java socket 传输16进制的编码相关推荐

  1. java socket发送16进制_JavaSocket短连接实现分别接收字符串和16进制数据

    做个笔记,在接收16进制数据的时候乱码了.原因是Socket在接收数据的时候需要根据不同的数据定义不同的接收方式,也就是约定好传输协议(具体体现在后面服务端接收16进制那里). 字符串的发送接收 字符 ...

  2. java 中文转16进制ASCll码

    java 中文转16进制ASCll码 在设置户外大屏时了解到大屏的通讯,可使用MODBUS TCP协议,因此学习了一下,发现和大屏通讯设置难度不大,还是老一套的发送16进制指令,唯一有兴趣的是中文转1 ...

  3. java读取文件 16进制_Java对文件的16进制读取和操作

    大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序. 有几个重点地方: 16进制字符串->10进制数          int input = Integer.parseInt ...

  4. Java 字符串,byte[],16进制的字符串互转

    Java 字符串,byte[],16进制的字符串互转 /** * 字符串转换成十六进制字符串 */ public static String str2HexStr(String str) { char ...

  5. python socket发送16进制数据_python socket以16进制的数据进行传递与解析

    参考:http://m.blog.csdn.net/blog/JasonQue/8256424 具体的struct模块的解释可以参照上面的链接. struct.pack也就是将数据按照二进制的格式进行 ...

  6. python socket发送16进制数据_Python UDP Socket 16进制数据发送

    注:此篇文章首次发表于我的一篇CSDN博客里边,现转载于此. 今天琢磨了一下Python UDP Socket 16进制数据发送. 原以为UDP发送和接受的都是字符,怎么能够发送16进制?但细想,其实 ...

  7. java字符串转16进制

    蓝牙通信中,有时我们需要将字符串转为16进制再进行传输,转换方法如下 try {byte[] b = s.getBytes();String str = " ";for (int ...

  8. java byte转16进制_Java 十六进制(Hex)与byte数组之间的转换

    一.十六进制(Hex)与字节(byte)的概念 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写.与10进制的对应关系是:0-9对应0-9:A-F对应10-15 ...

  9. java md5加密 16进制_MD5加密,并转换为16进制

    背景:在做爬虫的URL处理专题中需要对URL进行处理再存储. 要求: Java 中对数据进行MD5加密,并转换为16进制,以字符串的形式输出 (1)      在Java中,java的java.sec ...

最新文章

  1. 年薪100万和10万程序员的差距
  2. Java的反射机制 工厂模式综合讲解【转载自51CTO】
  3. 支持服务器CPU的ITX主板,Mini-ITX主板能装28核处理器,华擎推出EPC621D4I-2M主板
  4. 开源you-get项目爬虫,以及基于python+selenium的自动测试利器
  5. python得到电脑的开机时间
  6. Python Django 常用字段类型
  7. wpf绑定treeview 带查找_如何查找,修复和避免C#.NET中内存泄漏的8个最佳实践
  8. VCL组件之重要的公用属性
  9. mysql 执行计时_ps-top 用于MySQL的数据库top工具
  10. centos7安装kibana5.x
  11. SQL数据库异地备份(小白篇)两台服务器之间备份
  12. 信创终端高效运维与安全管理方案
  13. Xilinx 7系列FPGA DDR3硬件设计规则
  14. python前缀_python前缀和算法
  15. 瑞郎走弱有助于瑞士国家银行MogaFX外汇储备增加
  16. DiI(细胞膜红色荧光探针)被广泛应用于神经等细胞或组织的示踪剂或长期示踪剂
  17. JCL新手入门学习教程(1) 2021-02-09
  18. html表单提交和input标签了解
  19. HomeBank-5.5.4-个人家庭记账分析软件(开源)
  20. 黑马程序员UI设计学院公开课,10月18日开讲啦!

热门文章

  1. PMP项目管理证书难考吗?
  2. C语言课设案例——IC卡充值管理系统
  3. nextjs学习笔记
  4. kali RDP远程桌面之xfce4
  5. 什么是分布式任务调度?怎样实现任务调度
  6. 怎样判定高斯计的精度?
  7. Android开发 自定义心率图
  8. 模拟3d星空python_Python Blender 绘制3D宇宙飞船
  9. Hexo yilia 主题一揽子使用方案
  10. cortex a9相当于骁龙_高通骁龙875处理器单价超250美元;戴尔XPS 17国行版开卖