示例#1
2
        protected void Page_Load(object sender, EventArgs e)
        {
            PISDK.PISDK SDK = new PISDK.PISDK();            //Creates new instance of PI SDK
            PI_SERVER = SDK.Servers["esmartserver-pc"];     //Assign PI server to local machine [Piservername]
            PI_SERVER.Open("piadmin");          //Open connection through default user

            //Initialize point data starting at 12:50p
            rpiCONNECT = updatePointValue("SP14VICE_Connection", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            RPM = updatePointValue("SP14VICE_RPM", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FLOW = updatePointValue("SP14VICE_Flow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE = updatePointValue("SP14VICE_Pressure", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            POWER = updatePointValue("F13APA_POWER_BOT1", "12/6/2013 4:50:00 PM", DateTime.Now.ToString());
            TEMP = updatePointValue("SP14VICE_Temp", "3/13/2013 1:05:00 PM", DateTime.Now.ToString());
        }
示例#2
1
        protected void Page_Load(object sender, EventArgs e)
        {
            PISDK.PISDK SDK = new PISDK.PISDK();            //Creates new instance of PI SDK
            PI_SERVER = SDK.Servers["esmartserver-pc"];     //Assign PI server to local machine [Piservername]
            PI_SERVER.Open("piadmin");          //Open connection through default user

            //Initialize point data starting at 12:50p
            rpiCONNECT = updatePointValue("SP14VICE_Connection", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FREQ = updatePointValue("SP14VICE_Freq", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            RPM = updatePointValue("SP14VICE_RPM", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FLOW = updatePointValue("SP14VICE_Flow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            DF = updatePointValue("SP14VICE_DesiredFlow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE = updatePointValue("SP14VICE_Pressure", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            VOLT = updatePointValue("SP14VICE_TopVoltage1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            CURR = updatePointValue("SP14VICE_TopCurrent1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            POWER = updatePointValue("SP14VICE_TopPower1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            TEMP = updatePointValue("SP14VICE_Temp", "3/13/2013 1:05:00 PM", DateTime.Now.ToString());
            USERLOCK = updatePointValue("SP14VICE_Lock", "12/6/2013 4:50:00 PM", DateTime.Now.ToString()); // 1= unlocked, 0 = locked

            COST.value = findCost(120, (float)0.35).ToString(); //Assume: running pump for 4 hrs/day for 30 days; tier 3 pricing during summer ($.35/kWH)
            COST.timestamp = DateTime.Now.ToString();

            setTableValues();
        }
示例#3
1
        protected void Page_Load(object sender, EventArgs e)
        {
            ///// Connect to pi server /////
            PISDK.PISDK SDK = new PISDK.PISDK();            //Creates new instance of PI SDK
            PI_SERVER = SDK.Servers["esmartserver-pc"];     //Assign PI server to local machine [Piservername]
            PI_SERVER.Open("piadmin");          //Open connection through default user

            //Initialize point data starting at 12:50p
            rpiCONNECT = updatePointValue("SP14VICE_Connection", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            RPM = updatePointValue("SP14VICE_RPM", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FLOW = updatePointValue("SP14VICE_Flow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE = updatePointValue("SP14VICE_Pressure", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            POWER = updatePointValue("F13APA_POWER_BOT1", "12/6/2013 4:50:00 PM", DateTime.Now.ToString());
            USERLOCK = updatePointValue("SP14VICE_Lock", "12/6/2013 4:50:00 PM", DateTime.Now.ToString()); // 1= unlocked, 0 = locked

            if (USERLOCK.value == "1")
            {
                lockoutdisp.InnerHtml = "OFF - UNLOCKED";
            }
            else if (USERLOCK.value == "0")
            {
                lockoutdisp.InnerHtml = "ON - LOCKED";
            }
        }
示例#4
0
    void CalculatePoint(float _range, float width, Transform _myPos)
    {
        float            angle      = (width * 180) / (Mathf.PI * _range);
        int              count      = (int)(360 / angle);
        Transform        _tmpPpoint = null;
        Quaternion       q          = Quaternion.identity;
        List <pointData> _tmpLlist  = new List <pointData>();
        pointData        tmpData    = null;

        for (int i = 0; i < count; i++)
        {
            _tmpPpoint = new GameObject(i + "Point").transform;
            if (_myPos == null)
            {
                _tmpPpoint.SetParent(pointParent);
            }
            else
            {
                _tmpPpoint.SetParent(_myPos);
            }
            _tmpPpoint.position = Vector3.forward * (_range + extraRange);
            q = Quaternion.AngleAxis(angle * i, Vector3.up);
            _tmpPpoint.position = q * _tmpPpoint.position + transform.position;
            tmpData             = new pointData(_tmpPpoint, q, _range + extraRange);
            _tmpLlist.Add(tmpData);
            keysList.Add(tmpData);
        }
        atkPoints.Add(_range, _tmpLlist);
    }
示例#5
0
        //启动监听
        private void th1()
        {
            byte[]     bytes  = new byte[1024];
            pointData  pd     = new pointData();
            IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
            EndPoint   Remote = (EndPoint)(sender);

            while (true)
            {
                try
                {
                    Thread.Sleep(10);
                    addText("主线程开始\r\n\r\n");
                    bytes     = new byte[1000];
                    pd        = new pointData();
                    pd.length = server.ReceiveFrom(bytes, ref Remote);
                    addText("主线程接收到了一组数据\r\n\r\n");
                    pd.remote = Remote;
                    pd.recv   = bytes;
                    //收到数据后启用一个新的线程处理数据
                    Thread clientThread = new Thread(new ParameterizedThreadStart(ThreadFunc));
                    clientThread.IsBackground = true;
                    clientThread.Start(pd);
                    label5.Text = string.Format("当前连接数:{0}", listViewUser.Items.Count);
                }
                catch
                {
                    // addText(ex.ToString());
                }
            }
        }
示例#6
0
 protected void Button1_Click(object sender, EventArgs e)
 {
     rpiCONNECT = updatePointValue("SP14VICE_Connection", rpiCONNECT.timestamp, DateTime.Now.ToString());
     RPM        = updatePointValue("SP14VICE_RPM", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
     FLOW       = updatePointValue("SP14VICE_Flow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
     PRESSURE   = updatePointValue("SP14VICE_Pressure", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
 }
示例#7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PISDK.PISDK SDK = new PISDK.PISDK();        //Creates new instance of PI SDK
            PI_SERVER = SDK.Servers["esmartserver-pc"]; //Assign PI server to local machine [Piservername]
            PI_SERVER.Open("piadmin");                  //Open connection through default user

            //Initialize point data starting at 12:50p
            rpiCONNECT = updatePointValue("SP14VICE_Connection", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            RPM        = updatePointValue("SP14VICE_RPM", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FLOW       = updatePointValue("SP14VICE_Flow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE   = updatePointValue("SP14VICE_Pressure", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
        }
示例#8
0
    public static List <pointData> createList(int numPoints)
    {
        var result = new List <pointData>();

        for (int i = 0; i < numPoints; i++)
        {
            var data = new pointData();
            data.f       = Vector3.zero;
            data.r       = Vector3.zero;
            data.n       = 0;
            data.visited = new HashSet <int>();
            data.visited.Add(-1);
            result.Add(data);
        }
        return(result);
    }
示例#9
0
        public pointData updatePointValue(string tagName, string start, string end)
        {
            PISDK.PIValues PIconnect = new PISDK.PIValues();  //Create new instance of PI value
            PIconnect = PI_SERVER.PIPoints[tagName].Data.RecordedValues(start, end);
            pointData temp = new pointData();

            foreach (PIValue val in PIconnect)
            {
                if (val.Value as DigitalState == null) // if point has data, Digital state means point has no data
                {
                    object objtemp = val.Value;
                    temp.value     = objtemp.ToString();
                    objtemp        = val.TimeStamp.LocalDate;
                    temp.timestamp = objtemp.ToString();
                }
            }
            lastValueTime = end;
            return(temp);
        }
示例#10
0
        public pointData getPointList(string tagName, string start, string end)
        {
            PISDK.PIValues PIconnect = new PISDK.PIValues();  //Create new instance of PI value
            PIconnect = PI_SERVER.PIPoints[tagName].Data.RecordedValues(start, end);
            pointData temp = new pointData();

            foreach (PIValue val in PIconnect)
            {
                if (val.Value as DigitalState == null) // if point has data, Digital state means point has no data
                {
                    object objtemp = val.Value;
                    temp.value = objtemp.ToString();
                    objtemp = val.TimeStamp.LocalDate;
                    temp.timestamp = objtemp.ToString();
                }
            }
            lastValueTime = end;
            return temp;
        }
示例#11
0
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            rpiCONNECT = updatePointValue("SP14VICE_Connection", rpiCONNECT.timestamp, DateTime.Now.ToString());
            USERLOCK   = updatePointValue("SP14VICE_Lock", "3/6/2014 1:20:00 PM", DateTime.Now.ToString()); // 1= unlocked, 0 = locked

            RPM      = updatePointValue("SP14VICE_RPM", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            FREQ     = updatePointValue("SP14VICE_Freq", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            FLOW     = updatePointValue("SP14VICE_Flow", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            DF       = updatePointValue("SP14VICE_DesiredFlow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE = updatePointValue("SP14VICE_Pressure", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            TEMP     = updatePointValue("SP14VICE_Temp", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());

            VOLT  = updatePointValue("SP14VICE_TopVoltage1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            CURR  = updatePointValue("SP14VICE_TopCurrent1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            POWER = updatePointValue("SP14VICE_TopPower1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());

            COST.value     = findCost(120, (float)0.35).ToString(); //Assume: running pump for 4 hrs/day for 30 days; tier 3 pricing during summer ($.35/kWH)
            COST.timestamp = DateTime.Now.ToString();

            setTableValues();
        }
示例#12
0
        public int[] getPointList(string tagName, string start, string end)
        {
            PISDK.PIValues PIconnect = new PISDK.PIValues();  //Create new instance of PI value
            PIconnect = PI_SERVER.PIPoints[tagName].Data.RecordedValues(start, end);
            pointData temp = new pointData();
            int counter = 0;
            int[] PIlist = new int[60];

            foreach (PIValue val in PIconnect)
            {
                if (val.Value as DigitalState == null) // if point has data, Digital state means point has no data
                {
                    object objtemp = val.Value;
                    temp.value = objtemp.ToString();
                    objtemp = val.TimeStamp.LocalDate;
                    temp.timestamp = objtemp.ToString();
                    PIlist[counter] = int.Parse(temp.value); // add each PI point to the list
                    counter++;
                }
            }
            lastValueTime = end;
            return PIlist;
        }
示例#13
0
 public int[] getPointList(string tagName, string start, string end)
 {
     PISDK.PIValues PIconnect = new PISDK.PIValues();  //Create new instance of PI value
     PIconnect = PI_SERVER.PIPoints[tagName].Data.RecordedValues(start, end);
     pointData temp = new pointData();
     int counter = 0;
     int[] PIlist = new int[60];
     
     foreach (PIValue val in PIconnect)
     {
         if (val.Value as DigitalState == null) // if point has data, Digital state means point has no data
         {
             object objtemp = val.Value;
             temp.value = objtemp.ToString();
             objtemp = val.TimeStamp.LocalDate;
             temp.timestamp = objtemp.ToString();
             PIlist[counter] = int.Parse(temp.value); // add each PI point to the list
             counter++;
         }
     }
     lastValueTime = end;
     return PIlist;
 }
示例#14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PISDK.PISDK SDK = new PISDK.PISDK();        //Creates new instance of PI SDK
            PI_SERVER = SDK.Servers["esmartserver-pc"]; //Assign PI server to local machine [Piservername]
            PI_SERVER.Open("piadmin");                  //Open connection through default user

            //Initialize point data starting at 12:50p
            rpiCONNECT = updatePointValue("SP14VICE_Connection", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FREQ       = updatePointValue("SP14VICE_Freq", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            RPM        = updatePointValue("SP14VICE_RPM", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FLOW       = updatePointValue("SP14VICE_Flow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            DF         = updatePointValue("SP14VICE_DesiredFlow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE   = updatePointValue("SP14VICE_Pressure", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            VOLT       = updatePointValue("SP14VICE_TopVoltage1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            CURR       = updatePointValue("SP14VICE_TopCurrent1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            POWER      = updatePointValue("SP14VICE_TopPower1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            TEMP       = updatePointValue("SP14VICE_Temp", "3/13/2013 1:05:00 PM", DateTime.Now.ToString());
            USERLOCK   = updatePointValue("SP14VICE_Lock", "12/6/2013 4:50:00 PM", DateTime.Now.ToString()); // 1= unlocked, 0 = locked

            COST.value     = findCost(120, (float)0.35).ToString();                                          //Assume: running pump for 4 hrs/day for 30 days; tier 3 pricing during summer ($.35/kWH)
            COST.timestamp = DateTime.Now.ToString();

            setTableValues();
        }
示例#15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ///// Connect to pi server /////
            PISDK.PISDK SDK = new PISDK.PISDK();        //Creates new instance of PI SDK
            PI_SERVER = SDK.Servers["esmartserver-pc"]; //Assign PI server to local machine [Piservername]
            PI_SERVER.Open("piadmin");                  //Open connection through default user

            //Initialize point data starting at 12:50p
            rpiCONNECT = updatePointValue("SP14VICE_Connection", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            RPM        = updatePointValue("SP14VICE_RPM", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            FLOW       = updatePointValue("SP14VICE_Flow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE   = updatePointValue("SP14VICE_Pressure", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            POWER      = updatePointValue("F13APA_POWER_BOT1", "12/6/2013 4:50:00 PM", DateTime.Now.ToString());
            USERLOCK   = updatePointValue("SP14VICE_Lock", "12/6/2013 4:50:00 PM", DateTime.Now.ToString()); // 1= unlocked, 0 = locked

            if (USERLOCK.value == "1")
            {
                lockoutdisp.InnerHtml = "OFF - UNLOCKED";
            }
            else if (USERLOCK.value == "0")
            {
                lockoutdisp.InnerHtml = "ON - LOCKED";
            }
        }
示例#16
0
        //功能函数
        private void ThreadFunc(object obj)
        {
            int index = 0;

            try
            {
                Thread.Sleep(10);
                byte[]    bytes = new byte[1024];
                pointData pd    = (pointData)obj;
                addText(string.Format("子线程收到数据: {0}\r\n", pd.remote.ToString()));
                string str = Encoding.GetEncoding("GB2312").GetString(pd.recv, 0, pd.length);
                addText(string.Format("Message: {0}\r\n", str));
                DeviceHelper dh = new DeviceHelper();
                //反序列化
                dh = Helper.GetJson(str);

                //获取设备信息
                ListViewItem lvi = Helper.GetItem(listViewUser, dh.userid, dh.deviceid);
                addText("userid:" + dh.userid + "\r\n");

                //获取设备index
                index = Helper.GetIndex(listViewUser, dh.userid, dh.deviceid);
                addText("index:" + index.ToString() + "\r\n");
                if (dh.type != null)
                {
                    switch (dh.type)
                    {
                    case "identity":
                        #region 硬件IP绑定
                        addText("identity\r\n");
                        //判断数据库中是否存在该用户ID
                        if (true)
                        {
                            //查看是否已存在该ID号
                            if (index >= 0)
                            {
                                //直接删除
                                listViewUser.Items.RemoveAt(index);
                            }
                            //添加
                            lvi = new ListViewItem();
                            lvi = Helper.listAdd(dh.userid, dh.deviceid, pd.remote.ToString());
                            listViewUser.Items.Add(lvi);

                            bytes = Encoding.GetEncoding("GB2312").GetBytes("OK");
                            server.SendTo(bytes, pd.remote);
                        }
                        //else
                        //{
                        //    bytes = Encoding.GetEncoding("GB2312").GetBytes("ID号不正确!");
                        //    server.SendTo(bytes, pd.remote);
                        //}
                        break;

                        #endregion
                    case "set":
                        #region 网路端控制硬件请求
                        addText("set\r\n");
                        //将请求转发到对应的设备IP地址
                        dh.type = "response";
                        if (index < 0)
                        {
                            dh.state = "设备不在线!";
                            //返回设备不在线
                            bytes = Encoding.GetEncoding("GB2312").GetBytes(Helper.SetJson(dh));
                            server.SendTo(bytes, pd.remote);
                        }
                        else
                        {
                            //将数据列表的数据清空,防止设备端误操作
                            listViewUser.Items[lvi.Index].SubItems[3].Text = string.Empty;
                            //将数据转发到设备端
                            try
                            {
                                sendToUdp(lvi.SubItems[2].Text, str);
                                //等待返回数据,10ms查一次,共等待5s
                                int tNum = 0;
                                while (tNum < int.Parse(textBoxTimeOut.Text))
                                {
                                    Thread.Sleep(10);
                                    // addText(tNum.ToString() + "\r\n");
                                    tNum++;
                                    //查看是否有数据
                                    lvi = new ListViewItem();
                                    lvi = Helper.GetItem(listViewUser, dh.userid, dh.deviceid);
                                    //addText(lvi.SubItems[3].Text.Length.ToString() + "\r\n");
                                    if (lvi.SubItems[3].Text.Length > 0)    //有返回数据
                                    {
                                        sendToUdp(pd.remote, lvi.SubItems[3].Text);
                                        addText("给网络端回复:" + pd.remote + "\r\n");
                                        addText(lvi.SubItems[3].Text + "\r\n");
                                        //清空数据
                                        listViewUser.Items[lvi.Index].SubItems[3].Text = string.Empty;
                                        //Thread.Sleep(10);
                                        //给设备返回OK
                                        //sendToUdp(lvi.SubItems[2].Text, "OK");
                                        //addText("OK\r\n");
                                        tNum = 501;
                                        Thread.Sleep(10);
                                    }
                                }
                                if (tNum == 200)    //超时
                                {
                                    //给网络返回超时
                                    //超时
                                    dh.state = "设备响应超时!";
                                    bytes    = Encoding.GetEncoding("GB2312").GetBytes(Helper.SetJson(dh));
                                    server.SendTo(bytes, pd.remote);
                                    addText("设备响应超时!\r\n");
                                }
                            }
                            catch
                            {
                                dh.state = "设备与服务器连接失效!";
                                sendToUdp(pd.remote, Helper.SetJson(dh));
                            }
                        }
                        break;

                        #endregion
                    case "get":
                        #region 网络端获取设备状态
                        addText("get\r\n");
                        //将请求转发到对应的设备IP地址
                        dh.type = "response";
                        if (index < 0)
                        {
                            dh.state = "设备不在线!";
                            //返回设备不在线
                            bytes = Encoding.GetEncoding("GB2312").GetBytes(Helper.SetJson(dh));
                            server.SendTo(bytes, pd.remote);
                        }
                        else
                        {
                            //将数据列表的数据清空,防止设备端误操作
                            listViewUser.Items[lvi.Index].SubItems[3].Text = string.Empty;
                            //将数据转发到设备端
                            try
                            {
                                sendToUdp(lvi.SubItems[2].Text, str);
                                //等待返回数据,10ms查一次,共等待5s
                                int tNum = 0;
                                while (tNum < int.Parse(textBoxTimeOut.Text))
                                {
                                    Thread.Sleep(10);
                                    addText(tNum.ToString() + "\r\n");
                                    tNum++;
                                    //查看是否有数据
                                    lvi = new ListViewItem();
                                    lvi = Helper.GetItem(listViewUser, dh.userid, dh.deviceid);
                                    addText(lvi.SubItems[3].Text.Length.ToString() + "\r\n");
                                    if (lvi.SubItems[3].Text.Length > 0)    //有返回数据
                                    {
                                        sendToUdp(pd.remote, lvi.SubItems[3].Text);
                                        addText("给网络端回复:" + pd.remote + "\r\n");
                                        addText(lvi.SubItems[3].Text + "\r\n");
                                        //清空数据
                                        listViewUser.Items[lvi.Index].SubItems[3].Text = string.Empty;
                                        //Thread.Sleep(10);
                                        //给设备返回OK
                                        //sendToUdp(lvi.SubItems[2].Text, "OK");
                                        //addText("OK\r\n");
                                        tNum = 501;
                                        Thread.Sleep(10);
                                    }
                                }
                                if (tNum == int.Parse(textBoxTimeOut.Text))    //超时
                                {
                                    //给网络返回超时
                                    //超时
                                    dh.state = "设备响应超时!";
                                    bytes    = Encoding.GetEncoding("GB2312").GetBytes(Helper.SetJson(dh));
                                    server.SendTo(bytes, pd.remote);
                                    addText("设备响应超时!\r\n");
                                }
                            }
                            catch
                            {
                                dh.state = "设备与服务器连接失效!";
                                sendToUdp(pd.remote, Helper.SetJson(dh));
                            }
                        }
                        break;

                        #endregion
                    case "response":
                        #region 设备端响应网络请求
                        addText("response\r\n");
                        //查看是否应经绑定到列表
                        int i = Helper.GetIndex(listViewUser, dh.userid, dh.deviceid);
                        if (i >= 0)
                        {
                            //写入数据
                            listViewUser.Items[i].SubItems[3].Text = str;
                            //给设备返回OK
                            sendToUdp(pd.remote, "ok");
                            addText("ok\r\n");
                        }
                        else
                        {
                            sendToUdp(pd.remote, "error");
                            addText("error\r\n");
                        }
                        break;

                        #endregion
                    case "upload":
                        #region 设备上传数据(传感器)
                        addText("upload\r\n");

                        //判断数据库中是否存在该用户ID和设备ID
                        if (true)
                        {
                            //存入数据库
                            userUpdate(dh.userid, dh.deviceid, dh.state);

                            bytes = Encoding.GetEncoding("GB2312").GetBytes("ok");
                            server.SendTo(bytes, pd.remote);
                        }
                        break;

                        #endregion
                    default:
                        addText("default\r\n");
                        bytes = Encoding.GetEncoding("GB2312").GetBytes("无效指令!");
                        server.SendTo(bytes, pd.remote);
                        break;
                    }
                }
                else
                {
                    server.SendTo(Encoding.GetEncoding("GB2312").GetBytes("数据格式不正确!\r\n" + "详细说明请登录www.geek-iot.com"), pd.remote);
                }
            }
            catch (Exception ex)
            {
                addText(ex.ToString() + "\r\n");
            }
            addText("执行完成\r\n\r\n");
        }
示例#17
0
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            rpiCONNECT = updatePointValue("SP14VICE_Connection", rpiCONNECT.timestamp, DateTime.Now.ToString());
            USERLOCK = updatePointValue("SP14VICE_Lock", "3/6/2014 1:20:00 PM", DateTime.Now.ToString()); // 1= unlocked, 0 = locked

            RPM = updatePointValue("SP14VICE_RPM", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            FREQ = updatePointValue("SP14VICE_Freq", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            FLOW = updatePointValue("SP14VICE_Flow", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            DF = updatePointValue("SP14VICE_DesiredFlow", "2/27/2014 12:50:00 PM", DateTime.Now.ToString());
            PRESSURE = updatePointValue("SP14VICE_Pressure", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            TEMP = updatePointValue("SP14VICE_Temp", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());

            VOLT = updatePointValue("SP14VICE_TopVoltage1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            CURR = updatePointValue("SP14VICE_TopCurrent1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());
            POWER = updatePointValue("SP14VICE_TopPower1", "3/6/2014 1:20:00 PM", DateTime.Now.ToString());

            COST.value = findCost(120, (float)0.35).ToString(); //Assume: running pump for 4 hrs/day for 30 days; tier 3 pricing during summer ($.35/kWH)
            COST.timestamp = DateTime.Now.ToString();

            setTableValues();
        }