前面两篇文章分别介绍了如何利用SECS SDK搭建一个支持SECS协议的工程,以及如何编辑生成需要交换数据的ID. 有了前面这两步就可以正常跑了。本文就介绍如何发送控制命令消息和SnFn数据消息。所有的都是类似的,本文讲几个,其他的依次类推。
一、怎么发送自带HSMS Header头部的控制命令
1、怎么发送 Deselect_req控制命令
SenderBuffer sender(this);
HSMSHeader header= { 0 };
sender.Begin();
get_header_of_Deselect_req(header);
sender.Add_HSMSHeader(&header);
sender.End();
sender.Send();
2、怎么发送 Separate_req控制命令
HSMSHeader header;
SenderBuffer sender(this);
sender.Begin();
get_header_of_Separate_req(header);
sender.Add_HSMSHeader(&header);
sender.End();
sender.Send();
二、怎么发带有数据项的数据消息
1、怎么主动发一个带有2个列表项的SnFn数据Primary消息
HSMSHeader header;
SenderBuffer sender(this);
int Sn = xx;//这里你自己填写实际需要的Stream号
int Fn = xx;//这里你自己填写实际需要的Function号
sender.Begin();
get_header_of_Data_message_primary(header, true, Sn, Fn);
//1.添加头部
sender.Add_HSMSHeader(&header);
//2.添加数据是带有2个Item的List
sender.Add_LIST_Header(2);
//3.然后给List添加2个ASCII类型的Item
sender.BeginList();
sender.Add_ITEM_Header(ASCII, strlen(PARAM1)); //这里放你的第1个参数,自己定义PARAM1
sender.Add_ASCII(PARAM1);
sender.Add_ITEM_Header(ASCII, strlen(PARAM2));//这里放你的第2个参数,自己定义PARAM1
sender.Add_ASCII(PARAM2);
sender.EndList();
sender.End();
sender.Send();
2、怎么回复发一个带有2个列表项的SnFn数据Reply消息
HSMSHeader header = (*pHdr);
SenderBuffer sender(this);
sender.Begin();
get_header_of_Data_message_reply(header);
//1.添加头部
sender.Add_HSMSHeader(&header);
//2.添加数据是带有2个Item的List
sender.Add_LIST_Header(2);
//3.然后给List添加2个ASCII类型的Item
sender.BeginList();
sender.Add_ITEM_Header(ASCII, strlen(PARAM1)); //这里放你的第1个参数,自己定义PARAM1
sender.Add_ASCII(PARAM1);
sender.Add_ITEM_Header(ASCII, strlen(PARAM2));//这里放你的第2个参数,自己定义PARAM1
sender.Add_ASCII(PARAM2);
sender.EndList();
sender.End();
sender.Send();
本文所提到的SECS SDK包可在CSDN下载。
如有疑问或咨询,请评论留言或在CSDN站内消息联系。