PELCO-D控制协议 java socket 传输16进制的编码
功能很简单,但是 网上流传的资料太少了;
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进制的编码相关推荐
- java socket发送16进制_JavaSocket短连接实现分别接收字符串和16进制数据
做个笔记,在接收16进制数据的时候乱码了.原因是Socket在接收数据的时候需要根据不同的数据定义不同的接收方式,也就是约定好传输协议(具体体现在后面服务端接收16进制那里). 字符串的发送接收 字符 ...
- java 中文转16进制ASCll码
java 中文转16进制ASCll码 在设置户外大屏时了解到大屏的通讯,可使用MODBUS TCP协议,因此学习了一下,发现和大屏通讯设置难度不大,还是老一套的发送16进制指令,唯一有兴趣的是中文转1 ...
- java读取文件 16进制_Java对文件的16进制读取和操作
大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序. 有几个重点地方: 16进制字符串->10进制数 int input = Integer.parseInt ...
- Java 字符串,byte[],16进制的字符串互转
Java 字符串,byte[],16进制的字符串互转 /** * 字符串转换成十六进制字符串 */ public static String str2HexStr(String str) { char ...
- python socket发送16进制数据_python socket以16进制的数据进行传递与解析
参考:http://m.blog.csdn.net/blog/JasonQue/8256424 具体的struct模块的解释可以参照上面的链接. struct.pack也就是将数据按照二进制的格式进行 ...
- python socket发送16进制数据_Python UDP Socket 16进制数据发送
注:此篇文章首次发表于我的一篇CSDN博客里边,现转载于此. 今天琢磨了一下Python UDP Socket 16进制数据发送. 原以为UDP发送和接受的都是字符,怎么能够发送16进制?但细想,其实 ...
- java字符串转16进制
蓝牙通信中,有时我们需要将字符串转为16进制再进行传输,转换方法如下 try {byte[] b = s.getBytes();String str = " ";for (int ...
- java byte转16进制_Java 十六进制(Hex)与byte数组之间的转换
一.十六进制(Hex)与字节(byte)的概念 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写.与10进制的对应关系是:0-9对应0-9:A-F对应10-15 ...
- java md5加密 16进制_MD5加密,并转换为16进制
背景:在做爬虫的URL处理专题中需要对URL进行处理再存储. 要求: Java 中对数据进行MD5加密,并转换为16进制,以字符串的形式输出 (1) 在Java中,java的java.sec ...
最新文章
- 邮箱@topgrid.cn是什么网站_典 藏 网 站 !
- Oracle使用dblink连接SqlServer
- 使用 Arthas 排查 SpringBoot 诡异耗时的 Bug
- 外挂学习之路(4)--- 大海捞针找call call const法
- VC++2010配置使用MySQL5.6
- asp mysql 设置编码_ASP对数据库各种操作的代码
- Google Zxing 生成二维码
- 英特尔大手笔花钱寻觅未来 但新领域变数太多难以成为支柱
- 学习——java内存模型
- BLOB存储图片文件二进制数据是非对错
- 省中心IEPGM同步到地市的IEPGM有问题,中心为“已商用”状态,地市为“已上架”状态
- 什么是十六进制法_十六进制计算方法是什么?
- Queues.drain 一边读数据一边写数据
- 《增长黑客》学习总结
- MySQL面试核心25问(附答案),心有猛虎,细嗅蔷薇
- 四年,工作、辞职、学习
- 190824-英雄联盟传记爬取
- linux系统文件复制过程时长,Linux系统I/O操作与零拷贝
- 【第二十四期】golang 一年经验开发 富途
- ArcGIS10.8安装教程
热门文章
- MySQL存储引擎以及索引
- 计算机专业复试面试英语口语问题,考研复试英语口语面试经典问题集锦.doc
- HCIA(Huawei Certified ICT Associate )
- docker 配置文件:etcdockerdaemon.json
- MarkDown简介(深度解析MarkDown用法)
- PHP基础之一揽子方案
- 如何实现不识字也能打电话——关于低代码DIY“手机通讯录”,方便老年人或文盲电话通讯方案
- 一张图入门Python
- 6000分“无聊大师”——张小龙
- 四川交投智慧高速新基建科研基地正式落成