DynAreaService.cs 6.62 KB
Newer Older
潘栩锋's avatar
潘栩锋 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FObjBase;
using FLY.Thick.Base.Common;
using FLY.Thick.Base.OBJ_INTERFACE;
using FLY.Thick.Base.IService;

namespace FLY.Thick.Base.Client
{
    public class DynAreaService:FObj
    {
        public DynArea mDynArea;
        private UInt32 mServerID;
        private IFConn mConn;

        public DynAreaService()
        {
            mServerID = DYNAREA_OBJ_INTERFACE.ID;
            mDynArea = new DynArea();
        }

        #region IFObj 成员
        public override void Dispose()
        {
            CurrObjSys.ObjRemove(
                this, mConn);
        }
        public override void ConnectNotify(IFConn from)
        {
            mDynArea.ServerIsConnected = from.IsConnected;
            mConn = from;

            if (from.IsConnected) 
            {
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_ADPOS);
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_SCANINFO);
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_CONTROLLER_STATE);
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_PROFILE);
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_BOLTMAP);
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_SYSTEM);
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_IO);
                CurrObjSys.GetValueEx(mConn, mServerID, ID, DYNAREA_OBJ_INTERFACE.GET_POSITION2);

                CurrObjSys.SenseConfigEx(mConn, mServerID, ID,0xffffffff, SENSE_CONFIG.ADD);
            }
        }

        public override void PushGetValue(IFConn from, uint srcid, ushort memid, byte[] infodata)
        {
            PushInfo(from,srcid,memid,infodata);
        }
        public override void PushInfo(IFConn from, uint srcid, ushort infoid, byte[] infodata)
        {
            switch (infoid)
            {
                case DYNAREA_OBJ_INTERFACE.PUSH_ADPOS:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_GetADPos pack = new DYNAREA_OBJ_INTERFACE.Pack_GetADPos();
                        if (!pack.TryParse(infodata))
                            return;
                        mDynArea.AD = pack.ad;
                        mDynArea.Thick = pack.thick;
                        mDynArea.Position = pack.position;
                        mDynArea.BoltIndex = pack.boltIndex;
                    } break;
                case DYNAREA_OBJ_INTERFACE.PUSH_SCANINFO:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_GetScanInfo pack = new DYNAREA_OBJ_INTERFACE.Pack_GetScanInfo();
                        if (!pack.TryParse(infodata))
                            return;
                        //TODO
                        for (int i = 0; i < 3; i++)
                        {
                            mDynArea.SampleAD[i] = pack.sampleAD[i];
                        }

                        mDynArea.TempState = pack.tempState;

                        mDynArea.DataValid = pack.datavalid;

                        mDynArea.RollDown = pack.rolldown;

                        mDynArea.Direction = pack.direction;

                        mDynArea.Width = pack.width;

                        mDynArea.FilmVelocity = pack.filmVelocity;

                        mDynArea.Velocity = pack.velocity;
                    } break;
                case DYNAREA_OBJ_INTERFACE.PUSH_PROFILE:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_GetProfile pack = new DYNAREA_OBJ_INTERFACE.Pack_GetProfile();
                        if (!pack.TryParse(infodata))
                            return;
                        mDynArea.ProductName = pack.ProductName;
                        mDynArea.Target = pack.Target;
                        mDynArea.Alarm = pack.Alarm;
                        mDynArea.DataBoltNoBegin = pack.DataBoltNoBegin;
                        mDynArea.DataBoltNoEnd = pack.DataBoltNoEnd;
                        mDynArea.ScanBoltNoBegin = pack.ScanBoltNoBegin;
                        mDynArea.ScanBoltNoEnd = pack.ScanBoltNoEnd;
                        mDynArea.Comp = pack.Comp;
                        mDynArea.Shift = pack.Shift;
                    } break;
                case DYNAREA_OBJ_INTERFACE.PUSH_SYSTEM:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_GetSystem pack = new DYNAREA_OBJ_INTERFACE.Pack_GetSystem();
                        if (!pack.TryParse(infodata))
                            return;
                        mDynArea.FLYADIsConnect = pack.isConnect;
                        mDynArea.SecuteLock = pack.secuteLock;
                        mDynArea.Hrs = pack.hrs;
                        mDynArea.Version = pack.version;
                        mDynArea.GageType = pack.gagetype;
                    } break;
                case DYNAREA_OBJ_INTERFACE.PUSH_BOLTMAP:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_GetBoltmap pack = new DYNAREA_OBJ_INTERFACE.Pack_GetBoltmap();
                        if (!pack.TryParse(infodata))
                            return;
                        mDynArea.NBolts = pack.NBolts;
                        mDynArea.FirstBoltNo = pack.FirstBoltNo;
                    } break;
                case DYNAREA_OBJ_INTERFACE.PUSH_IO:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_GetIO pack = new DYNAREA_OBJ_INTERFACE.Pack_GetIO();
                        if (!pack.TryParse(infodata))
                            return;
                        mDynArea.IStatus = pack.iStatus;
                        mDynArea.OStatus = pack.oStatus;
                    } break;
                case DYNAREA_OBJ_INTERFACE.PUSH_CONTROLLER_STATE:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_GetControllerState pack = new DYNAREA_OBJ_INTERFACE.Pack_GetControllerState();
                        if (!pack.TryParse(infodata))
                            return;
                        mDynArea.ControllerState = pack.controller_state;
                        mDynArea.AutoScanCounter = pack.autoscan_counter;
                    } break;
                case DYNAREA_OBJ_INTERFACE.PUSH_POSITION2:
                    {
                        DYNAREA_OBJ_INTERFACE.Pack_Position2 pack = new DYNAREA_OBJ_INTERFACE.Pack_Position2();
                        if (!pack.TryParse(infodata))
                            return;
                        mDynArea.Position2 = pack.position;
                    }break;
            }
        }
        #endregion


    }
}