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

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. 邮箱@topgrid.cn是什么网站_典 藏 网 站 !
  2. Oracle使用dblink连接SqlServer
  3. 使用 Arthas 排查 SpringBoot 诡异耗时的 Bug
  4. 外挂学习之路(4)--- 大海捞针找call call const法
  5. VC++2010配置使用MySQL5.6
  6. asp mysql 设置编码_ASP对数据库各种操作的代码
  7. Google Zxing 生成二维码
  8. 英特尔大手笔花钱寻觅未来 但新领域变数太多难以成为支柱
  9. 学习——java内存模型
  10. BLOB存储图片文件二进制数据是非对错
  11. 省中心IEPGM同步到地市的IEPGM有问题,中心为“已商用”状态,地市为“已上架”状态
  12. 什么是十六进制法_十六进制计算方法是什么?
  13. Queues.drain 一边读数据一边写数据
  14. 《增长黑客》学习总结
  15. MySQL面试核心25问(附答案),心有猛虎,细嗅蔷薇
  16. 四年,工作、辞职、学习
  17. 190824-英雄联盟传记爬取
  18. linux系统文件复制过程时长,Linux系统I/O操作与零拷贝
  19. 【第二十四期】golang 一年经验开发 富途
  20. ArcGIS10.8安装教程

热门文章

  1. MySQL存储引擎以及索引
  2. 计算机专业复试面试英语口语问题,考研复试英语口语面试经典问题集锦.doc
  3. HCIA(Huawei Certified ICT Associate )
  4. docker 配置文件:etcdockerdaemon.json
  5. MarkDown简介(深度解析MarkDown用法)
  6. PHP基础之一揽子方案
  7. 如何实现不识字也能打电话——关于低代码DIY“手机通讯录”,方便老年人或文盲电话通讯方案
  8. 一张图入门Python
  9. 6000分“无聊大师”——张小龙
  10. 四川交投智慧高速新基建科研基地正式落成