public void RunScenario(uint ScenarioNumber)
 {
     m_Zibase.RunScenario((int)ScenarioNumber);
     return;
     //              Old Method
     ZBClass class2 = new ZBClass();
     class2.header = class2.GetBytesFromString("ZSIG");
     class2.command = 11;
     class2.alphacommand = class2.GetBytesFromString("SendCmd");
     class2.label_base = class2.GetBytesFromString("");
     class2.command_text = class2.GetBytesFromString("");
     class2.serial = 0;
     class2.param1 = 1;
     class2.param2 = ScenarioNumber;
     class2.param3 = 0;
     class2.param4 = 0;
     byte[] rBuff = null;
     byte[] bytes = class2.GetBytes();
     ZibaseDll.ZBClass zb = new ZibaseDll.ZBClass();
     string ipAddress = LongToIP(m_ZibaseInfo.lIpAddress);
     zb.UDPDataTransmit(bytes, ref rBuff, ipAddress, 0xc34f);
 }
예제 #2
0
        public void SetVar(string sZibaseName, UInt32 dwNumVar, UInt32 dwVal)
        {
            var ZBS = new ZBClass();

            ZBS.header = ZBS.GetBytesFromString("ZSIG");
            ZBS.command = 11;
            ZBS.alphacommand = ZBS.GetBytesFromString("SetVar");
            ZBS.label_base = ZBS.GetBytesFromString("");

            ZBS.serial = 0;

            ZBS.param1 = 5;
            ZBS.param2 = dwVal;
            ZBS.param3 = CMD_TYPE_WRITE_VAR;
            ZBS.param4 = dwNumVar;

            SendToZibase(sZibaseName, ZBS);
        }
예제 #3
0
        public void SetVirtualProbeValue(string sZibaseName, UInt16 wSensorID, VirtualProbeType SensorType,
            UInt32 dwValue1, UInt32 dwValue2, UInt32 dwLowBat)
        {
            var ZBS = new ZBClass();
            //ZBClass ZBSrcv = new ZBClass();
            int iSensorType = 0;
            UInt32 dwSensorID = default(UInt32);

            switch (SensorType)
            {
                    // Simule un OWL
                case VirtualProbeType.POWER_SENSOR:
                    iSensorType = DOMO_EVENT_ACTION_OWL_SIGNAL_32B_SENSOR_CODE;
                    dwSensorID = (uint) 0x2 << 16 | wSensorID;

                    break;
                    // Simule une THGR228
                case VirtualProbeType.TEMP_HUM_SENSOR:
                    iSensorType = DOMO_EVENT_ACTION_OREGON_SIGNAL_32B_SENSOR_CODE;
                    dwSensorID = (uint) (0x1a2d << 16) | wSensorID;

                    break;
                    // Simule une THN132
                case VirtualProbeType.TEMP_SENSOR:
                    iSensorType = DOMO_EVENT_ACTION_OREGON_SIGNAL_32B_SENSOR_CODE;
                    dwSensorID = (uint) (0x1 << 16) | wSensorID;

                    break;
                    // Simule un pluviometre
                case VirtualProbeType.WATER_SENSOR:
                    iSensorType = DOMO_EVENT_ACTION_OREGON_SIGNAL_32B_SENSOR_CODE;
                    dwSensorID = (uint) (0x2a19 << 16) | wSensorID;
                    break;
            }

            ZBS.header = ZBS.GetBytesFromString("ZSIG");
            ZBS.command = 11;
            ZBS.alphacommand = ZBS.GetBytesFromString("VProbe");
            ZBS.label_base = ZBS.GetBytesFromString("");

            ZBS.serial = 0;

            ZBS.param1 = 6;
            ZBS.param2 = dwSensorID;
            ZBS.param3 = dwValue1 | (dwValue2 << 16) | (dwLowBat << 24);
            ZBS.param4 = (uint) iSensorType;

            SendToZibase(sZibaseName, ZBS);
        }
예제 #4
0
        public void SetPlatform(string sZibaseName, UInt32 dwPlatform, UInt32 dwPasswordIn, UInt32 dwPasswordOut)
        {
            var ZBS = new ZBClass();

            ZBS.header = ZBS.GetBytesFromString("ZSIG");
            ZBS.command = 11;
            ZBS.alphacommand = ZBS.GetBytesFromString("SetPlatform");
            ZBS.label_base = ZBS.GetBytesFromString("");

            ZBS.serial = 0;

            ZBS.param1 = 7;
            ZBS.param2 = dwPasswordIn;
            ZBS.param3 = dwPasswordOut;
            ZBS.param4 = dwPlatform;

            SendToZibase(sZibaseName, ZBS);
        }
예제 #5
0
        public void SendCommand(string sZibaseName, string sAddress, State iState, int iDim = 0,
            Protocol iProtocol = Protocol.PROTOCOL_CHACON, int iNbBurst = 1)
        {
            if ((Strings.Len(sAddress) < 2))
                return;

            var ZBS = new ZBClass();

            ZBS.header = ZBS.GetBytesFromString("ZSIG");
            ZBS.command = 11;
            ZBS.alphacommand = ZBS.GetBytesFromString("SendX10");
            ZBS.label_base = ZBS.GetBytesFromString("");

            ZBS.serial = 0;
            ZBS.param1 = 0;

            if (iState == State.STATE_DIM & iDim == 0)
            {
                iState = State.STATE_OFF;
            }

            switch (iState)
            {
                case State.STATE_OFF:
                    ZBS.param2 = 0;
                    break;
                case State.STATE_ON:
                    ZBS.param2 = 1;
                    break;
                case State.STATE_DIM:
                    ZBS.param2 = 3;
                    break;
            }

            // DEFAULT BROADCAST (RF X10, CHACON, DOMIA) : 0
            // VISONIC433:   1,          ( frequency : device RF LOW, 310...418Mhz band))
            // VISONIC868:   2,          (  frequency :  device RF HIGH, 868 Mhz Band)
            // CHACON (32B) (ChaconV2) :  3
            // DOMIA (24B) ( =Chacon V1 + low cost shit-devices):    4
            // RF X10 :    5
            ZBS.param2 = (uint) (ZBS.param2 | (((int) iProtocol & 0xff) << 8));

            // Dim
            if ((iState == State.STATE_DIM))
            {
                ZBS.param2 = (uint) (ZBS.param2 | ((iDim & 0xff) << 16));
            }

            if ((iNbBurst != 1))
            {
                ZBS.param2 = (uint) (ZBS.param2 | ((iNbBurst & 0xff) << 24));
            }

            string sHouse = Strings.Mid(sAddress, 1, 1);
            string sCode = Strings.Mid(sAddress, 2);

            ZBS.param3 = (uint) Convert.ToInt32(sCode) - 1;
            ZBS.param4 = (uint) Strings.Asc(sHouse[0]) - 65;

            SendToZibase(sZibaseName, ZBS);
        }
예제 #6
0
        public bool GetX10State(string sZibaseName, char house, byte unit)
        {
            var ZBS = new ZBClass();

            ZBS.header = ZBS.GetBytesFromString("ZSIG");
            ZBS.command = 11;
            ZBS.alphacommand = ZBS.GetBytesFromString("GetX10");
            ZBS.label_base = ZBS.GetBytesFromString("");

            ZBS.serial = 0;

            ZBS.param1 = 5;
            ZBS.param2 = 0;
            ZBS.param3 = CMD_READ_X10;
            ZBS.param4 = (uint) ((Strings.Asc(house) - Strings.Asc('A')) << 8) | unit;

            return SendToZibase(sZibaseName, ZBS) == 1;
        }
예제 #7
0
        public UInt32 GetVar(string sZibaseName, UInt32 dwNumVar)
        {
            var ZBS = new ZBClass();

            ZBS.header = ZBS.GetBytesFromString("ZSIG");
            ZBS.command = 11;
            ZBS.alphacommand = ZBS.GetBytesFromString("GetVar");
            ZBS.label_base = ZBS.GetBytesFromString("");

            ZBS.serial = 0;

            ZBS.param1 = 5;
            ZBS.param2 = 0;
            ZBS.param3 = CMD_READ_VAR;
            ZBS.param4 = dwNumVar;

            return SendToZibase(sZibaseName, ZBS);
        }
예제 #8
0
        public void ExecScript(string sZibaseName, string sScript)
        {
            sScript = "cmd:" + sScript;

            if ((Strings.Len(sScript) > 96))
                return;

            var ZBS = new ZBClass();

            ZBS.header = ZBS.GetBytesFromString("ZSIG");
            ZBS.command = 16;
            ZBS.alphacommand = ZBS.GetBytesFromString("SendCmd");
            ZBS.label_base = ZBS.GetBytesFromString("");

            ZBS.command_text = ZBS.GetBytesFromString(sScript);

            ZBS.serial = 0;
            ZBS.param1 = 0;
            ZBS.param2 = 0;
            ZBS.param3 = 0;
            ZBS.param4 = 0;
            SendToZibase(sZibaseName, ZBS);
        }