Esempio n. 1
0
        VIZIO_RMC_CMD SearchingInternalCommand(string cmdstring)
        {
            VIZIO_RMC_CMD result = VIZIO_RMC_CMD.VIZIO_RMC_CMD_MAX;

            for (VIZIO_RMC_CMD index = 0; index < VIZIO_RMC_CMD.VIZIO_RMC_CMD_MAX; index++)
            {
                if (cmdstring == index.ToString())
                {
                    result = index;
                    break;
                }
            }

            return(result);
        }
Esempio n. 2
0
        public bool SendCommand(VIZIO_RMC_CMD interCommand)
        {
            if (this.IsOpen == false)
            {
                this.ErrorMessage = "RMC TX가 연결되지 않았습니다.\nSerial Port 연결을 확인해 주세요.";
                return(false);
            }

            try
            {
                this._rmcSerialPort.WriteLine(this._cmd[interCommand]);
                Thread.Sleep(WAIT_COMMAND_EXECUTION_TIME);
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
                return(false);
            }

            return(true);
        }
Esempio n. 3
0
        public bool LoadCommandFromIno(string inoFileName)
        {
            bool isResult = false;

            try
            {
                StreamReader  file                  = new StreamReader(inoFileName);
                string        line                  = string.Empty;
                bool          isFoundSendIR         = false;
                bool          isFoundCommand        = false;
                int           posFront              = 0;
                int           posRear               = 0;
                string        arduinoCommand        = string.Empty;
                VIZIO_RMC_CMD internalCommand       = VIZIO_RMC_CMD.VIZIO_RMC_CMD_MAX;
                string        internalCommandString = string.Empty;

                this._cmd.Clear();

                while ((line = file.ReadLine()) != null)
                {
                    if (isFoundSendIR)
                    {
                        //if (inputString == "Power")				//VIZIO_RMC_CMD_POWER
                        posFront = line.IndexOf(ARDUINO_REAL_COMMAND_PREFIX);
                        if (posFront <= 0)
                        {
                            continue;
                        }

                        posFront += ARDUINO_REAL_COMMAND_PREFIX.Length;
                        posRear   = line.IndexOf(ARDUINO_REAL_COMMAND_TAIL, posFront);
                        if (posRear <= 0)
                        {
                            continue;
                        }

                        arduinoCommand = line.Substring(posFront, posRear - posFront);

                        posRear += ARDUINO_REAL_COMMAND_TAIL.Length;
                        posFront = line.IndexOf(ARDUINO_ENUM_TOKEN, posRear);
                        if (posFront <= 0)
                        {
                            continue;
                        }

                        posFront += ARDUINO_ENUM_TOKEN.Length;
                        internalCommandString = line.Substring(posFront).Trim();

                        internalCommand = SearchingInternalCommand(internalCommandString);
                        if (internalCommand == VIZIO_RMC_CMD.VIZIO_RMC_CMD_MAX)
                        {
                            continue;
                        }

                        this._cmd.Add(internalCommand, arduinoCommand);
                        isFoundCommand = true;
                    }
                    else
                    {
                        //void SendIR() {
                        posFront = line.IndexOf(ARDUINO_SEND_IR);

                        if (posFront > 0)
                        {
                            isFoundSendIR = true;
                        }
                    }
                }

                file.Close();

                if (isFoundSendIR == false || isFoundCommand == false)
                {
                    throw new Exception("SendIR() 함수 또는 Command 주석이 없습니다.");
                }

                isResult = true;
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
            }

            this.IsReady = isResult;
            return(isResult);
        }