/// <summary> /// This function enables the program to read the tacho count as sensor input. /// </summary> /// <param name="socket">socket for executing command to brick</param> /// <param name="layer">Specify chain layer number [0 - 3]</param> /// <param name="ports">Output bit field [0x00 – 0x0F]</param> /// <remarks> /// Instruction opOutput_Get_Count (LAYER, NOS, *TACHO) /// Opcode 0xB3 /// Arguments (Data8) LAYER – Specify chain layer number [0 - 3] /// (Data8) NOS – Output bit field [0x00 – 0x0F] /// (Data32) *TACHO – Tacho count as sensor value /// Dispatch status Unchanged /// Description This function enables the program to read the tacho count as sensor input. /// </remarks> public static async Task <int> GetTachoCount(ISocket socket, ChainLayer layer, OutputPortName port) { Command cmd = null; using (CommandBuilder cb = new CommandBuilder(CommandType.DIRECT_COMMAND_REPLY, 4, 0)) { cb.OpCode(OP.opOUTPUT_GET_COUNT); cb.PAR8((byte)layer); cb.PAR8((byte)port); cb.VARIABLE_PAR32(0, PARAMETER_VARIABLE_SCOPE.GLOBAL); cmd = cb.ToCommand(); } Response response = await socket.Execute(cmd); return(BitConverter.ToInt32(response.PayLoad, 0)); }