You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
using System.Collections; |
|
using System.Collections.Generic; |
|
using UnityEngine; |
|
using LitJson; |
|
using System; |
|
|
|
namespace JXSoft { |
|
//协议规则解析通用方法扩展 |
|
public static class ProtocolRulesExtention |
|
{ |
|
/// <summary> |
|
/// Hex数据(字符串)转Byte数组,用于Hex类通讯协议 |
|
/// </summary> |
|
/// <param name="self">只能包含A-F,0-9,hex</param> |
|
/// <param name="start">起始位置</param> |
|
/// <param name="length">长度</param> |
|
/// <returns></returns> |
|
public static byte[] toByteArrayByHex(this string self) { |
|
int hexlen = self.Length; |
|
byte[] result; |
|
if (hexlen % 2 == 1) |
|
{ |
|
//奇数 |
|
hexlen++; |
|
result = new byte[(hexlen / 2)]; |
|
self += "0" ; |
|
} |
|
else |
|
{ |
|
//偶数 |
|
result = new byte[(hexlen / 2)]; |
|
} |
|
int j = 0; |
|
for (int i = 0; i < hexlen; i += 2) |
|
{ |
|
result[j] = (byte)int.Parse(self.Substring(i, 2), System.Globalization.NumberStyles.HexNumber); |
|
j++; |
|
} |
|
return result; |
|
} |
|
|
|
/// <summary> |
|
/// Json数据转对象 |
|
/// </summary> |
|
/// <typeparam name="TObject">数据类型</typeparam> |
|
/// <param name="self"></param> |
|
/// <returns></returns> |
|
public static TObject toObjectByJson<TObject>(this string self) { |
|
return JsonMapper.ToObject<TObject>(self); |
|
} |
|
} |
|
}
|
|
|