protected string GenerateCommand(CommandTypeEnum commandType, DigitalPortEnum port, int value)
        {
            StringBuilder generateCommand = new StringBuilder();

            generateCommand.Append("C=");
            switch (commandType)
            {
            case CommandTypeEnum.READ:
                generateCommand.Append("R");
                break;

            case CommandTypeEnum.WRITE:
                generateCommand.Append("W");
                break;
            }


            generateCommand.Append(",");
            generateCommand.Append("P=");
            generateCommand.Append((int)port);
            generateCommand.Append(",");
            generateCommand.Append("V=");
            generateCommand.Append(value.ToString());
            generateCommand.Append("|");

            return(generateCommand.ToString());
        }
Beispiel #2
0
        /// <summary>
        /// Toggles the status of a digital port and returns the new status
        /// </summary>
        public bool Toggle(DigitalPortEnum digitalPort)
        {
            int index = (int)digitalPort;

            SetDigitalPort(digitalPort, !_lastValue[index]);

            return(_lastValue[index]);
        }
Beispiel #3
0
        /// <summary>
        /// Query the status of a digital port.
        /// </summary>
        public async Task <bool> GetDigitalPort(DigitalPortEnum digitalPort)
        {
            int index = (int)digitalPort;

            bool retVal = ((await _ezb.sendCommand(1, EZB.CommandEnum.CmdGetDigitalPort + (byte)digitalPort))[0] == 1);

            _lastValue[index] = retVal;

            return(retVal);
        }
Beispiel #4
0
        /// <summary>
        ///  Set the status of a digital port. TRUE will output +5, FALSE will short to GND
        /// </summary>
        /// <returns>True if successful</returns>
        public void SetDigitalPort(DigitalPortEnum digitalPort, bool status)
        {
            int index = (int)digitalPort;

            _lastValue[index] = status;

            if (status)
            {
                _ezb.sendCommand(EZB.CommandEnum.CmdSetDigitalPortOn + (byte)digitalPort);
            }
            else
            {
                _ezb.sendCommand(EZB.CommandEnum.CmdSetDigitalPortOff + (byte)digitalPort);
            }
        }
Beispiel #5
0
 public ArduinoDigitalPort(DigitalPortEnum port, PortsMega2560Container.WriteFunction writeFunction)
 {
     this._writeFunction = writeFunction;
     this._port          = port;
 }
Beispiel #6
0
        /// <summary>
        /// Does not query the EZ-B Controller. This returns the status of the port after you had SetDigitalPort().
        /// </summary>
        public bool GetLastDigitalPortSet(DigitalPortEnum digitalPort)
        {
            int index = (int)digitalPort;

            return(_lastValue[index]);
        }
Beispiel #7
0
 /// <summary>
 /// Query the status of a digital port as an Integer (0 false, 1 true)
 /// </summary>
 public async Task <int> GetDigitalPortAsInt(DigitalPortEnum digitalPort)
 {
     return(await GetDigitalPort(digitalPort) ? 1 : 0);
 }