仰邦科技 LED 板卡采集 TCP 版本

// LED5ksend.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "Led5kSDK.h"
#include <iostream>
#pragma comment(lib,"Led5kSdk.lib")


int ledset(CString txt1, CString txt2, CString txt3, CString txt4, CString txt5, CString txt6);
void CString2Char(CString str, char ch[]);
//输入 6行数据 从左到右依次1-6
//返回 0 发送成功  1 通讯失败  2 发送失败
int ledset(CString txt1, CString txt2, CString txt3, CString txt4, CString txt5, CString txt6)
{
	bx_5k_area_header m_AreaHeader;
	char data[1024 * 64] ;
	char data1[1024 * 64]  ;
	char data2[1024 * 64] ;
	char data3[1024 * 64] ;
	char data4[1024 * 64] ;
	char data5[1024 * 64] ;
	memset(data, 0, sizeof(data));
	memset(data1, 0, sizeof(data1));
	memset(data2, 0, sizeof(data2));
	memset(data3, 0, sizeof(data3));
	memset(data4, 0, sizeof(data4));
	memset(data5, 0, sizeof(data5));
	int data_len ;
	int data_len1 ;
	int data_len2 ;
	int data_len3 ;
	int data_len4;
	int data_len5;



	//初始化函数
	InitSdk(2, 2);
	//设置TCP提供讯 IP 端口 板卡类型
	DWORD hand = CreateClient("192.168.0.55", 5005, (bx_5k_card_type)BX_5MK2, 1, NULL);
	if (hand == 0)
	{

		return 1;
	}
	//数据准备
	m_AreaHeader.AreaType = 0;
	m_AreaHeader.AreaX = 0;//起始点x坐标
	m_AreaHeader.AreaY = 64;//起始点Y坐标
	m_AreaHeader.AreaWidth = 96 / 8;
	m_AreaHeader.AreaHeight = 16;
	m_AreaHeader.DynamicAreaLoc = 0xff;
	m_AreaHeader.Lines_sizes = 0;//行间距
	m_AreaHeader.RunMode = 0;
	m_AreaHeader.Timeout = 0;
	memset(m_AreaHeader.Reserved, 0, sizeof(m_AreaHeader.Reserved));
	m_AreaHeader.SingleLine = 1;//单行1 多行2 显示
	m_AreaHeader.NewLine = 1;//手动换行1 自动换行2
	m_AreaHeader.DisplayMode = 3;//静止显示;快速打出;向左移动;向右移动;向上移动;向下移动;
	m_AreaHeader.ExitMode = 0;
	m_AreaHeader.Speed = 1;//1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;
	m_AreaHeader.StayTime = 20;//停留多少0.5秒



	CString2Char(txt1, data);
	CString2Char(txt2, data1);
	CString2Char(txt3, data2);
	CString2Char(txt4, data3);
	CString2Char(txt5, data4);
	CString2Char(txt6, data5);

	data_len = strlen(data);
	data_len1 = strlen(data1);
	data_len2 = strlen(data2);
	data_len3 = strlen(data3);
	data_len4 = strlen(data4);
	data_len5 = strlen(data5);

   //第一区域赋值
	int len = sizeof(bx_5k_area_header) + data_len;
	int length = sizeof(bx_5k_area_header) + 4;
	m_AreaHeader.DataLen = data_len;
	int sum_length = length * 6 + data_len + data_len1 + data_len2 + data_len3 + data_len4 + data_len5;
	BYTE *buff = new BYTE[sum_length];
	memcpy(buff, &len, 4);
	memcpy(buff + 4, &m_AreaHeader, sizeof(bx_5k_area_header));
	memcpy(buff + length, data, data_len);



	//第二区域赋值
	int  pach = len+4;
	len = sizeof(bx_5k_area_header) + data_len1;
	m_AreaHeader.DataLen = data_len1;
	BYTE *buff1 = new BYTE[len + 4];
	memcpy(buff1, &len, 4);
	m_AreaHeader.AreaY = 80;
	memcpy(buff1 + 4, &m_AreaHeader, sizeof(bx_5k_area_header));
	memcpy(buff1 + 4 + sizeof(bx_5k_area_header), data1, data_len1);
	memcpy(buff + pach, buff1, len + 4);


	//第三行赋值
	pach += len + 4;
	len = sizeof(bx_5k_area_header) + data_len2;
	m_AreaHeader.DataLen = data_len2;
	BYTE *buff2 = new BYTE[4 + len];
	memcpy(buff2, &len, 4);
	m_AreaHeader.AreaY = 48;
	memcpy(buff2 + 4, &m_AreaHeader, sizeof(bx_5k_area_header));
	memcpy(buff2 + 4 + sizeof(bx_5k_area_header), data2, data_len2);
	memcpy(buff + pach, buff2, len + 4);
	//第四行赋值
	pach += len + 4;
	len = sizeof(bx_5k_area_header) + data_len3;
	m_AreaHeader.DataLen = data_len3;
	BYTE *buff3 = new BYTE[4 + len];
	memcpy(buff3, &len, 4);
	m_AreaHeader.AreaY = 32;
	memcpy(buff3 + 4, &m_AreaHeader, sizeof(bx_5k_area_header));
	memcpy(buff3 + 4 + sizeof(bx_5k_area_header), data3, data_len3);
	memcpy(buff + pach, buff3, len + 4);

	//第五行赋值
	pach += len + 4;
	len = sizeof(bx_5k_area_header) + data_len4;
	m_AreaHeader.DataLen = data_len4;
	BYTE *buff4 = new BYTE[4 + len];
	memcpy(buff4, &len, 4);
	m_AreaHeader.AreaY = 16;
	memcpy(buff4 + 4, &m_AreaHeader, sizeof(bx_5k_area_header));
	memcpy(buff4 + 4 + sizeof(bx_5k_area_header), data4, data_len4);
	memcpy(buff + pach, buff4, len + 4);

	//第六行赋值
	pach += len + 4;
	len = sizeof(bx_5k_area_header) + data_len5;
	m_AreaHeader.DataLen = data_len5;
	BYTE *buff5 = new BYTE[4 + len];
	memcpy(buff5, &len, 4);
	m_AreaHeader.AreaY = 0;
	memcpy(buff5 + 4, &m_AreaHeader, sizeof(bx_5k_area_header));
	memcpy(buff5 + 4 + sizeof(bx_5k_area_header), data5, data_len5);
	memcpy(buff + pach, buff5, len + 4);


	//其他参数

	//CProgramDlg
	BYTE ProgramLife[8];
	memset(ProgramLife, 0xff, sizeof(ProgramLife));


	BYTE ProgramWeek = 1;//全星期播放
	BYTE ProgramTime = 0;//全天
	char name_data[5] = "P001";
	//时间
	BYTE period[7];
	int m_AreaNum = 6;//6个区域
	int m_PlayTimes = 1;//播放次数

	int err = OFS_SendFileData(hand, true, "P001", 0, m_PlayTimes, ProgramLife, ProgramWeek, ProgramTime, period, m_AreaNum, buff, sum_length);
	delete[] buff;
	delete[] buff1;
	delete[] buff2;
	delete[] buff3;
	delete[] buff4;
	delete[] buff5;

	if (err != 0)
	{
		return 2;
	}

	return 0;
}


void CString2Char(CString str, char ch[])
{
#ifdef _UNICODE
	int i;
	char *tmpch;
	int wLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);//得到Char的长度
	tmpch = new char[wLen + 1];                                             //分配变量的地址大小
	WideCharToMultiByte(CP_ACP, 0, str, -1, tmpch, wLen, NULL, NULL);       //将CString转换成char*

	for (i = 0; tmpch[i] != '\0'; i++) ch[i] = tmpch[i];
	ch[i] = '\0';
	delete tmpch;
#else
	strcpy(ch, str.GetBuffer());
#endif
}

int main()
{
	int err = ledset(_T("春眠不觉晓"), "处处闻啼鸟", "夜来风雨声", "花落知多少", _T("苏E55555"), _T("苏E66666"));
	if (err == 1)
	{
		printf("通讯失败,请检查网线或相关设置!\n");
		return 0;
	}
	if (err == 2)
	{
		printf("发送失败\n");
		return 0;
	}
	printf("发送成功\n");
    return 0;
}

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢娘蓝桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值