Exemplo n.º 1
0
 /// <summary>
 /// Gets byte data from the party system, read from the given memory address and register.
 /// </summary>
 /// <param name="slaveAddress">The slave's memory address and register</param>
 /// <param name="slaveRegister">The slave's register</param>
 /// <param name="bytesToRead">Number of bytes to read</param>
 /// <returns>An <see cref="I2CReply"/> object holding the data read</returns>
 public static I2CReply GetI2CReply(this ArduinoSession session, int slaveAddress, int slaveRegister, int bytesToRead)
 {
     session.ReadI2COnce(slaveAddress, slaveRegister, bytesToRead);
     //_awaitedMessagesQueue.Enqueue(new FirmataMessage(MessageType.I2CReply));
     //return (I2CReply)((FirmataMessage)GetMessageFromQueue(new FirmataMessage(MessageType.I2CReply))).Value;
     return(session.GetMessageFromQueue <I2CReply>().Value);
 }
Exemplo n.º 2
0
 /// <summary>
 /// Asynchronously gets byte data from the party system, read from the given memory address and register.
 /// </summary>
 /// <param name="slaveAddress">The slave's memory address</param>
 /// <param name="slaveRegister">The slave's register</param>
 /// <param name="bytesToRead">Number of bytes to read</param>
 /// <returns>An awaitable <see cref="Task{I2cReply}"/> holding the data read</returns>
 public static async Task <I2CReply> GetI2CReplyAsync(this ArduinoSession session, int slaveAddress, int slaveRegister, int bytesToRead)
 {
     session.ReadI2COnce(slaveAddress, slaveRegister, bytesToRead);
     //_awaitedMessagesQueue.Enqueue(new FirmataMessage(MessageType.I2CReply));
     //return await Task.Run(() =>
     //    (I2CReply)((FirmataMessage)GetMessageFromQueue(new FirmataMessage(MessageType.I2CReply))).Value);
     return(await Task.Run(() => session.GetMessageFromQueue <I2CReply>().Value).ConfigureAwait(false));
 }