Esempio n. 1
0
        public void SaveADList(string mac, DataItem_C109 item)
        {
            //清除广告列表
            var dataList = ReadPublish(mac);

            //dataList.ForEach(delegate (PublishItem pitem)
            //{
            //    DeletePublishItem(pitem);
            //});

            foreach (PublishItem pitem in dataList)
            {
                DeletePublishItem(pitem);
            }
            var fileList = from p in item.FileList
                           orderby p.FileNO
                           select p;

            this._adFileList.Clear();

            foreach (CY.IoTM.Common.Item.ADFile file in fileList)
            {
                PublishItem pubItem = new PublishItem()
                {
                    MAC = mac, Order = file.FileNO, FileName = file.FileName, DisplayLength = file.PollTime, BeginDate = file.DTStart, EndDate = file.DTEnd
                };
                File fl = ReadFile(mac, file.FileName);
                if (fl == null)
                {
                    //插入文件
                    InsertFile(mac, file);
                    pubItem.State = FileState.Loading;
                }
                else
                {
                    pubItem.State = fl.State;
                }
                InsertPublishItem(pubItem);
                this._adFileList.Add(new LCD_Item(this._mSimulator)
                {
                    ADFile = fl, ADItem = pubItem
                });
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 发布广告
        /// </summary>
        /// <param name="ap">广告发布信息</param>
        /// <param name="listMeter">广告用户列表</param>
        /// <param name="aDItems">广告内容列表</param>
        /// <param name="type">发布类型</param>
        /// <returns></returns>
        public string PublishAD(ADPublish ap, List <ADPublisMeter> listMeter, List <ADItem> aDItems, PublishType type)
        {
            //创建一个任务
            ser++;

            MongoDBHelper <Task> mongo_task = new MongoDBHelper <Task>();
            // DataItem_C109(byte ser, ADPublishOperatorCode operatorCode,byte fileCount,List<ADFile> fileList)
            //发布文件列表
            List <Common.Item.ADFile> fileList = new List <Common.Item.ADFile>();
            //操作码
            ADPublishOperatorCode operatorCode = type == PublishType.NewPublish ? ADPublishOperatorCode.ReDefineList : ADPublishOperatorCode.AddList;
            //文件条数
            byte fileCount = (byte)aDItems.Count;

            foreach (ADItem item in aDItems)
            {
                Common.Item.ADFile aDfile = new Common.Item.ADFile((int)item.OrderID, item.StoreName, (DateTime)item.BDate, (DateTime)item.EDate, (int)item.Length, (int)item.FileLength);
                fileList.Add(aDfile);
            }

            foreach (ADPublisMeter meter in listMeter)
            {
                Task task = new Task();
                task.MeterMac   = meter.MeterNo.Trim();
                task.TaskDate   = QuShi.getDate();
                task.TaskID     = Guid.NewGuid().ToString(); //用于和指令进行进行关联
                task.TaskState  = TaskState.Waitting;
                task.TaskType   = TaskType.TaskType_发布广告;    //广告文件(GGF)
                task.TaskSource = string.Format("{0}|{1}|{2}", meter.AP_ID, meter.UserID, meter.CompanyID);
                mongo_task.Insert(CollectionNameDefine.TaskCollectionName, task);

                //meter.TaskID = task.TaskID;  //设置任务编号
                //准备指令
                Command       cmd       = new Command();
                DataItem_C109 item_c109 = new DataItem_C109(ser, operatorCode, fileCount, fileList);
                cmd.Identification = ((UInt16)item_c109.IdentityCode).ToString("X2");;
                cmd.ControlCode    = (byte)ControlCode.CYWriteData;//设置参数
                byte[] tmp = item_c109.GetBytes();
                cmd.DataLength  = Convert.ToByte(tmp.Length);
                cmd.DataCommand = MyDataConvert.BytesToHexStr(tmp);  //指令内容
                cmd.Order       = (byte)1;

                cmd.TaskID = task.TaskID;

                CommandDA.Insert(cmd);
            }

            //Command cmd = new Command();
            //byte ser = Convert.ToByte(new Random().Next(0, 255));
            //byte fileid = (byte)adfile.id;//广告命令 只存储文件编号
            //byte[] contentAllBytes = new byte[1];
            //contentAllBytes[0] = fileid;
            ////1.文件发送
            //DataItem_C108 item_C108 = new DataItem_C108(ser, adfile.FileName, 1, 1, 1, 1, contentAllBytes);//
            //cmd.TaskID = task.TaskID;
            //cmd.Identification = ((UInt16)item_C108.IdentityCode).ToString("X2"); ;
            //cmd.ControlCode = (byte)ControlCode.CYWriteData;//设置参数
            //cmd.DataLength = Convert.ToByte(contentAllBytes.Length);
            //cmd.DataCommand = MyDataConvert.BytesToHexStr(item_C108.GetBytes()); ; //文件内容
            //cmd.Order = (byte)1;
            //CommandDA.Insert(cmd);


            //1.文件配置发送指令
            //cmd = new Command();
            //DataItem_C109 item_C109 = new DataItem_C109(Convert.ToByte(new Random().Next(0, 255)), adddfile.FileNO, adddfile.FileName, adddfile.DTStart, adddfile.DTEnd, adddfile.PollTime, adddfile.OpShowStatus, adddfile.OpDeleteStatus);//
            //cmd.TaskID = task.TaskID;
            //cmd.Identification = ((UInt16)item_C109.IdentityCode).ToString("X2");
            //cmd.ControlCode = (byte)ControlCode.CYWriteData;//设置参数
            //cmd.DataLength = Convert.ToByte(item_C109.Length);
            //cmd.DataCommand = MyDataConvert.BytesToHexStr(item_C109.GetBytes());
            //cmd.Order = (byte)(2);
            //CommandDA.Insert(cmd);

            return("");//返回空表示成功
        }