Пример #1
0
        static async Task Main(string[] args)
        {
            _adapter = new WinRTBluetoothAdapter();

            _adapter.Discover(HandleDiscover);

            while (_kernel == null)
            {
                await Task.Delay(10);
            }

            await _kernel.ConnectAsync();

            Console.WriteLine("Connecting...");
            while (!_kernel.IsConnected)
            {
                await Task.Delay(10);
            }
            var stopCommand = "50-02-01";
            await _kernel.SendBytesAsync(BytesStringUtil.StringToData(stopCommand));

            while (true)
            {
                Console.WriteLine("Enter a command (i.e. 44-FF-FF-37-35-FF):");
                var command = Console.ReadLine();
                if (string.IsNullOrEmpty(command))
                {
                    break;
                }
                await _kernel.SendBytesAsync(BytesStringUtil.StringToData(command));
            }

            Console.WriteLine("Exiting");
        }
        public void HubAttachedIOEncoder_Decode_Attached <T>(string messageAsString, DeviceType expectedType, byte expectedPortId, string expectedHwVersion, string expectedSwVersion)
        {
            // arrange
            var data = BytesStringUtil.StringToData(messageAsString).AsSpan().Slice(3);

            // act
            var message = new HubAttachedIOEncoder().Decode(0x00, data) as HubAttachedIOForAttachedDeviceMessage;

            // assert
            Assert.Equal(expectedPortId, message.PortId);
            Assert.Equal(expectedType, message.IOTypeId);
            Assert.Equal(new Version(expectedHwVersion), message.HardwareRevision);
            Assert.Equal(new Version(expectedSwVersion), message.SoftwareRevision);

            // reverse test
            var reverseMessage = new HubAttachedIOForAttachedDeviceMessage()
            {
                Event            = HubAttachedIOEvent.AttachedIO,
                IOTypeId         = expectedType,
                PortId           = expectedPortId,
                HardwareRevision = Version.Parse(expectedHwVersion),
                SoftwareRevision = Version.Parse(expectedSwVersion),
            };

            // act
            var reverseData         = MessageEncoder.Encode(reverseMessage, null);
            var reverseDataAsString = BytesStringUtil.DataToString(reverseData);

            Assert.Equal(messageAsString, reverseDataAsString);
        }
        public void PortInputFormatSingleEncoder_Decode(string dataAsString, byte expectedPortId, byte expectedMode, uint expectedDeltaInterval, bool expectedNotificationEnabled)
        {
            // arrange
            var data = BytesStringUtil.StringToData(dataAsString);

            // act
            var message = MessageEncoder.Decode(data, null) as PortInputFormatSingleMessage;

            // assert
            Assert.Equal(expectedPortId, message.PortId);
            Assert.Equal(expectedMode, message.ModeIndex);
            Assert.Equal(expectedDeltaInterval, message.DeltaInterval);
            Assert.Equal(expectedNotificationEnabled, message.NotificationEnabled);

            // reverse
            var reverseMessage = new PortInputFormatSingleMessage(expectedPortId, expectedMode, expectedDeltaInterval, expectedNotificationEnabled)
            {
                HubId = 0,
            };

            var reverseData         = MessageEncoder.Encode(reverseMessage, null);
            var reverseDataAsString = BytesStringUtil.DataToString(reverseData);

            Assert.Equal(dataAsString, reverseDataAsString);
        }
Пример #4
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
        => @"
0B-00-43-13-01-06-03-07-00-00-00
07-00-43-13-02-03-00
11-00-44-13-00-00-53-50-45-45-44-00-00-00-00-00-00
0E-00-44-13-00-01-00-00-96-C3-00-00-96-43
0E-00-44-13-00-02-00-00-C8-C2-00-00-C8-42
0E-00-44-13-00-03-00-00-20-C1-00-00-20-41
0A-00-44-13-00-04-73-70-64-00
08-00-44-13-00-05-50-00
0A-00-44-13-00-80-01-01-05-00
11-00-44-13-01-00-43-4F-55-4E-54-00-00-00-00-00-00
0E-00-44-13-01-01-00-00-00-41-00-00-00-41
0E-00-44-13-01-02-00-00-C8-C2-00-00-C8-42
0E-00-44-13-01-03-00-00-B4-43-00-00-B4-43
0A-00-44-13-01-04-63-6E-74-00
08-00-44-13-01-05-08-00
0A-00-44-13-01-80-01-02-04-00
11-00-44-13-02-00-43-41-4C-49-42-00-00-00-00-00-00
0E-00-44-13-02-01-00-00-00-00-00-00-80-45
0E-00-44-13-02-02-00-00-00-00-00-00-C8-42
0E-00-44-13-02-03-00-00-00-00-00-00-80-45
0A-00-44-13-02-04-6E-2F-61-00
08-00-44-13-02-05-08-00
0A-00-44-13-02-80-04-01-05-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #5
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
        => @"
0B-00-43-01-01-01-03-00-00-07-00
05-00-43-01-02
11-00-44-01-00-00-54-4F-4E-45-00-00-00-00-00-00-00
0E-00-44-01-00-01-00-00-00-00-00-00-20-41
0E-00-44-01-00-02-00-00-00-00-00-00-C8-42
0E-00-44-01-00-03-00-00-00-00-00-00-20-41
0A-00-44-01-00-04-69-64-78-00
08-00-44-01-00-05-00-04
0A-00-44-01-00-80-01-00-03-00
11-00-44-01-01-00-53-4F-55-4E-44-00-00-00-00-00-00
0E-00-44-01-01-01-00-00-00-00-00-00-20-41
0E-00-44-01-01-02-00-00-00-00-00-00-C8-42
0E-00-44-01-01-03-00-00-00-00-00-00-20-41
0A-00-44-01-01-04-69-64-78-00
08-00-44-01-01-05-00-44
0A-00-44-01-01-80-01-00-03-00
11-00-44-01-02-00-55-49-20-53-4E-44-00-00-00-00-00
0E-00-44-01-02-01-00-00-00-00-00-00-20-41
0E-00-44-01-02-02-00-00-00-00-00-00-C8-42
0E-00-44-01-02-03-00-00-00-00-00-00-20-41
0A-00-44-01-02-04-69-64-78-00
08-00-44-01-02-05-00-04
0A-00-44-01-02-80-01-00-03-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #6
0
        private void PortValueSingleEncoder_Decode <T>(string dataAsString, byte expectedPortId, PortModeInformationDataType expectedDataType, T[] expectedData)
        {
            var knowledge = new ProtocolKnowledge();

            var serviceProvider = new ServiceCollection()
                                  .AddPoweredUp()
                                  .BuildServiceProvider();


            KnowledgeManager.ApplyDynamicProtocolKnowledge(new HubAttachedIOForAttachedDeviceMessage(0x63, DeviceType.TechnicMediumHubTiltSensor, new Version("0.0.0.1"), new Version("0.0.0.1"))
            {
                HubId = 0
            }, knowledge, serviceProvider.GetService <IDeviceFactory>());

            // arrange
            var data = BytesStringUtil.StringToData(dataAsString);

            // act
            var message = MessageEncoder.Decode(data, knowledge) as PortValueSingleMessage;

            // assert
            Assert.Collection(message.Data,
                              d =>
            {
                Assert.Equal(d.PortId, expectedPortId);
                Assert.Equal(d.DataType, expectedDataType);

                if (d is PortValueData <T> actual)
                {
                    Assert.Collection(actual.InputValues, expectedData.Cast <T>().Select <T, Action <T> >(expected => actual => Assert.Equal(expected, actual)).ToArray());
                }
            }
                              );
        }
Пример #7
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
        => @"
0B-00-43-00-01-0F-03-06-00-07-00
07-00-43-00-02-06-00
11-00-44-00-00-00-50-4F-57-45-52-00-00-00-00-00-00
0E-00-44-00-00-01-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-03-00-00-C8-C2-00-00-C8-42
0A-00-44-00-00-04-50-43-54-00
08-00-44-00-00-05-00-10
0A-00-44-00-00-80-01-00-01-00
11-00-44-00-01-00-53-50-45-45-44-00-00-00-00-00-00
0E-00-44-00-01-01-00-00-C8-C2-00-00-C8-42
0E-00-44-00-01-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-01-03-00-00-C8-C2-00-00-C8-42
0A-00-44-00-01-04-50-43-54-00
08-00-44-00-01-05-10-10
0A-00-44-00-01-80-01-00-04-00
11-00-44-00-02-00-50-4F-53-00-00-00-00-00-00-00-00
0E-00-44-00-02-01-00-00-B4-C3-00-00-B4-43
0E-00-44-00-02-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-02-03-00-00-B4-C3-00-00-B4-43
0A-00-44-00-02-04-44-45-47-00
08-00-44-00-02-05-08-08
0A-00-44-00-02-80-01-02-04-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #8
0
    public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
    => @"
0B-00-43-03-01-02-04-0F-00-00-00
05-00-43-03-02
11-00-44-03-00-00-43-48-41-4C-00-00-00-00-00-00-00
0E-00-44-03-00-01-00-00-00-00-00-FF-7F-47
0E-00-44-03-00-02-00-00-00-00-00-00-C8-42
0E-00-44-03-00-03-00-00-00-00-00-FF-7F-47
0A-00-44-03-00-04-6E-61-00-00
08-00-44-03-00-05-84-00
0A-00-44-03-00-80-02-01-03-00
11-00-44-03-01-00-56-45-52-53-00-00-00-00-00-00-00
0E-00-44-03-01-01-00-00-00-00-00-00-7F-43
0E-00-44-03-01-02-00-00-00-00-00-00-C8-42
0E-00-44-03-01-03-00-00-00-00-00-00-7F-43
0A-00-44-03-01-04-6E-61-00-00
08-00-44-03-01-05-84-00
0A-00-44-03-01-80-04-02-0A-00
11-00-44-03-02-00-45-56-45-4E-54-53-00-00-00-00-00
0E-00-44-03-02-01-00-00-00-00-00-FF-7F-47
0E-00-44-03-02-02-00-00-00-00-00-00-C8-42
0E-00-44-03-02-03-00-00-00-00-00-FF-7F-47
0A-00-44-03-02-04-6E-61-00-00
08-00-44-03-02-05-84-00
0A-00-44-03-02-80-02-01-0A-00
11-00-44-03-03-00-44-45-42-55-47-00-00-00-00-00-00
0E-00-44-03-03-01-00-00-00-00-00-FF-7F-47
0E-00-44-03-03-02-00-00-00-00-00-00-C8-42
0E-00-44-03-03-03-00-00-00-00-00-FF-7F-47
0A-00-44-03-03-04-6E-61-00-00
08-00-44-03-03-05-84-00
0A-00-44-03-03-80-04-02-0A-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
    private TMessage Decode <TMessage>(string dataAsString) where TMessage : class
    {
        // arrange
        var data = BytesStringUtil.StringToData(dataAsString);

        // act
        TMessage result = MessageEncoder.Decode(data, null) as TMessage;

        return(result);
    }
Пример #10
0
        public void HubActionsEncoder_Decode(HubAction expectedAction, string dataAsString)
        {
            // arrange
            var data = BytesStringUtil.StringToData(dataAsString);

            // act
            var message = MessageEncoder.Decode(data, null) as HubActionMessage;

            // assert
            Assert.Equal(expectedAction, message.Action);
        }
Пример #11
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
        => @"
0B-00-43-3C-01-02-01-01-00-00-00
0C-00-44-3C-00-00-52-53-53-49-20-00
0E-00-44-3C-00-01-00-00-A0-C2-00-00-F0-C1
0E-00-44-3C-00-02-00-00-00-00-00-00-C8-42
0E-00-44-3C-00-03-00-00-A0-C2-00-00-F0-C1
0A-00-44-3C-00-04-64-62-6D-00
08-00-44-3C-00-05-50-00
0A-00-44-3C-00-80-01-00-03-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion)
        => @"
0B-00-43-64-01-02-01-01-00-00-00
05-00-43-64-02
11-00-44-64-00-00-47-45-53-54-00-00-00-00-00-00-00
0E-00-44-64-00-01-00-00-00-00-00-00-80-40
0E-00-44-64-00-02-00-00-00-00-00-00-C8-42
0E-00-44-64-00-03-00-00-00-00-00-00-80-40
0A-00-44-64-00-04-00-00-00-00
08-00-44-64-00-05-44-00
0A-00-44-64-00-80-01-00-01-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #13
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
        => @"
0B-00-43-60-01-02-01-01-00-00-00
05-00-43-60-02
11-00-44-60-00-00-54-45-4D-50-00-00-00-00-00-00-00
0E-00-44-60-00-01-00-00-61-C4-00-00-61-44
0E-00-44-60-00-02-00-00-C8-C2-00-00-C8-42
0E-00-44-60-00-03-00-00-B4-C2-00-00-B4-42
0A-00-44-60-00-04-44-45-47-00
08-00-44-60-00-05-50-00
0A-00-44-60-00-80-01-01-05-01
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #14
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
        => @"
0B-00-43-00-01-01-01-00-00-01-00
05-00-43-00-02
12-00-44-00-00-00-4C-50-46-32-2D-54-52-41-49-4E-00-00
0E-00-44-00-00-01-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-03-00-00-C8-C2-00-00-C8-42
0B-00-44-00-00-04-00-00-00-00-00
08-00-44-00-00-05-00-18
0A-00-44-00-00-80-01-00-04-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #15
0
        //[InlineData("0B-00-01-0D-06-90-84-2B-49-5D-19", HubProperty.PrimaryMacAddress, HubPropertyOperation.Update)]
        //[InlineData("0B-00-01-0E-06-90-84-2B-83-5D-19", HubProperty.SecondaryMacAddress, HubPropertyOperation.Update, (byte)0)]
        // HardwareNetworkFamily threw error => UNSPECED
        public void HubPropertiesEncoder_Decode_UpdateUpstream <T>(string messageAsString, HubProperty expectedProperty, HubPropertyOperation expectedPropertyOperation, T payload)
        {
            // arrange
            var data = BytesStringUtil.StringToData(messageAsString).AsSpan()[3..];

            // act
            var message = new HubPropertiesEncoder().Decode(0x00, data) as HubPropertyMessage <T>;

            // assert
            Assert.Equal(expectedProperty, message.Property);
            Assert.Equal(expectedPropertyOperation, message.Operation);
            Assert.Equal(payload, message.Payload);
        }
Пример #16
0
    public void HubAlertEncoder_Decode(HubAlert expectedAlert, HubAlertOperation expectedOperation, byte expectedPayload, string dataAsString)
    {
        // arrange
        var data = BytesStringUtil.StringToData(dataAsString);

        // act
        var message = MessageEncoder.Decode(data, null) as HubAlertMessage;

        // assert
        Assert.Equal(expectedAlert, message.Alert);
        Assert.Equal(expectedOperation, message.Operation);
        Assert.Equal(expectedPayload, message.DownstreamPayload);
    }
    public void PortOutputCommandFeedbackEncoder_Decode(string dataAsString, byte[] ports, PortFeedback[] feedbacks)
    {
        var data = BytesStringUtil.StringToData(dataAsString);

        var message = MessageEncoder.Decode(data, null) as PortOutputCommandFeedbackMessage;

        Assert.NotNull(message);
        Assert.Collection(message.Feedbacks, Enumerable.Range(0, ports.Length).Select <int, Action <PortOutputCommandFeedback> >(pos => feedback =>
        {
            Assert.Equal(ports[pos], feedback.PortId);
            Assert.Equal(feedbacks[pos], feedback.Feedback);
        }).ToArray());
    }
    public void PortInputFormatCombinedModeEncoder_Decode(string dataAsString, byte expectedPortId, byte expectedCombinationIndex, bool expectedEnabled, int[] expectedIndexes)
    {
        // arrange
        var data = BytesStringUtil.StringToData(dataAsString);

        // act
        var message = MessageEncoder.Decode(data, null) as PortInputFormatCombinedModeMessage;

        // assert
        Assert.Equal(expectedPortId, message.PortId);
        Assert.Equal(expectedCombinationIndex, message.UsedCombinationIndex);
        Assert.Equal(expectedEnabled, message.MultiUpdateEnabled);
        Assert.Collection(message.ConfiguredModeDataSetIndex, expectedIndexes.Select <int, Action <int> >(exp => (act) => Assert.Equal(exp, act)).ToArray());
    }
        public void PortValueCombinedModeEncoder_Decode(string dataAsString, byte expectedPortId, byte[] expectedModes, PortModeInformationDataType[] expectedDataType, int[] expectedData)
        {
            var knowledge = new ProtocolKnowledge();

            var serviceProvider = new ServiceCollection()
                                  .AddPoweredUp()
                                  .BuildServiceProvider();

            KnowledgeManager.ApplyDynamicProtocolKnowledge(new HubAttachedIOForAttachedDeviceMessage(0x00, DeviceType.TechnicLargeLinearMotor, new Version("0.0.0.1"), new Version("0.0.0.1"))
            {
                HubId = 0
            }, knowledge, serviceProvider.GetService <IDeviceFactory>());
            KnowledgeManager.ApplyDynamicProtocolKnowledge(new PortInputFormatSetupCombinedModeForSetModeDataSetMessage(
                                                               PortId: 0x00,
                                                               CombinationIndex: 0, // should refer 0b0000_0000_0000_1110 => SPEED POS APOS
                                                               ModeDataSets: new PortInputFormatSetupCombinedModeModeDataSet[] {
                new PortInputFormatSetupCombinedModeModeDataSet(0x01, 0),
                new PortInputFormatSetupCombinedModeModeDataSet(0x02, 0),
                new PortInputFormatSetupCombinedModeModeDataSet(0x03, 0),
            }
                                                               ), knowledge, serviceProvider.GetService <IDeviceFactory>());

            // arrange
            var data = BytesStringUtil.StringToData(dataAsString);

            // act
            var message = MessageEncoder.Decode(data, knowledge) as PortValueCombinedModeMessage;

            // assert
            Assert.Equal(expectedPortId, message.PortId);
            Assert.Collection(message.Data, Enumerable.Range(0, expectedModes.Length).Select <int, Action <PortValueData> >(pos => portValueData =>
            {
                Assert.Equal(expectedPortId, portValueData.PortId);
                Assert.Equal(expectedDataType[pos], portValueData.DataType);
                Assert.Equal(expectedDataType[pos], portValueData.DataType);

                if (portValueData is PortValueData <sbyte> actual)
                {
                    Assert.Equal(expectedData[pos], actual.InputValues[0]);
                }
                if (portValueData is PortValueData <short> actual2)
                {
                    Assert.Equal(expectedData[pos], actual2.InputValues[0]);
                }
                if (portValueData is PortValueData <int> actual3)
                {
                    Assert.Equal(expectedData[pos], actual3.InputValues[0]);
                }
            }).ToArray());
        }
Пример #20
0
    public void HubAttachedIOEncoder_Decode_AttachedVirutalIO(string messageAsString, DeviceType expectedType, byte expectedPortId, byte portA, byte portB)
    {
        // arrange
        var data = BytesStringUtil.StringToData(messageAsString).AsSpan()[3..];

        // act
        var message = new HubAttachedIOEncoder().Decode(0x00, data) as HubAttachedIOForAttachedVirtualDeviceMessage;

        // assert
        Assert.Equal(expectedPortId, message.PortId);
        Assert.Equal(expectedType, message.IOTypeId);
        Assert.Equal(portA, message.PortAId);
        Assert.Equal(portB, message.PortBId);
    }
    public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
    => @"
0B-00-43-00-01-0F-06-0E-00-0F-00
07-00-43-00-02-0E-00
11-00-44-00-00-00-50-4F-57-45-52-00-00-00-00-00-00
0E-00-44-00-00-01-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-03-00-00-C8-C2-00-00-C8-42
0A-00-44-00-00-04-50-43-54-00
08-00-44-00-00-05-00-50
0A-00-44-00-00-80-01-00-04-00
11-00-44-00-01-00-53-50-45-45-44-00-00-00-00-00-00
0E-00-44-00-01-01-00-00-C8-C2-00-00-C8-42
0E-00-44-00-01-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-01-03-00-00-C8-C2-00-00-C8-42
0A-00-44-00-01-04-50-43-54-00
08-00-44-00-01-05-30-70
0A-00-44-00-01-80-01-00-04-00
11-00-44-00-02-00-50-4F-53-00-00-00-00-00-00-00-00
0E-00-44-00-02-01-00-00-B4-C3-00-00-B4-43
0E-00-44-00-02-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-02-03-00-00-B4-C3-00-00-B4-43
0A-00-44-00-02-04-44-45-47-00
08-00-44-00-02-05-28-68
0A-00-44-00-02-80-01-02-0B-00
11-00-44-00-03-00-41-50-4F-53-00-00-00-00-00-00-00
0E-00-44-00-03-01-00-00-34-C3-00-00-33-43
0E-00-44-00-03-02-00-00-48-C3-00-00-48-43
0E-00-44-00-03-03-00-00-34-C3-00-00-33-43
0A-00-44-00-03-04-44-45-47-00
08-00-44-00-03-05-32-72
0A-00-44-00-03-80-01-01-03-00
11-00-44-00-04-00-43-41-4C-49-42-00-00-00-00-00-00
0E-00-44-00-04-01-00-00-00-00-00-00-61-45
0E-00-44-00-04-02-00-00-00-00-00-00-C8-42
0E-00-44-00-04-03-00-00-00-00-00-00-61-45
0A-00-44-00-04-04-43-41-4C-00
08-00-44-00-04-05-00-00
0A-00-44-00-04-80-02-01-05-00
11-00-44-00-05-00-53-54-41-54-53-00-00-00-00-00-00
0E-00-44-00-05-01-00-00-00-00-00-FF-7F-47
0E-00-44-00-05-02-00-00-00-00-00-00-C8-42
0E-00-44-00-05-03-00-00-00-00-00-FF-7F-47
0A-00-44-00-05-04-4D-49-4E-00
08-00-44-00-05-05-00-00
0A-00-44-00-05-80-0E-01-05-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #22
0
    [InlineData(0, PortInformationType.ModeInfo, true, true, true, true, 6, 0x001E, 0x001F, "0B-00-43-00-01-0F-06-1E-00-1F-00")] // Technic Large Motor
                                                                                                                                 // identical to line above [InlineData(0, PortInformationType.ModeInfo, true, true, true, true, 6, 0x001E, 0x001F, "0B-00-43-00-01-0F-06-1E-00-1F-00")] // Technic XLarge Motor
    public void PortInformationEncoder_Decode_PortInformationForModeInfoMessage(byte expectedPort, PortInformationType expectedType, bool expectedOutput, bool expectedInput, bool expectedLogicalCombinable, bool expectedLogicalSynchronizable, byte expectedTotalCount, ushort expectedInputModes, ushort expectedOutputModes, string dataAsString)
    {
        // arrange
        var data = BytesStringUtil.StringToData(dataAsString);

        // act
        var message = MessageEncoder.Decode(data, null) as PortInformationForModeInfoMessage;

        // assert
        Assert.Equal(expectedPort, message.PortId);
        Assert.Equal(expectedType, message.InformationType);
        Assert.Equal(expectedOutput, message.OutputCapability);
        Assert.Equal(expectedInput, message.InputCapability);
        Assert.Equal(expectedLogicalCombinable, message.LogicalCombinableCapability);
        Assert.Equal(expectedLogicalSynchronizable, message.LogicalSynchronizableCapability);
        Assert.Equal(expectedTotalCount, message.TotalModeCount);
        Assert.Equal(expectedInputModes, message.InputModes);
        Assert.Equal(expectedOutputModes, message.OutputModes);
    }
Пример #23
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion, SystemType systemType)
        => @"
0B-00-43-00-01-03-02-02-00-01-00
05-00-43-00-02
11-00-44-00-00-00-54-20-4D-4F-54-00-00-00-00-00-00
0E-00-44-00-00-01-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-02-00-00-C8-C2-00-00-C8-42
0E-00-44-00-00-03-00-00-C8-C2-00-00-C8-42
0A-00-44-00-00-04-70-77-72-00
08-00-44-00-00-05-00-50
0A-00-44-00-00-80-01-00-03-00
11-00-44-00-01-00-4F-4E-53-45-43-00-00-00-00-00-00
0E-00-44-00-01-01-00-00-00-00-00-00-80-3F
0E-00-44-00-01-02-00-00-00-00-00-00-C8-42
0E-00-44-00-01-03-00-00-00-00-00-00-80-3F
0A-00-44-00-01-04-73-65-63-00
08-00-44-00-01-05-08-00
0A-00-44-00-01-80-01-02-04-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #24
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion)
        => @"
0B-00-43-32-01-01-02-00-00-03-00
05-00-43-32-02
11-00-44-32-00-00-43-4F-4C-20-4F-00-00-00-00-00-00
0E-00-44-32-00-01-00-00-00-00-00-00-20-41
0E-00-44-32-00-02-00-00-00-00-00-00-C8-42
0E-00-44-32-00-03-00-00-00-00-00-00-20-41
0A-00-44-32-00-04-00-00-00-00
08-00-44-32-00-05-00-44
0A-00-44-32-00-80-01-00-01-00
11-00-44-32-01-00-52-47-42-20-4F-00-00-00-00-00-00
0E-00-44-32-01-01-00-00-00-00-00-00-7F-43
0E-00-44-32-01-02-00-00-00-00-00-00-C8-42
0E-00-44-32-01-03-00-00-00-00-00-00-7F-43
0A-00-44-32-01-04-00-00-00-00
08-00-44-32-01-05-00-10
0A-00-44-32-01-80-03-00-03-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #25
0
        public IEnumerable <byte[]> GetStaticPortInfoMessages(Version softwareVersion, Version hardwareVersion)
        => @"
0B-00-43-3C-01-02-02-03-00-00-00
05-00-43-3C-02
11-00-44-3C-00-00-56-4C-54-20-4C-00-00-00-00-00-00
0E-00-44-3C-00-01-00-00-00-00-00-F0-7F-45
0E-00-44-3C-00-02-00-00-00-00-00-00-C8-42
0E-00-44-3C-00-03-00-00-00-00-00-3C-16-46
0A-00-44-3C-00-04-6D-56-00-00
08-00-44-3C-00-05-10-00
0A-00-44-3C-00-80-01-01-04-00
11-00-44-3C-01-00-56-4C-54-20-53-00-00-00-00-00-00
0E-00-44-3C-01-01-00-00-00-00-00-F0-7F-45
0E-00-44-3C-01-02-00-00-00-00-00-00-C8-42
0E-00-44-3C-01-03-00-00-00-00-00-3C-16-46
0A-00-44-3C-01-04-6D-56-00-00
08-00-44-3C-01-05-10-00
0A-00-44-3C-01-80-01-01-04-00
".Trim().Split("\n").Select(s => BytesStringUtil.StringToData(s));
Пример #26
0
 public Task WriteUpstreamAsync(string message)
 => WriteUpstreamAsync(BytesStringUtil.StringToData(message));