Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using GHIElectronics.TinyCLR.Devices.Can;
- using GHIElectronics.TinyCLR.Devices.SerialCommunication;
- using GHIElectronics.TinyCLR.Pins;
- using GHIElectronics.TinyCLR.Storage.Streams;
- using System.Reflection;
- namespace TinyCLRApplication1 {
- public class Size {
- private static object[] empty = new object[0];
- private readonly object provider;
- private readonly MethodInfo getReadBufferSize;
- private readonly MethodInfo setReadBufferSize;
- private readonly MethodInfo getWriteBufferSize;
- private readonly MethodInfo setWriteBufferSize;
- public Size(object controller, string fieldName) {
- this.provider = controller.GetType().GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(controller);
- var type = this.provider.GetType();
- this.getReadBufferSize = type.GetMethod("get_ReadBufferSize", BindingFlags.Public | BindingFlags.Instance);
- this.setReadBufferSize = type.GetMethod("set_ReadBufferSize", BindingFlags.Public | BindingFlags.Instance);
- this.getWriteBufferSize = type.GetMethod("get_WriteBufferSize", BindingFlags.Public | BindingFlags.Instance);
- this.setWriteBufferSize = type.GetMethod("set_WriteBufferSize", BindingFlags.Public | BindingFlags.Instance);
- }
- public uint ReadBufferSize {
- get => (uint)this.getReadBufferSize.Invoke(this.provider, Size.empty);
- set => this.setReadBufferSize.Invoke(this.provider, new object[] { value });
- }
- public uint WriteBufferSize {
- get => (uint)this.getWriteBufferSize.Invoke(this.provider, Size.empty);
- set => this.setWriteBufferSize.Invoke(this.provider, new object[] { value });
- }
- }
- public class Program {
- static void Main() {
- var can = CanController.FromId(G80.CanBus.Can1);
- var canSize = new Size(can, "provider");
- can.SetBitTiming(new CanBitTiming(1, 1, 1, 1, 1, false));
- var ser = SerialDevice.FromId(G80.UartPort.Usart1);
- var serSize = new Size(ser, "stream");
- ser.OutputStream.Write(new Buffer(1));
- canSize.ReadBufferSize = 256;
- serSize.ReadBufferSize = 4096;
- }
- }
- }
Add Comment
Please, Sign In to add comment