Exemplo n.º 1
0
 private void lbxPlanId_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     List<Plan> lp = td.ListPlan;
     Plan p1 = new Plan();
     foreach(Plan p in lp)
     {
         for (int i = 21; i <= 30;i++ )
         {
             if (!(p.ucId == i) && !lbxPlanId.Items.Contains(Convert.ToByte(i)))
             {
                 
                 p1.ucId = Convert.ToByte(i);
                 p1.ucScheduleId = 1;
                 p1.usMonthFlag = 0;
                 p1.ucWeekFlag = 0;
                 p1.ulDayFlag = 0;
                 break;
             }
         }
         break;    
     }
     if (p1.ucId <= 30 && p1.ucId >=21)
     {
         lbxPlanId.Items.Add(p1.ucId);
         lp.Add(p1);
     }
     
 }
Exemplo n.º 2
0
 /// <summary>
 /// 返回所有的时基表数据
 /// </summary>
 /// <returns></returns>
 public static List<Plan> GetPlan()
 {
     TscData td = (TscData)Application.Current.Properties[Define.TSC_DATA];
     byte[] byt = Udp.recvUdp(td.Node.sIpAddress, Define.GBT_PORT, Define.GET_PLAN);
     if (!CheckGBT(byt, "时基"))
     {
         return null;
     }
     List<Plan> listPlan = new List<Plan>();
     //取得)
     byte[] planArray = new byte[Convert.ToInt32(byt[3])*9];
     Array.Copy(byt, 4, planArray, 0, Convert.ToInt32(byt[3])*9);
     byte[,] twoArray = ByteUtils.oneArray2TwoArray(planArray, Convert.ToInt32(byt[3]), 9);
     Plan plan;
     for (int i = 0; i < Convert.ToInt32(byt[3]); i++)
     {
         plan = new Plan();
         plan.ucId = twoArray[i, 0];
         plan.usMonthFlag = (ushort)((twoArray[i, 1] << 8) + twoArray[i, 2]);//<<是移位符  21930;
         plan.ucWeekFlag = twoArray[i, 3];
         plan.ulDayFlag = (uint)((twoArray[i, 4] << 24) + (twoArray[i, 5] << 16) + (twoArray[i, 6] << 8) + twoArray[i, 7]);
         plan.ucScheduleId = twoArray[i, 8];
         listPlan.Add(plan);
     }
     return listPlan;
 }
Exemplo n.º 3
0
        private void calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
        {
            SelectedDatesCollection sdc = calendar.SelectedDates;
            List<Plan> lp = t.ListPlan;
            Plan pt = new Plan();
            foreach (Plan p in lp)
            {
                if(p.ucId == sldPlanId.Value)
                {
                    p.ucId = Convert.ToByte(sldPlanId.Value);
                    p.ucWeekFlag = 0xfe;
                    uint d = 0;
                    ushort m = 0;
                    p.ucScheduleId = Convert.ToByte(cbxScheduleId.SelectedItem);
                    foreach (DateTime dt in sdc)
                    {
                        int month = dt.Month;
                        int day = dt.Day;

                        d = (uint)((1 << day) | d);
                        m = (ushort)((1 << month) | m);
                        p.usMonthFlag = m;
                        p.ulDayFlag = d;
                    }
                }
                else
                {
                    if (p.ucId >= 1 && p.ucId <= 20)
                    {
                        pt.ucId = Convert.ToByte(sldPlanId.Value);
                        pt.ucWeekFlag = 0xfe;
                        uint d = 0;
                        ushort m = 0;
                        pt.ucScheduleId = Convert.ToByte(cbxScheduleId.SelectedItem);
                        foreach (DateTime dt in sdc)
                        {
                            int month = dt.Month;
                            int day = dt.Day;

                            d = (uint)((1 << day) | d);
                            m = (ushort)((1 << month) | m);
                            pt.usMonthFlag = m;
                            pt.ulDayFlag = d;
                        }
                    }
                    
                    break;
                }
            }
            if(pt.ucId == Convert.ToByte(sldPlanId.Value))
            {
                lp.Add(pt);
            }
            
        }
Exemplo n.º 4
0
 private void lbxPlanId_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     List<Plan> lp = t.ListPlan;
     Plan pt = new Plan();
     foreach(Plan p in lp)
     {
             for(byte i=31; i<=40;i++)
             {
                 if (!lbxPlanId.Items.Contains(i) && !(p.ucId == i))
                 {
                     
                      pt.ucId = i;
                      pt.ucScheduleId = Convert.ToByte(cbxScheduleId.SelectedItem);
                      pt.ucWeekFlag = 254;
                      pt.ulDayFlag = 4294967294;
                      pt.usMonthFlag = 0;
                      break;
                  }
             }
             break;
     }
      if(pt.ucId >=31 && pt.ucId <= 40)
         {
             lbxPlanId.Items.Add(pt.ucId);
             lp.Add(pt);
         }
 }
Exemplo n.º 5
0
        /// <summary>
        /// 将Plan时基转换成byte[]
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public static byte[] Plan2ByteArray(Plan p)
        {
            byte[] b = new byte[Define.PLAN_BYTE_SIZE];
            b[0] = p.ucId;
            //byte[] bm = new byte[2];
            byte[] bmonth = System.BitConverter.GetBytes(p.usMonthFlag);
            b[1] = bmonth[1];
            b[2] = bmonth[0];
            b[3] = p.ucWeekFlag;
            byte[] bday = System.BitConverter.GetBytes(p.ulDayFlag);
            b[4] = bday[3];
            b[5] = bday[2];
            b[6] = bday[1];
            b[7] = bday[0];
            b[8] = p.ucScheduleId;

            return b;
        }