/// <summary> /// メッセージ送信 /// </summary> /// <param name="header"></param> /// <param name="status"></param> public byte[][] sendMessage(HeaderData header, UInt32 status) { //送信データ作成 var sendData = new HundMadePacket[10000]; var ret = new List<byte[]>(); var sendBytes = new byte[sendData.Sum(x => x.Packet.Length)]; var i = 0; sendData.TakeWhile(x => { var j = 0; x.Packet.TakeWhile(y => { sendBytes[i * 8 + j] = y; j++; return true; }); i++; return true; }); //1024byte刻みでデータ送信 foreach (var data in sendBytes.Cut1024Bytes()) { //ヘッダ作成 var h = new byte[3] { 0x11, 0x00, 0x00 }; //ヘッダーをいただく h[1] = header.HeaderByte; //ステータス値(uint)の後ろ1Byte分をいただく h[2] = status.ConvertBytes().Last(); //送信 var send = h.Concat(data).ToArray(); ret.Add(send); } return ret.ToArray(); }
/// <summary> /// byte[]同士の比較を行う /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns>等しければ0</returns> public static bool IsSame(this byte[] a, UInt32 b) { var bb = b.ConvertBytes(); return string.Compare(a.ToString(), bb.ToString()) == 0; }