@@ -52,6 +52,8 @@ static async Task Main(string[] args)
5252
5353 await kernel . ConnectAsync ( ) ;
5454
55+ await protocol . SetupUpstreamObservableAsync ( ) ;
56+
5557 await protocol . ReceiveMessageAsync ( message =>
5658 {
5759 try
@@ -73,18 +75,18 @@ await protocol.ReceiveMessageAsync(message =>
7375 PortInformationForPossibleModeCombinationsMessage msg => $ "Port Information (Combinations) - Port { msg . PortId } Combinations: { string . Join ( "," , msg . ModeCombinations . Select ( x => x . ToString ( "X" ) ) ) } ",
7476 PortValueSingleMessage msg => "Port Values - " + string . Join ( ";" , msg . Data . Select ( d => d switch
7577 {
76- PortValueData < sbyte > dd => $ "Port { dd . PortId } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
77- PortValueData < short > dd => $ "Port { dd . PortId } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
78- PortValueData < int > dd => $ "Port { dd . PortId } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
79- PortValueData < float > dd => $ "Port { dd . PortId } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
78+ PortValueData < sbyte > dd => $ "Port { dd . PortId } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
79+ PortValueData < short > dd => $ "Port { dd . PortId } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
80+ PortValueData < int > dd => $ "Port { dd . PortId } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
81+ PortValueData < float > dd => $ "Port { dd . PortId } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
8082 _ => "Undefined Data Type" ,
8183 } ) ) ,
8284 PortValueCombinedModeMessage msg => $ "Port Value (Combined Mode) - Port { msg . PortId } " + string . Join ( ";" , msg . Data . Select ( d => d switch
8385 {
84- PortValueData < sbyte > dd => $ "Mode { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
85- PortValueData < short > dd => $ "Mode { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
86- PortValueData < int > dd => $ "Mode { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
87- PortValueData < float > dd => $ "Mode { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
86+ PortValueData < sbyte > dd => $ "Mode { dd . ModeIndex } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
87+ PortValueData < short > dd => $ "Mode { dd . ModeIndex } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
88+ PortValueData < int > dd => $ "Mode { dd . ModeIndex } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
89+ PortValueData < float > dd => $ "Mode { dd . ModeIndex } / { dd . ModeIndex } : { string . Join ( "," , dd . InputValues ) } ({ dd . DataType } )",
8890 _ => "Undefined Data Type" ,
8991 } ) ) ,
9092 PortInputFormatSingleMessage msg => $ "Port Input Format (Single) - Port { msg . PortId } , Mode { msg . Mode } , Threshold { msg . DeltaInterval } , Notification { msg . NotificationEnabled } ",
@@ -157,7 +159,7 @@ await protocol.ReceiveMessageAsync(message =>
157159 await rgbLight . SetRgbColorsAsync ( 0x00 , 0xff , 0x00 ) ;
158160 //await rgbLight.SetRgbColorsAsync(0xFF, 0x00, 0x00);
159161
160- var motor = new TechnicXLargeLinearMotor ( protocol , 0 ) ;
162+ var motor = new TechnicXLargeLinearMotor ( protocol , 0 , 0 ) ;
161163 // await motor.SetAccelerationTime(3000);
162164 // await motor.SetDeccelerationTime(1000);
163165 // await motor.StartSpeedForTimeAsync(6000, 90, 100, PortOutputCommandSpecialSpeed.Hold, PortOutputCommandSpeedProfile.AccelerationProfile | PortOutputCommandSpeedProfile.DeccelerationProfile);
@@ -166,11 +168,27 @@ await protocol.ReceiveMessageAsync(message =>
166168
167169 //await motor.StartSpeedForDegrees(180, -10, 100, PortOutputCommandSpecialSpeed.Brake, PortOutputCommandSpeedProfile.None);
168170
169- await motor . GotoAbsolutePosition ( 45 , 10 , 100 , PortOutputCommandSpecialSpeed . Brake , PortOutputCommandSpeedProfile . None ) ;
171+ await motor . GotoAbsolutePositionAsync ( 45 , 10 , 100 , PortOutputCommandSpecialSpeed . Brake , PortOutputCommandSpeedProfile . None ) ;
172+ await Task . Delay ( 2000 ) ;
173+ await motor . GotoAbsolutePositionAsync ( - 45 , 10 , 100 , PortOutputCommandSpecialSpeed . Brake , PortOutputCommandSpeedProfile . None ) ;
174+
175+ await Task . Delay ( 2000 ) ;
176+
177+ await motor . SetupNotificationAsync ( motor . ModeIndexAbsolutePosition , true ) ;
178+
179+ await motor . StartPowerAsync ( 80 ) ;
180+
181+ logger . LogWarning ( $ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX: { motor . AbsolutePosition } ") ;
182+
183+ await Task . Delay ( 2000 ) ;
184+
185+ logger . LogWarning ( $ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX: { motor . AbsolutePosition } ") ;
186+
170187 await Task . Delay ( 2000 ) ;
171- await motor . GotoAbsolutePosition ( - 45 , 10 , 100 , PortOutputCommandSpecialSpeed . Brake , PortOutputCommandSpeedProfile . None ) ;
172188
189+ await motor . StartPowerAsync ( 0 ) ;
173190
191+ logger . LogWarning ( $ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX: { motor . AbsolutePosition } ") ;
174192 // await motor.StartSpeedAsync(100, 90, PortOutputCommandSpeedProfile.None);
175193
176194 // await Task.Delay(2000);
0 commit comments