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