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()); }
/// <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]); }
/// <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); }
/// <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); } }
public ArduinoDigitalPort(DigitalPortEnum port, PortsMega2560Container.WriteFunction writeFunction) { this._writeFunction = writeFunction; this._port = port; }
/// <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]); }
/// <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); }