Пример #1
0
        public bool Open(ePWR_PortName port)
        {
            //이 순서대로 넣어야 함
            //Current
            //Voltage
            //Temp_1st
            //Temp_2nd
            //Temp_3th
            //Error
            //State
            //Ver

            //이건 잘못된 정보
            //30001 버전 마이너 버전을 소수점 2자리로 표시 ex) 입력값 : 101 -> 버전: v1.01
            //30002 상태 1 = 충전중 , 2 = 에러, 3 = 충전완료, 4 = 배터리이상, 5 = 대기
            //30003 충전 시간 충전 시작부터 경과 시간
            //30004 충전 전압 1000 => 1000V
            //30005 충전 전류 1000 => 1000A
            //var ary = new int[8] { 30005, 30004, -1, -1, -1, 30006, 30002, 30001 };

            //이게 맞는 정보
            //1) 0x5000   :  version을 소수두자리로 표시  , ex. 101->버전 :v1.01 의미
            //2)  0x5001   :  status 표시(1 = 충전중,2 = 에러,3 = 충전완료,4 = 배터리이상,5 = 대기)
            //3)  0x5002  :   온도(소수두자리로 표시)
            //4)  0x5003  :   충전전압(소수두자리로 표시)
            //5)  0x5004  :   충전전류(소수두자리로 표시)
            //6)  0x5005  :   오류코드(사용안함)
            var ary = new int[] { 0x5004, 0x5003, 1000, 1001, 1002, -1, 0x5001, 0x5000 };

            var bit = new Any64();

            bit[(int)ePWRREAD_ITEMS.Current]  = true;
            bit[(int)ePWRREAD_ITEMS.Voltage]  = true;
            bit[(int)ePWRREAD_ITEMS.Temp_1st] = true;
            bit[(int)ePWRREAD_ITEMS.Temp_2nd] = true;
            bit[(int)ePWRREAD_ITEMS.Temp_3th] = false;
            bit[(int)ePWRREAD_ITEMS.Error]    = true;
            bit[(int)ePWRREAD_ITEMS.State]    = true;
            bit[(int)ePWRREAD_ITEMS.Ver]      = true;
            var chk = _PwrBus.Open(port, ary, bit.INT32_0);

            if (null != chk.msg)
            {
                ReportLog(chk.msg);
            }
            _StateChk.Start();
            return(chk.rtn);
        }
Пример #2
0
        public bool Open(ePWR_PortName port) // 에러는 보호상태
        {
            bool rtn = false;

            if (false == bUseModbus)
            {
                _PwrCom.PortName = port.ToString();
                _PwrCom.Open();
                rtn = _PwrCom.IsOpen;
            }
            else
            {
                // 모드버스 Data 주소 Curr Volt 온도1 온도2  온도3  보호상태(Error) 사용안함 버젼 == ePWRREAD_ITEMS
                var ary = new int[8] {
                    86, 73, -1, -1, -1, -1, -1, 1
                };
                var bit = new Any64();
                bit[(int)ePWRREAD_ITEMS.Current]  = true;
                bit[(int)ePWRREAD_ITEMS.Voltage]  = true;
                bit[(int)ePWRREAD_ITEMS.Error]    = false;
                bit[(int)ePWRREAD_ITEMS.Ver]      = false;
                bit[(int)ePWRREAD_ITEMS.Temp_1st] = false;
                bit[(int)ePWRREAD_ITEMS.Temp_2nd] = false;
                bit[(int)ePWRREAD_ITEMS.Temp_3th] = false;
                bit[(int)ePWRREAD_ITEMS.State]    = false;

                var chk = _PwrBus.Open(port, ary, bit.INT32_0);
                if (null != chk.msg)
                {
                    ReportLog(chk.msg);
                }
                rtn = chk.rtn;
            }
            _StateChk.Start();
            Evt_Connection?.Invoke(this, rtn);
            return(rtn);
        }