using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FLY.Thick.BulkDataModule;
using FLY.Thick.Base.Server.OBJProxy;
using FLY.Thick.Blowing.OBJ_INTERFACE;
using FLY.OBJComponents.Server.OBJProxy;
using FLY.OBJComponents.Server;

namespace FLY.Thick.Blowing.Server.OBJProxy
{
    public class OBJProxy
    {
        BulkDataService_OBJProxy bulkDataOBJProxy;
        BlowingFixProfile_OBJProxy profileOBJProxy;
        Curve_OBJProxy curveOBJProxy;
        Initparam_OBJProxy initparamOBJProxy;
        DynArea_OBJProxy dynAreaOBJProxy;
        FlyAD_OBJProxy flyADOBJProxy;
        Fix_OBJProxy fixOBJProxy;
        FLY.OBJComponents.Server.OBJProxy.WarningSystem_OBJProxy warnSystemOBJProxy;

        JsonDist_OBJProxy jsonDist_OBJProxy;



        BlowingFix_OBJProxy blowingOBJProxy;
        BlowingDetect_OBJProxy bDetectOBJProxy;
        ScanWarning_OBJProxy scanWarningOBJProxy;
        BulkDB_OBJProxy bulkDbOBJProxy;

        public OBJProxy(int objsys_idx, TDGage gage)
        {
            TDGage mGage = gage;
            bulkDataOBJProxy = new BulkDataService_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.BULK_ID, mGage.mBulk);

            profileOBJProxy = new BlowingFixProfile_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.BFPROFILE_ID, mGage.mProfile);

            curveOBJProxy = new Curve_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.CURVE_ID, mGage.mCurve);

            initparamOBJProxy = new Initparam_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.INITPARAM_ID, mGage.mInitParam);

            dynAreaOBJProxy = new DynArea_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.DYNAREA_ID, mGage.mDynArea);

            flyADOBJProxy = new FlyAD_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.FLYAD_ID, mGage.mFlyAD, mGage.AD2Thick);

            fixOBJProxy = new Fix_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.FIX_ID, mGage.mGMFix);



            blowingOBJProxy = new BlowingFix_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.RENZIJIA_ID, mGage.mGMRenZiJiaFix);

            bDetectOBJProxy = new BlowingDetect_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.BDETECT_ID, mGage.mGMRenZiJiaFix.mPDetect);

            scanWarningOBJProxy = new ScanWarning_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.SCANWARNING_ID, mGage.mScanWarning);

            bulkDbOBJProxy = new BulkDB_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.BULKDB_ID, mGage.mBulkDb);

            warnSystemOBJProxy = new FLY.OBJComponents.Server.OBJProxy.WarningSystem_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.WARNING_OBJ_ID, mGage.mWarning);

            jsonDist_OBJProxy = new JsonDist_OBJProxy(objsys_idx, OBJ_INTERFACE_ID.JSONDIST_OBJ_ID, new JsonDist());

            blowingOBJProxy.CurrObjSys.Start_Conn_Server(
                mGage.mSysParam.LocalEP,
                bulkDataOBJProxy.ID);
        }
    }
}