ZigbeeApp/Shared/Phone/ZigBee/Common/OwnCodes.cs
New file
@@ -0,0 +1,243 @@
using System;
using System.Linq;
namespace ZigBee.Droid.Common
{
    public class OwnCodes
    {
        /// <summary>
        /// 将RGB转换为颜色。。。
        /// </summary>
        /// <param name="R"></param>
        /// <param name="G"></param>
        /// <param name="B"></param>
        /// <returns></returns>
        private uint GetColorByRGB(byte R, byte G, byte B)
        {
            return (uint)(0xFF000000 + R * 256 * 256 + G * 256 + B);
        }
        #region set/get
        [Newtonsoft.Json.JsonIgnore]
        /// <summary>
        /// 开光状态:0=关,1=开,
        /// <para>0:</para>
        /// </summary>
        public int OnOffStatus
        {
            get
            {
                //if (DeviceStatusReport != null && DeviceStatusReport.CluterID == 6)
                //{
                //    var attriButeList = DeviceStatusReport.AttriBute;
                //    foreach (var attriBute1 in attriButeList)
                //    {
                //        return attriBute1.AttriButeData;
                //    }
                //}
                return 0;
            }
            set
            {
                //if (DeviceStatusReport != null && DeviceStatusReport.CluterID == 6)
                //{
                //    var attriButeList = DeviceStatusReport.AttriBute;
                //    foreach (var attriBute1 in attriButeList)
                //    {
                //        attriBute1.AttriButeData = value;
                //    }
                //}
            }
        }
        #endregion
        #region json格式,发数据中列表有数组的情况
        //public static void hdlButtonSetBind(ZigBee.Device.ZbGateway gateway, ZigBee.Device.HDLbutton.BindListDeviceInfo bindListObj, string buttonMacAddr, int epoint, int buttonMode, int buttonType)
        //{
        //    var jobject = new JObject { { "DeviceAddr", buttonMacAddr }, { "Epoint", epoint }, { "Cluster_ID", 64528 }, { "Command", 6 } };
        //    var bindList = new JArray{
        //        new JObject {{ "BindType", bindListObj.BindType},{ "BindMacAddr", bindListObj.BindMacAddr},{ "BindEpoint", bindListObj.BindEpoint }}
        //    };
        //    var data = new JObject { { "ButtonEpoint", epoint },
        //        { "ButtonMode", buttonMode },{ "ButtonType", buttonType },
        //        { "BindList", bindList }
        //     };
        //    jobject.Add("Data", data);
        //    gateway.Send(("hdlButton/SetBind"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
        #endregion
        #region Int 与byte的运算
        // (1)
        //int count = 5;
        //int homeId = 112;
        // byte[] byteHomeId = new byte[4];
        //for (int i = 0; i < byteHomeId.Length; i++)
        //{
        //    byteHomeId[i] = (byte)((homeId >> (i * 8)) & 0xFF);
        //}
        //byteHomeId[0] = (byte)((homeId >> 24) & 0xff);//H
        //byteHomeId[1] = (byte)((homeId >> 16) & 0xff);
        //byteHomeId[2] = (byte)((homeId >> 8) & 0xff);
        //byteHomeId[3] = (byte)(homeId & 0xff);//L
        //(2)、
        // int homeID = (bytes[7] & 0xff) << 24 | (bytes[8] & 0xff) << 16 | (bytes[9] & 0xff) << 8 | (bytes[10] & 0xff);
        #endregion
        #region 进度显示
        //Application.RunOnMainThread(() =>
        //{
        //    int pro = (int)(index * 1.0 / backuplist.Count * 100);
        //    MainPage.Loading.Text = pro.ToString() + "%";
        //};
        #endregion
        /// <summary>
        /// 方式一:使用lambda表达式筛选过滤掉数组中空字符串
        /// </summary>
        /// <param name="args"></param>
        static void FilterOutEmptyStrings1()
        {
            string[] strArray = { "", "111", "", "222", "", "333" };
            Console.WriteLine("输出带有空字符串的数组:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.WriteLine("-------------------------------------------");
            //使用lambda表达式过滤掉空字符串
            strArray = strArray.Where(s => !string.IsNullOrEmpty(s)).ToArray();
            Console.WriteLine("输出过滤掉空字符串的数组:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.Read();
        }
        /// <summary>
        /// 方式二:使用泛型集合List<string>的ForEach循环,过滤获取正确的字符串,重新添加到新字符串数组中
        /// </summary>
        /// <param name="args"></param>
        public void FilterOutEmptyStrings2()
        {
            string[] strArray = { "", "111", "", "222", "", "333" };
            /*
             *使用List泛型集合的ForEach方法循环获取非空空字符串
             *这里使用了匿名方法
             */
            var list = new System.Collections.Generic.List<string>();
            strArray.ToList().ForEach(
                (s) =>
                {
                    if (string.IsNullOrEmpty(s))
                    {
                        list.Add(s);
                    }
                });
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.Read();
        }
        /// <summary>
        /// 使用传统循环方式来排除和删除字符串数组中的空字符串
        /// </summary>
        public void FilterOutEmptyStrings3()
        {
            string[] strArray = { "", "111", "", "222", "", "333" };
            Console.WriteLine("输出带有空字符串的数组:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.WriteLine("-------------------------------------------");
            //使用循环排除和过滤掉空字符串
            var list = new System.Collections.Generic.List<string>();
            foreach (string s in strArray)
            {
                if (!string.IsNullOrEmpty(s))
                {
                    list.Add(s);
                }
            }
            strArray = list.ToArray();
            Console.WriteLine("输出过滤掉空字符串的数组:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.Read();
        }
        #region &GPS位置变化事件
        /// <summary>
        /// GPS位置变化事件
        /// </summary>
        //public static Action<double, double> LocationAction;
        //LocationAction = (arg1, arg2) => {
        //    LocationAction = null;
        //    System.Threading.Tasks.Task.Run(() => {
        //        while (true) {
        //            try {
        //                Shared.SimpleControl.CommonPage.AirQuality = new service.hdlcontrol.com_WebServiceAirQuality.WebServiceAirQuality().GetAirQuality(arg2.ToString (), arg1.ToString ());
        //                if (Shared.SimpleControl.CommonPage.AirQuality != null)
        //                    break;
        //            } catch { }
        //        }
        //        Shared.Application.RunOnMainThread(() => {
        //            if (CommonPage.RefreshAir != null)
        //                CommonPage.RefreshAir();
        //        } );
        //    } );
        //} ;
        #endregion
        #region 电话号码写法
        // EditText etPhoneNumber = new EditText()
        // {
        //     X = btnPhoneZone.Right + Application.GetRealWidth(10),
        //     Width = Application.GetRealWidth(410),
        //     TextAlignment = TextAlignment.Center,
        // };
        // phoneNumView.AddChidren(etPhoneNumber);
        //etPhoneNumber.TextChangeEventHandler += (sender, e) => {
        //    if (e.Length > 11)
        //    {
        //        etPhoneNumber.Text = e.Remove(11);
        //    }
        //    else if (e.Length == 11)
        //    {
        //        var reg = new Regex("^[1]+[3,5,7,8]+\\d{9}");
        //        var mFalg = reg.Match(etPhoneNumber.Text.Trim());
        //        if (mFalg.Success)
        //        {
        //            btnNext.IsSelected = btnNext.Enable = true;
        //        }
        //        else
        //        {
        //           new Tip() { CloseTime = 3, Text = "号码错误", Direction = AMPopTipDirection.Down } .Show(etPhoneNumber);
        //        }
        //    }
        //    else if (e.Length< 11)
        //    {
        //        btnNext.IsSelected = btnNext.Enable = false;
        //    }
        //} ;
        #endregion
        #region 进度显示
        #endregion
    }
}