mobile CCTV,mobile surveillance,police body worn cameras

 forgetPW
 registerNow
search
12NextPage
backToList newPost
view: 2837|reply: 10
打印 prevThread nextThread

透明串口的使用,TSP通道

[copyURL]

3

主题

10

帖子

35

积分

newBie

Rank: 1

积分
35
jumpTo
owner
poston 2020-4-26 13:32 | authorOnly 回帖奖励 |倒序浏览 |阅读模式
我用sdk做透传时,想走数据链传输十六进制数据,接收端我看是用string类型接受的,在接收端我想还原成十六进制byte数组,C#的几个解码都试了,接出来的数据都不对,想问下发送端那边是啥编码的


reply

使用道具 report

60

主题

1428

帖子

5953

积分

Moderator

Rank: 7Rank: 7Rank: 7

积分
5953
sofa
poston 2020-4-27 14:25 | authorOnly
reply agree Against

使用道具 report

3

主题

10

帖子

35

积分

newBie

Rank: 1

积分
35
bench
 Owner| poston 2020-4-27 14:53 | authorOnly
besovideo post on2020-4-27 14:25
使用CUSDK做二次开发 串口透传数据采集的功能说明
http://bbs.besovideo.com:8067/forum.php?mod=viewthre ...

你好,我现在用C#的解码,ASCILL,UTF8,转换出来的字节数组都不对,我不知道是编和解码没对应吗
reply agree Against

使用道具 report

60

主题

1428

帖子

5953

积分

Moderator

Rank: 7Rank: 7Rank: 7

积分
5953
ground
poston 2020-4-27 15:19 | authorOnly
您先试试我们的DEMO?
reply agree Against

使用道具 report

3

主题

10

帖子

35

积分

newBie

Rank: 1

积分
35
5#
 Owner| poston 2020-4-27 15:45 | authorOnly
besovideo post on2020-4-27 15:19
您先试试我们的DEMO?

就是winformdemo,程序里是字符串发送接受都没问题,现在16进制发送数据,在接受端将string转成16进制byte, byte[] byteArray = System.Text.Encoding.ASCII.GetBytes(pTspData.Substring(0, len));出来的数据和发送端不一样
reply agree Against

使用道具 report

3

主题

10

帖子

35

积分

newBie

Rank: 1

积分
35
6#
 Owner| poston 2020-4-27 16:56 | authorOnly
besovideo post on2020-4-27 15:19
您先试试我们的DEMO?

你们那个客户端的转16进制显示的函数是怎么实现的
reply agree Against

使用道具 report

0

主题

9

帖子

102

积分

member

Rank: 2

积分
102
7#
poston 2020-4-27 19:02 | authorOnly
你好,请按照如下代码替换winformdemo工程下对应文件中的接口,然后再测试一下接收串口数据的16进制显示。
  1. 串口数据接收;


  2. 1、EventHandler.cs 文件:

  3. public delegate void BVCU_TspDialog_OnData(IntPtr dialog, IntPtr data, int len);

  4. void TspDialog_onData(IntPtr dialog, IntPtr pTspData, int len)
  5. {
  6.         if (pTspData == IntPtr.Zero || len <= 0)
  7.         {
  8.                 return;
  9.         }
  10.         byte[] byteTspData = new byte[len];
  11.     Marshal.Copy(pTspData, byteTspData, 0, byteTspData.Length);
  12.         m_dialog.onTspData(dialog, byteTspData);
  13. }


  14. 2、Dialog.cs 文件:

  15. delegate void OnGetTspData(IntPtr dialog, byte[] byteTspData);
  16. OnGetTspData deleGetTspData;

  17. public void onTspData(IntPtr dialog, byte[] byteTspData)
  18. {
  19.         if (null == deleGetTspData)
  20.         {
  21.                 deleGetTspData = new OnGetTspData(procGetTspData);
  22.         }

  23.         m_mainForm.BeginInvoke(deleGetTspData, new object[] { dialog, byteTspData});
  24. }

  25. public void procGetTspData(IntPtr dialog, byte[] byteTspData)
  26. {
  27.         foreach (OneDialog dlg in m_tspDialogs)
  28.         {
  29.                 if (dlg.dialogHandle == dialog)
  30.                 {
  31.                         m_mainForm.onGetTspData(dlg.pu.id, dlg.channelNo, byteTspData);
  32.                         return;
  33.                 }
  34.         }
  35. }


  36. 3、MainWinForm.cs文件:

  37. /// <summary>
  38. /// 获得Tsp数据
  39. /// </summary>
  40. public void onGetTspData(string puId, int iChannelNum, byte[] byteTspData)
  41. {
  42.         // 获取16进制字符串
  43.         string strHex = BytesToString_HexUI(byteTspData,true);
  44. }

  45. /// <summary>将字节数组转换为字符串</summary>
  46. /// <param name="input"></param>
  47. /// <param name="hex_UI_string">true: 16进制字符串, false: UI字符串</param>
  48. /// <returns></returns>
  49. public string BytesToString_HexUI(byte[] input, bool hex_UI_string = false)
  50. {
  51.         if (hex_UI_string)
  52.         {
  53.                 return BytesToHexString(input);
  54.         }
  55.         else
  56.         {
  57.                 return BytesToUIString(input);
  58.         }
  59. }

  60. /// <summary>字节数组转换为16进制字符串</summary>
  61. public string BytesToHexString(byte[] data)
  62. {
  63.         try
  64.         {
  65.                 return BitConverter.ToString(data).Replace('-', ' ');
  66.         }
  67.         catch (Exception e)
  68.         {
  69.                 return string.Empty;
  70.         }
  71. }

  72. /// <summary>字节数组转换为界面字符串</summary>
  73. public string BytesToUIString(byte[] data)
  74. {
  75.         try
  76.         {
  77.                 return Encoding.UTF8.GetString(data);
  78.         }
  79.         catch (Exception e)
  80.         {
  81.                 return string.Empty;
  82.         }
  83. }



copycode


本帖子中包含更多资源

pls login 才可以下载或查看,没有帐号?registerNow

x
reply agree Against

使用道具 report

3

主题

10

帖子

35

积分

newBie

Rank: 1

积分
35
8#
 Owner| poston 2020-4-28 09:33 | authorOnly
pang post on2020-4-27 19:02
你好,请按照如下代码替换winformdemo工程下对应文件中的接口,然后再测试一下接收串口数据的16进制显示。
...

ok,已解决,感谢
reply agree Against

使用道具 report

0

主题

9

帖子

102

积分

member

Rank: 2

积分
102
9#
poston 2020-4-28 09:35 | authorOnly
Redstar post on2020-4-28 09:33
ok,已解决,感谢

reply agree Against

使用道具 report

60

主题

1428

帖子

5953

积分

Moderator

Rank: 7Rank: 7Rank: 7

积分
5953
10#
poston 2020-4-28 10:22 | authorOnly
感谢分享。
reply agree Against

使用道具 report

creditRule

QQ|wireless surveillance

GMT+8, 2024-12-25 09:03 , Processed in 0.060549 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

QuickReply backToTop BackToList