feature request: channel input smarts

When inputting a channel number and the input doesn't start with a 1 or 2, automatically add a 0 in front.
It could be done with 0 too, but it's nice to retain backwards compatibility with muscle memory... ¯\_(ツ)_/¯
OR alternatively have the menu button accept the current input so we can just press "3 menu" instead of "003".
OR just throw an error (or ignore it) if the first number will result in an invalid channel.

Hello
I read to make  a new entry system, but change is ... multi file, multi line and make some function change.
Not add big code, but modifications to long sections.
If you compile yourself, you can read my repos
In Makefile active : ENABLE_MEMORY_KEYBOARD ?= 1
Entry procedure : to go on channel 12 : [1] [2] [MENU]
To entry in channel 5 : [5] [MENU]
to entry in chanel 145 : [1][4][5] (automatique change)
Note : my firmware is experimental and can't be used daily.. It's for my experimentation.
Possible add severial bug.
comment(s), idea(s), remark(s) or insult(s) are welcome
73's
Boris

Hello
I'm make a text file to show my idea to change the function : patch_entry_channel_memory.txt
In case anyone is interested and can explains my errors
73's
Boris

This suggestion could use better definition. For example, what if the selected channel is 30? We wouldn't want it to go to channel 3. One suggestion would be an entry timeout, like a TV remote: if you stop typing for 1 second, you're done?

For example, what if the selected channel is 30?

That would be [3] [0] [MENU], I'd assume.

Hello
Timeout, why not. I read if i can't implante this.
I don't read the delay system for moment.
Yes, for chanel 30 : you push [3][0][menu]
For me, of course, [0][3][0] isn't a pretty solution.
73's

hello
After 300 compilation, flash, tests et remake. I'm arrive a this solution.
I thinks in not very nice, but work. Of cause, make a modification add bug.
in misc.c :
change key_input_timeout_500ms          =  8000 / 500;  # 8 seconds
to : key_input_timeout_500ms          =  1000 / 500; # 1 second
in app/app.c :
line 1487
if (--gKeyInputCountdown == 0)
	{
        cancelUserInputModes();

	if (gBeepToPlay != BEEP_NONE)
	{
		AUDIO_PlayBeep(gBeepToPlay);
		gBeepToPlay = BEEP_NONE;
	}
...
change to :
if (--gKeyInputCountdown == 0)
	{
#ifdef ENABLE_MEMORY_KEYBOARD
      if (IS_MR_CHANNEL(gTxVfo->CHANNEL_SAVE))
        {
          MAIN_ProcessKeys(KEY_MENU, false, false);
          UI_DisplayMain(); // not logic but make job
          return;
        }
      else
#endif
        cancelUserInputModes();

 	if (gBeepToPlay != BEEP_NONE)
	{
		AUDIO_PlayBeep(gBeepToPlay);
		gBeepToPlay = BEEP_NONE;
	}
...
I thinks i forgot anything.
Adding this function is complicated for me with my poor programming knowledge.
it's not the best solution and I don't read the octet impact.
73's

Ok guys, I've implemented a solution that doesn't require you to press the M key (or another one). It seems to work not so bad. It will be enable in the next release.
Armel.

Uh, I don't know what is supposed to happen, exactly, but it's not working for me :sweat_smile:
It does nothing if I press less than 3 digits and let it expire.
[3][0][0] = Channel 44
[4][0][0] = 144
[5][0][0] = nothing
[6][0][0] = 88
[7][0][0] = 188
[8][0][0] = 32
[9][0][0] = 132
fascinating.

Just push 5 and you move to M5
Just push 17 and you move to M17
Just push 123 and you move to M123
Simple...

https://github.com/armel/uv-k5-firmware-custom/assets/127889/f4cd066f-36da-4faa-bd22-1d80ac3134e6

Oops! Looks like I copied and pasted code wrong :sweat_smile:
But I also found a slight problem: it saves to eeprom on every keypress. Not very ideal...

Furthermore, it saves the wrong channel when you don't input a complete (3 digits) channel.
Example:

Press 2. Let it change.
Press 1. Previous channel gets saved at this point. Channel changes to 1
Power off and on radio
Channel 2 is displayed instead of 1.

Ok, now it saves the good channel. This is fixed.
About eeprom, I will try to improve it, if I had time for that.
Life of eeprom does depend on temperature & time between writes. It's around 100 000 writes... So, personally, I wouldn't worry too much about it. By the way, it's easy to change eeprom and a K5 cost around 20 $ USD.

Nice!
Indeed, the eeprom is pretty robust, but since it can die (I've heard of a few uv-5rs that no longer save settings) it's better to improve the code where we can. I think if you can make a system that saves all state settings after a period of no user input, that should extend the eeprom live considerably, and possibly save many bytes in the process.

Check the last commit and try...

I'll test it out when I receive my new "disposable" uv-k5 later today. I figured having two radios is easier to develop with (though I don't really know how to program. I just like to pretend I'm doing productive things).

Just tried it out. Works great! :tada:

Fixed in next release.


Elements aren't Unobserved if Loaded via triggerLoad

I noticed that the triggerLoad function currently does not unobserve elements, so an unnecessary onIntersection can still happen that will return immediately due to the isLoaded check.  I had the idea in my fork to instead of just adding observer.unobserve(element) in triggerLoad to also have the onIntersection and observe methods call triggerLoad instead of duplicating the code from triggerLoad.  Would this be a sane change?
https://github.com/TiKevin83/lozad.js/commit/97e02bed37d0185eaccad9883a4d09c57f9f9604

yes, it should unobserve element after it's loaded by any means

Has this been incorporated into the main branch @ApoorvSaxena ? Thanks for the great plugin!


Missing support for arrays

The key-value store also supports arrays, very convenient to store for example the ordering of certain things. But this doesn't seem to be supported by CloudStorage at the moment, would be great to add support for this.

CloudStorage doesn't support arrays, because AppStorage doesn't support arrays.
The goal of this library is to be compatible with AppStorage, so that one can freely swap between the two.
If AppStorage gains support for arrays, we'll add them here as well.


Fix incorrect internal response type

Close #24167
The endpoint "set-default-branch" returns success, so just decode it as responseText
Confirmed by https://github.com/go-gitea/gitea/issues/24167#issuecomment-1512266842

Would it be hard to add a test?

Quite difficult. And at least it doesn't cause serious problem.

🤖 🎺


Android usage

Hi!
First of all - thank you for your work - seems to be amazing!
But there's no explanation, how to use it with Android - just link to non-existing  https://github.com/paulasiimwe/Android-ImageMagick
How can i get java interface for it?
Thank you in advance.

Looks like owner of ImageMagick6 port to Android(@paulasiimwe), which was also include Java interface, just delete his repository :(

Yup, so question is, where should i start from with it - can i use JMagick, or something similar?
Sorry for dumb questions - i'm just newbie with native... ;(

Looks like JMagick is a thin JNI interface for ImageMagick 6 (6.5.7 - 9 years old) and PC Linux\Windows, so require a ImageMagick6 libs build on you system.
Since December of last year it include a some code to support a 7 version too (which is used in this repo), but looks like not finished yet (well, I can't even build it now). I will try to build it - maybe it's a useful addition to code from this repo, but it would be fast (I didn't use Java for 15+ years ;))

Yeah, looks like there's no open-source builds for Java/Android now across the Internet, so it would be REALLY useful :)
Thank you in advance!
Anyway, i will try to use JMagick by myself... Though 8 years looks like damn old...

JMagick - it's just a interface, so you need a ImageMagick6 build(i.e. android\linux shared libraries for arm at leat) for android any way

Yes, I suspect. But it should be available to be built with Android NDK...

I've republished the repo.
Goodluck.

@paulasiimwe You're the best!

@paulasiimwe thank you!
@formatBCE I close this issue for now


Tests rescale by

Codecov Report
Attention: 7 lines in your changes are missing coverage. Please review.

Comparison is base (b2a1c6d) 50.09% compared to head (8d088ac) 73.25%.

Files
Patch %
Lines

src/napari_ndev/_utilities_container.py
60.00%
6 Missing :warning:

src/napari_ndev/_rescale_by.py
96.96%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #37       +/-   ##
===========================================
+ Coverage   50.09%   73.25%   +23.15%
===========================================
  Files           9       10        +1
  Lines         537      643      +106
===========================================
+ Hits          269      471      +202
+ Misses        268      172       -96

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Typo on section 3: kotlinx-corountines-core

Should be kotlinx-coroutines-core

Thanks for reporting! This is a duplicate of #79


Proof of concept

[x] Create an standalone react app (development).
[x] Add two panels (left and right) . Fixed size: 50%-50%
[x] Integrate molstar on the left side panel: https://github.com/molstar/molstar. Play around and try to customize a bit some filters. Use EMD-21375
[x] Integrate nightingale on the right side panel. A few annotation toolbars.  Play around and try to customize a bit some filters.Use EMD-21375. https://github.com/ebi-webcomponents/nightingale
[x] Integrate Ray Html without footer (new page this viewer) + app React.
[ ] Protvista: Study current implementation (APIs used, etc), so we can replicate in new protvista.

[ ] tracks: em validation
[ ] tracks: uniprot
[ ] tracks: BLAST

Tasks:

[ ] [provista-pdb]: Add support for overlapping fragments in subtracks (protvista->pdb->layout.js->bindTrackData).

Outdated


DNN module on android

I am interested in running OpenCV with DNN module on Android. Is this possible? How can I build opencv_contrib with Android support?

+1

Some information for anyone who is interested (cc @mtngld ):

As of now the only way this is feasible is through JNI and C++ (http://answers.opencv.org/question/72935/opencv-android-and-deep-learning-module/)

You need to build OpenCV with extra modules from here: https://github.com/Itseez/opencv_contrib

I am planning to play with Android Studio per instructions here: https://github.com/quanhua92/NDK_OpenCV_AndroidStudio

If anyone has any ideas/suggestions/tutorials on building an Android app with calls to C++ OpenCV  functions please add here. All this is quite new to me too.

Thanks!

Unfortunately I am not able to build the Android OpenCV SDK (https://github.com/Itseez/opencv/blob/master/platforms/android/build_sdk.py) using the additional modules found in contributions. I guess the code has to be modified accordingly but I am not an expert. Any help would be much appreciated. I am interested in the DNN

You may look on these builds: http://pullrequest.opencv.org/buildbot/builders/precommit-contrib_android They build a part of full Android SDK - one arch only (ARMv7) but with opencv_contrib modules.
There is this script also: https://github.com/Itseez/opencv/blob/master/platforms/scripts/cmake_android_arm.sh
P.S. You need to specify ANDROID_SDK and ANDROID_NDK/NDKROOT paths.

@alalek Thanks. Modifying the https://github.com/Itseez/opencv/blob/master/platforms/scripts/cmake_android_arm.sh did the tick:
#!/bin/sh
cd `dirname $0`/..

mkdir -p build_android_arm
cd build_android_arm

cmake -DOPENCV_EXTRA_MODULES_PATH=/Users/alex/Downloads/opencv_contrib/modules -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_TOOLCHAIN_FILE=../android/android.toolchain.cmake $@ ../..

This modified script built the Android OpenCV in the build_android_arm directory with the  dnn module.
Now my question is how do I import this OpenCV to my Android Studio?

Some more information:
I modified Android.mk accordingly to point to the build_android_arm (http://stackoverflow.com/questions/30202842/opencv-for-android-not-opencv-android-sdk) but when I try to include the dnn header in the native class .cpp like this:
#include "opencv2/dnn.hpp"
it says there is no such header. So I guess I need to re-import the OpenCV Java module into the project. How do I do that using the build_android_arm directory?

Did you try to run make install? (this should create subdirectory in build_android_arm and put distribution files into it).
P.S. Check CMake log about install path line and don't use "sudo", this will break you system.
--   Tests and samples:
--     Tests:                       YES
--     Performance tests:           YES
--     C/C++ Examples:              YES
--
--   Install path:                  /build-3/precommit_android/build/install
--
--   cvconfig.h is in:              /build-3/precommit_android/build
-- -----------------------------------------------------------------

@alalek nope and that seems to be the issue... :+1:

Hi,
I have an Android project running with OpenCV 3.1 native JNI & Java.
I would like to include the opencv_contrib files. Should I be compiling these into a separate .so library? or include them with the OpenCV default libraries?
In either case, can someone point me to the right direction?
Thank you.

Android projects usually refer to libopencv_java*.so. Try to build it with enabled contrib modules

@alalek
How do I enable the contrib modules, via the Android.mk file?
OPENCV_INSTALL_CONTRIB_MODULES:=on ?
I'm not sure how to enable them, also not sure how to specify the directory for the contrib files.
Thanks in advance!

You need to build OpenCV  from sources with OPENCV_EXTRA_MODULES_PATH CMake parameter.
See here for reference: http://pullrequest.opencv.org/buildbot/builders/master_noOCL-android/builds/188/steps/cmake/logs/stdio

@xsorifc28 I think this tutorial will help you with building the DNN module: https://github.com/alexkarargyris/Caffe_OpenCV_Android_App

@mongoose54 I was trying to compile on Windows, any suggestions for that?

I use this tutorial https://github.com/alexkarargyris/Caffe_OpenCV_Android_App and opencv with opencv-contrib can be compiled successfully, but I can not find the java folder in opencv/platforms/build_android_arm/install/sdk, there are etc and native folders only.

This solved my problem
export ANDROID_SDK_ROOT=/Users/gjongerh/Library/Android/sdk
export ANDROID_NDK=/Users/gjongerh/Library/Android/sdk/ndk-bundle
export PATH=$PATH:$ANDROID_NDK
export ANDROID_NATIVE_API_LEVEL=android-19  (Specified Android native API level 'android-8' is not supported by your)
export CMAKE_C_COMPILER=ndk-which gcc     (CMake Error at /opt/local/share/cmake-

export ANDROID_SDK_ROOT=/Users/gjongerh/Library/Android/sdk
export ANDROID_NDK=/Users/gjongerh/Library/Android/sdk/ndk-bundle
export PATH=$PATH:$ANDROID_NDK
export ANDROID_NATIVE_API_LEVEL=android-19  (Specified Android native API level 'android-8' is not supported by your)
export CMAKE_C_COMPILER=ndk-which gcc     (CMake Error at /opt/local/share/cmake-3.4/Modules/TestBigEndian.cmake:51)
export CMAKE_CXX_COMPILER=ndk-which gcc

Try this?
http://tzutalin.blogspot.tw/2016/01/installing-opencv-310-and-contrib-lib.html


ros2_control_demo_hardware package does not build on ROS2 Foxy

Hello,
When I am trying to build the package, i get many error messages and the build fails.
Starting >>> diffbot_description
Starting >>> ros2_control_demo_hardware
Starting >>> ros2_control_test_nodes
Starting >>> rrbot_description
Finished <<< diffbot_description [0.42s]
Finished <<< rrbot_description [0.46s]
Finished <<< ros2_control_test_nodes [1.41s]
--- stderr: ros2_control_demo_hardware
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:19:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_with_sensor.hpp:34:42: error: ‘node_interfaces’ in namespace ‘rclcpp_lifecycle’ does not name a type
34 | using CallbackReturn = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn;
|                                          ^~~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_with_sensor.hpp:44:3: error: ‘CallbackReturn’ does not name a type
44 |   CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override;
|   ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_with_sensor.hpp:47:3: error: ‘CallbackReturn’ does not name a type
47 |   CallbackReturn on_configure(const rclcpp_lifecycle::State & previous_state) override;
|   ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_with_sensor.hpp:56:3: error: ‘CallbackReturn’ does not name a type
56 |   CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override;
|   ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_with_sensor.hpp:59:3: error: ‘CallbackReturn’ does not name a type
59 |   CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override;
|   ^~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:15:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/diffbot_system.hpp:41:18: error: ‘CallbackReturn ros2_control_demo_hardware::DiffBotSystemHardware::on_init(const hardware_interface::HardwareInfo&)’ marked ‘override’, but does not override
41 |   CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override;
|                  ^~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/diffbot_system.hpp:50:18: error: ‘CallbackReturn ros2_control_demo_hardware::DiffBotSystemHardware::on_activate(const rclcpp_lifecycle::State&)’ marked ‘override’, but does not override
50 |   CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override;
|                  ^~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/diffbot_system.hpp:53:18: error: ‘CallbackReturn ros2_control_demo_hardware::DiffBotSystemHardware::on_deactivate(const rclcpp_lifecycle::State&)’ marked ‘override’, but does not override
53 |   CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override;
|                  ^~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:15:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_position_only.hpp:41:18: error: ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware::on_init(const hardware_interface::HardwareInfo&)’ marked ‘override’, but does not override
41 |   CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override;
|                  ^~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_position_only.hpp:44:18: error: ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware::on_configure(const rclcpp_lifecycle::State&)’ marked ‘override’, but does not override
44 |   CallbackReturn on_configure(const rclcpp_lifecycle::State & previous_state) override;
|                  ^~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_position_only.hpp:53:18: error: ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware::on_activate(const rclcpp_lifecycle::State&)’ marked ‘override’, but does not override
53 |   CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override;
|                  ^~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_position_only.hpp:56:18: error: ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware::on_deactivate(const rclcpp_lifecycle::State&)’ marked ‘override’, but does not override
56 |   CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override;
|                  ^~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:19:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_actuator.hpp:42:3: error: ‘CallbackReturn’ does not name a type
42 |   CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override;
|   ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_actuator.hpp:51:3: error: ‘CallbackReturn’ does not name a type
51 |   CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override;
|   ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_actuator.hpp:54:3: error: ‘CallbackReturn’ does not name a type
54 |   CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override;
|   ^~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:19:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/external_rrbot_force_torque_sensor.hpp:43:3: error: ‘CallbackReturn’ does not name a type
43 |   CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override;
|   ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/external_rrbot_force_torque_sensor.hpp:49:3: error: ‘CallbackReturn’ does not name a type
49 |   CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override;
|   ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/external_rrbot_force_torque_sensor.hpp:52:3: error: ‘CallbackReturn’ does not name a type
52 |   CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override;
|   ^~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:15:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_multi_interface.hpp:46:18: error: ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware::on_init(const hardware_interface::HardwareInfo&)’ marked ‘override’, but does not override
46 |   CallbackReturn on_init(const hardware_interface::HardwareInfo & info) override;
|                  ^~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_multi_interface.hpp:60:18: error: ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware::on_activate(const rclcpp_lifecycle::State&)’ marked ‘override’, but does not override
60 |   CallbackReturn on_activate(const rclcpp_lifecycle::State & previous_state) override;
|                  ^~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_multi_interface.hpp:63:18: error: ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware::on_deactivate(const rclcpp_lifecycle::State&)’ marked ‘override’, but does not override
63 |   CallbackReturn on_deactivate(const rclcpp_lifecycle::State & previous_state) override;
|                  ^~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:32:1: error: ‘CallbackReturn’ does not name a type
32 | CallbackReturn RRBotSystemWithSensorHardware::on_init(const hardware_interface::HardwareInfo & info)
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:94:1: error: ‘CallbackReturn’ does not name a type
94 | CallbackReturn RRBotSystemWithSensorHardware::on_configure(
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp: In member function ‘virtual std::vector<hardware_interface::StateInterface> ros2_control_demo_hardware::RRBotSystemWithSensorHardware::export_state_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:125:24: error: ‘info_’ was not declared in this scope
125 |   for (uint i = 0; i < info_.joints.size(); i++)
|                        ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:132:24: error: ‘info_’ was not declared in this scope
132 |   for (uint i = 0; i < info_.sensors[0].state_interfaces.size(); i++)
|                        ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:32:1: error: ‘CallbackReturn’ does not name a type
32 | CallbackReturn ExternalRRBotForceTorqueSensorHardware::on_init(
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp: In member function ‘virtual std::vector<hardware_interface::CommandInterface> ros2_control_demo_hardware::RRBotSystemWithSensorHardware::export_command_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:145:24: error: ‘info_’ was not declared in this scope
145 |   for (uint i = 0; i < info_.joints.size(); i++)
|                        ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp: In member function ‘virtual std::vector<hardware_interface::StateInterface> ros2_control_demo_hardware::ExternalRRBotForceTorqueSensorHardware::export_state_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:58:24: error: ‘info_’ was not declared in this scope
58 |   for (uint i = 0; i < info_.sensors[0].state_interfaces.size(); i++)
|                        ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp: At global scope:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:154:1: error: ‘CallbackReturn’ does not name a type
154 | CallbackReturn RRBotSystemWithSensorHardware::on_activate(
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:33:1: error: ‘CallbackReturn’ does not name a type
33 | CallbackReturn RRBotModularJoint::on_init(const hardware_interface::HardwareInfo & info)
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp: At global scope:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:67:1: error: ‘CallbackReturn’ does not name a type
67 | CallbackReturn ExternalRRBotForceTorqueSensorHardware::on_activate(
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:186:1: error: ‘CallbackReturn’ does not name a type
186 | CallbackReturn RRBotSystemWithSensorHardware::on_deactivate(
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:89:1: error: ‘CallbackReturn’ does not name a type
89 | CallbackReturn ExternalRRBotForceTorqueSensorHardware::on_deactivate(
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp: In member function ‘virtual std::vector<hardware_interface::StateInterface> ros2_control_demo_hardware::RRBotModularJoint::export_state_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:93:5: error: ‘info_’ was not declared in this scope
93 |     info_.joints[0].name, hardware_interface::HW_IF_POSITION, &hw_joint_state_));
|     ^~~~~
In file included from /opt/ros/foxy/include/rclcpp/client.hpp:40,
from /opt/ros/foxy/include/rclcpp/callback_group.hpp:23,
from /opt/ros/foxy/include/rclcpp/any_executable.hpp:20,
from /opt/ros/foxy/include/rclcpp/memory_strategy.hpp:24,
from /opt/ros/foxy/include/rclcpp/memory_strategies.hpp:18,
from /opt/ros/foxy/include/rclcpp/executor_options.hpp:20,
from /opt/ros/foxy/include/rclcpp/executor.hpp:33,
from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:26,
from /opt/ros/foxy/include/rclcpp/executors.hpp:21,
from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:28:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp: In member function ‘virtual hardware_interface::return_type ros2_control_demo_hardware::RRBotSystemWithSensorHardware::read()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:231:29: error: ‘info_’ was not declared in this scope
231 |       hw_sensor_states_[i], info_.sensors[0].state_interfaces[i].name.c_str());
|                             ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp: In member function ‘virtual std::vector<hardware_interface::CommandInterface> ros2_control_demo_hardware::RRBotModularJoint::export_command_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:103:5: error: ‘info_’ was not declared in this scope
103 |     info_.joints[0].name, hardware_interface::HW_IF_POSITION, &hw_joint_command_));
|     ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp: In member function ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware::on_init(const hardware_interface::HardwareInfo&)’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:31:44: error: ‘on_init’ is not a member of ‘hardware_interface::SystemInterface’
31 |   if (hardware_interface::SystemInterface::on_init(info) != CallbackReturn::SUCCESS)
|                                            ^~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:37:24: error: ‘info_’ was not declared in this scope; did you mean ‘info’?
37 |   hw_start_sec_ = stod(info_.hardware_parameters["example_param_hw_start_duration_sec"]);
|                        ^~~~~
|                        info
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:37:19: error: ‘stod’ was not declared in this scope; did you mean ‘std::cxx11::stod’?
37 |   hw_start_sec = stod(info.hardware_parameters["example_param_hw_start_duration_sec"]);
|                   ^~~~
|                   std::cxx11::stod
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/array:39,
from /usr/include/c++/9/tuple:39,
from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/memory:80,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_position_only.hpp:18,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:15:
/usr/include/c++/9/bits/basic_string.h:6642:3: note: ‘std::cxx11::stod’ declared here
6642 |   stod(const wstring& str, size_t* idx = 0)
|   ^~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp: At global scope:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:108:1: error: ‘CallbackReturn’ does not name a type
108 | CallbackReturn RRBotModularJoint::on_activate(const rclcpp_lifecycle::State & /previous_state/)
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:132:1: error: ‘CallbackReturn’ does not name a type
132 | CallbackReturn RRBotModularJoint::on_deactivate(const rclcpp_lifecycle::State & /previous_state/)
| ^~~~~~~~~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp: In member function ‘CallbackReturn ros2_control_demo_hardware::DiffBotSystemHardware::on_init(const hardware_interface::HardwareInfo&)’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:34:44: error: ‘on_init’ is not a member of ‘hardware_interface::SystemInterface’
34 |   if (hardware_interface::SystemInterface::on_init(info) != CallbackReturn::SUCCESS)
|                                            ^~~~~~~
In file included from /opt/ros/foxy/include/rclcpp/client.hpp:40,
from /opt/ros/foxy/include/rclcpp/callback_group.hpp:23,
from /opt/ros/foxy/include/rclcpp/any_executable.hpp:20,
from /opt/ros/foxy/include/rclcpp/memory_strategy.hpp:24,
from /opt/ros/foxy/include/rclcpp/memory_strategies.hpp:18,
from /opt/ros/foxy/include/rclcpp/executor_options.hpp:20,
from /opt/ros/foxy/include/rclcpp/executor.hpp:33,
from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:26,
from /opt/ros/foxy/include/rclcpp/executors.hpp:21,
from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:29:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp: In member function ‘virtual hardware_interface::return_type ros2_control_demo_hardware::RRBotModularJoint::read()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:158:5: error: ‘info’ was not declared in this scope
158 |     info.joints[0].name.c_str());
|     ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:40:24: error: ‘info’ was not declared in this scope; did you mean ‘info’?
40 |   hw_start_sec = stod(info.hardware_parameters["example_param_hw_start_duration_sec"]);
|                        ^~~~~
|                        info
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:40:19: error: ‘stod’ was not declared in this scope; did you mean ‘std::cxx11::stod’?
40 |   hw_start_sec = stod(info.hardware_parameters["example_param_hw_start_duration_sec"]);
|                   ^~~~
|                   std::cxx11::stod
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/array:39,
from /usr/include/c++/9/tuple:39,
from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/memory:80,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/diffbot_system.hpp:18,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:15:
/usr/include/c++/9/bits/basic_string.h:6642:3: note: ‘std::cxx11::stod’ declared here
6642 |   stod(const wstring& str, size_t* idx = 0)
|   ^~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp: In member function ‘virtual std::vector<hardware_interface::StateInterface> ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware::export_state_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:119:24: error: ‘info’ was not declared in this scope
119 |   for (uint i = 0; i < info.joints.size(); i++)
|                        ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp: In member function ‘virtual hardware_interface::return_type ros2_control_demo_hardware::RRBotModularJoint::write()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:174:5: error: ‘info’ was not declared in this scope
174 |     info.joints[0].name.c_str());
|     ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp: In member function ‘virtual std::vector<hardware_interface::CommandInterface> ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware::export_command_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:132:24: error: ‘info’ was not declared in this scope
132 |   for (uint i = 0; i < info.joints.size(); i++)
|                        ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp: In member function ‘virtual std::vector<hardware_interface::StateInterface> ros2_control_demo_hardware::DiffBotSystemHardware::export_state_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:102:25: error: ‘info’ was not declared in this scope
102 |   for (auto i = 0u; i < info.joints.size(); i++)
|                         ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp: In member function ‘virtual std::vector<hardware_interface::CommandInterface> ros2_control_demo_hardware::DiffBotSystemHardware::export_command_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:116:25: error: ‘info’ was not declared in this scope
116 |   for (auto i = 0u; i < info.joints.size(); i++)
|                         ^~~~~
In file included from /opt/ros/foxy/include/rclcpp/client.hpp:40,
from /opt/ros/foxy/include/rclcpp/callback_group.hpp:23,
from /opt/ros/foxy/include/rclcpp/any_executable.hpp:20,
from /opt/ros/foxy/include/rclcpp/memory_strategy.hpp:24,
from /opt/ros/foxy/include/rclcpp/memory_strategies.hpp:18,
from /opt/ros/foxy/include/rclcpp/executor_options.hpp:20,
from /opt/ros/foxy/include/rclcpp/executor.hpp:33,
from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:26,
from /opt/ros/foxy/include/rclcpp/executors.hpp:21,
from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:24:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp: In member function ‘virtual hardware_interface::return_type ros2_control_demo_hardware::DiffBotSystemHardware::read()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:193:26: error: ‘info’ was not declared in this scope
193 |       hw_velocities_[i], info_.joints[i].name.c_str());
|                          ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp: In member function ‘virtual hardware_interface::return_type ros2_control_demo_hardware::DiffBotSystemHardware::write()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:225:7: error: ‘info_’ was not declared in this scope
225 |       info_.joints[i].name.c_str());
|       ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp: In member function ‘CallbackReturn ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware::on_init(const hardware_interface::HardwareInfo&)’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:33:44: error: ‘on_init’ is not a member of ‘hardware_interface::SystemInterface’
33 |   if (hardware_interface::SystemInterface::on_init(info) != CallbackReturn::SUCCESS)
|                                            ^~~~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:39:24: error: ‘info_’ was not declared in this scope; did you mean ‘info’?
39 |   hw_start_sec_ = stod(info_.hardware_parameters["example_param_hw_start_duration_sec"]);
|                        ^~~~~
|                        info
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:39:19: error: ‘stod’ was not declared in this scope; did you mean ‘std::cxx11::stod’?
39 |   hw_start_sec = stod(info.hardware_parameters["example_param_hw_start_duration_sec"]);
|                   ^~~~
|                   std::cxx11::stod
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/stdexcept:39,
from /usr/include/c++/9/array:39,
from /usr/include/c++/9/tuple:39,
from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/memory:80,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_multi_interface.hpp:20,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:15:
/usr/include/c++/9/bits/basic_string.h:6642:3: note: ‘std::cxx11::stod’ declared here
6642 |   stod(const wstring& str, size_t* idx = 0)
|   ^~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp: In member function ‘virtual std::vector<hardware_interface::StateInterface> ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware::export_state_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:107:31: error: ‘info’ was not declared in this scope
107 |   for (std::size_t i = 0; i < info.joints.size(); i++)
|                               ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp: In member function ‘virtual std::vector<hardware_interface::CommandInterface> ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware::export_command_interfaces()’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:124:31: error: ‘info’ was not declared in this scope
124 |   for (std::size_t i = 0; i < info.joints.size(); i++)
|                               ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp: In member function ‘virtual hardware_interface::return_type ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware::prepare_command_mode_switch(const std::vector<std::cxx11::basic_string >&, const std::vector<std::cxx11::basic_string >&)’:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:146:33: error: ‘info’ was not declared in this scope
146 |     for (std::size_t i = 0; i < info.joints.size(); i++)
|                                 ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:163:27: error: ‘info’ was not declared in this scope
163 |   if (new_modes.size() != info.joints.size())
|                           ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:178:33: error: ‘info’ was not declared in this scope
178 |     for (std::size_t i = 0; i < info.joints.size(); i++)
|                                 ^~~~~
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:189:31: error: ‘info’ was not declared in this scope
189 |   for (std::size_t i = 0; i < info.joints.size(); i++)
|                               ^~~~~
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/pluginlib/class_list_macros.hpp:40,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:259:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = ros2_control_demo_hardware::RRBotSystemWithSensorHardware; B = hardware_interface::SystemInterface]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘ros2_control_demo_hardware::RRBotSystemWithSensorHardware’
218 |     return new C;
|            ^~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:19:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_with_sensor.hpp:38:7: note:   because the following virtual functions are pure within ‘ros2_control_demo_hardware::RRBotSystemWithSensorHardware’:
38 | class RRBotSystemWithSensorHardware : public hardware_interface::SystemInterface
|       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_with_sensor.hpp:28,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_with_sensor.cpp:19:
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:48:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::configure(const hardware_interface::HardwareInfo&)’
48 |   virtual return_type configure(const HardwareInfo & system_info) = 0;
|                       ^~~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:116:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::start()’
116 |   virtual return_type start() = 0;
|                       ^~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:122:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::stop()’
122 |   virtual return_type stop() = 0;
|                       ^~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:128:23: note: 	‘virtual std::string hardware_interface::SystemInterface::get_name() const’
128 |   virtual std::string get_name() const = 0;
|                       ^~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:134:18: note: 	‘virtual hardware_interface::status hardware_interface::SystemInterface::get_status() const’
134 |   virtual status get_status() const = 0;
|                  ^~~~~~~~~~
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/pluginlib/class_list_macros.hpp:40,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:135:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = ros2_control_demo_hardware::ExternalRRBotForceTorqueSensorHardware; B = hardware_interface::SensorInterface]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘ros2_control_demo_hardware::ExternalRRBotForceTorqueSensorHardware’
218 |     return new C;
|            ^~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:19:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/external_rrbot_force_torque_sensor.hpp:37:7: note:   because the following virtual functions are pure within ‘ros2_control_demo_hardware::ExternalRRBotForceTorqueSensorHardware’:
37 | class ExternalRRBotForceTorqueSensorHardware : public hardware_interface::SensorInterface
|       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/external_rrbot_force_torque_sensor.hpp:28,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/external_rrbot_force_torque_sensor.cpp:19:
/opt/ros/foxy/include/hardware_interface/sensor_interface.hpp:47:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SensorInterface::configure(const hardware_interface::HardwareInfo&)’
47 |   virtual return_type configure(const HardwareInfo & sensor_info) = 0;
|                       ^~~~~~~~~
/opt/ros/foxy/include/hardware_interface/sensor_interface.hpp:64:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SensorInterface::start()’
64 |   virtual return_type start() = 0;
|                       ^~~~~
/opt/ros/foxy/include/hardware_interface/sensor_interface.hpp:70:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SensorInterface::stop()’
70 |   virtual return_type stop() = 0;
|                       ^~~~
/opt/ros/foxy/include/hardware_interface/sensor_interface.hpp:76:23: note: 	‘virtual std::string hardware_interface::SensorInterface::get_name() const’
76 |   virtual std::string get_name() const = 0;
|                       ^~~~~~~~
/opt/ros/foxy/include/hardware_interface/sensor_interface.hpp:82:18: note: 	‘virtual hardware_interface::status hardware_interface::SensorInterface::get_status() const’
82 |   virtual status get_status() const = 0;
|                  ^~~~~~~~~~
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/pluginlib/class_list_macros.hpp:40,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:184:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = ros2_control_demo_hardware::RRBotModularJoint; B = hardware_interface::ActuatorInterface]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘ros2_control_demo_hardware::RRBotModularJoint’
218 |     return new C;
|            ^~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:19:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_actuator.hpp:36:7: note:   because the following virtual functions are pure within ‘ros2_control_demo_hardware::RRBotModularJoint’:
36 | class RRBotModularJoint : public hardware_interface::ActuatorInterface
|       ^~~~~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_actuator.hpp:26,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_actuator.cpp:19:
/opt/ros/foxy/include/hardware_interface/actuator_interface.hpp:46:23: note: 	‘virtual hardware_interface::return_type hardware_interface::ActuatorInterface::configure(const hardware_interface::HardwareInfo&)’
46 |   virtual return_type configure(const HardwareInfo & actuator_info) = 0;
|                       ^~~~~~~~~
/opt/ros/foxy/include/hardware_interface/actuator_interface.hpp:113:23: note: 	‘virtual hardware_interface::return_type hardware_interface::ActuatorInterface::start()’
113 |   virtual return_type start() = 0;
|                       ^~~~~
/opt/ros/foxy/include/hardware_interface/actuator_interface.hpp:119:23: note: 	‘virtual hardware_interface::return_type hardware_interface::ActuatorInterface::stop()’
119 |   virtual return_type stop() = 0;
|                       ^~~~
/opt/ros/foxy/include/hardware_interface/actuator_interface.hpp:125:23: note: 	‘virtual std::string hardware_interface::ActuatorInterface::get_name() const’
125 |   virtual std::string get_name() const = 0;
|                       ^~~~~~~~
/opt/ros/foxy/include/hardware_interface/actuator_interface.hpp:131:18: note: 	‘virtual hardware_interface::status hardware_interface::ActuatorInterface::get_status() const’
131 |   virtual status get_status() const = 0;
|                  ^~~~~~~~~~
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/pluginlib/class_list_macros.hpp:40,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:229:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware; B = hardware_interface::SystemInterface]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware’
218 |     return new C;
|            ^~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:15:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_position_only.hpp:35:7: note:   because the following virtual functions are pure within ‘ros2_control_demo_hardware::RRBotSystemPositionOnlyHardware’:
35 | class RRBotSystemPositionOnlyHardware : public hardware_interface::SystemInterface
|       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_position_only.hpp:24,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_position_only.cpp:15:
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:48:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::configure(const hardware_interface::HardwareInfo&)’
48 |   virtual return_type configure(const HardwareInfo & system_info) = 0;
|                       ^~~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:116:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::start()’
116 |   virtual return_type start() = 0;
|                       ^~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:122:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::stop()’
122 |   virtual return_type stop() = 0;
|                       ^~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:128:23: note: 	‘virtual std::string hardware_interface::SystemInterface::get_name() const’
128 |   virtual std::string get_name() const = 0;
|                       ^~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:134:18: note: 	‘virtual hardware_interface::status hardware_interface::SystemInterface::get_status() const’
134 |   virtual status get_status() const = 0;
|                  ^~~~~~~~~~
make[2]: *** [CMakeFiles/ros2_control_demo_hardware.dir/build.make:128: CMakeFiles/ros2_control_demo_hardware.dir/src/external_rrbot_force_torque_sensor.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/ros2_control_demo_hardware.dir/build.make:102: CMakeFiles/ros2_control_demo_hardware.dir/src/rrbot_system_with_sensor.cpp.o] Error 1
make[2]: *** [CMakeFiles/ros2_control_demo_hardware.dir/build.make:115: CMakeFiles/ros2_control_demo_hardware.dir/src/rrbot_actuator.cpp.o] Error 1
make[2]: *** [CMakeFiles/ros2_control_demo_hardware.dir/build.make:76: CMakeFiles/ros2_control_demo_hardware.dir/src/rrbot_system_position_only.cpp.o] Error 1
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/pluginlib/class_list_macros.hpp:40,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:235:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = ros2_control_demo_hardware::DiffBotSystemHardware; B = hardware_interface::SystemInterface]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘ros2_control_demo_hardware::DiffBotSystemHardware’
218 |     return new C;
|            ^~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:15:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/diffbot_system.hpp:35:7: note:   because the following virtual functions are pure within ‘ros2_control_demo_hardware::DiffBotSystemHardware’:
35 | class DiffBotSystemHardware : public hardware_interface::SystemInterface
|       ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/diffbot_system.hpp:24,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/diffbot_system.cpp:15:
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:48:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::configure(const hardware_interface::HardwareInfo&)’
48 |   virtual return_type configure(const HardwareInfo & system_info) = 0;
|                       ^~~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:116:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::start()’
116 |   virtual return_type start() = 0;
|                       ^~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:122:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::stop()’
122 |   virtual return_type stop() = 0;
|                       ^~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:128:23: note: 	‘virtual std::string hardware_interface::SystemInterface::get_name() const’
128 |   virtual std::string get_name() const = 0;
|                       ^~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:134:18: note: 	‘virtual hardware_interface::status hardware_interface::SystemInterface::get_status() const’
134 |   virtual status get_status() const = 0;
|                  ^~~~~~~~~~
make[2]: *** [CMakeFiles/ros2_control_demo_hardware.dir/build.make:63: CMakeFiles/ros2_control_demo_hardware.dir/src/diffbot_system.cpp.o] Error 1
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/pluginlib/class_list_macros.hpp:40,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:339:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware; B = hardware_interface::SystemInterface]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware’
218 |     return new C;
|            ^~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:15:
/home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_multi_interface.hpp:40:7: note:   because the following virtual functions are pure within ‘ros2_control_demo_hardware::RRBotSystemMultiInterfaceHardware’:
40 | class RRBotSystemMultiInterfaceHardware : public hardware_interface::SystemInterface
|       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/include/ros2_control_demo_hardware/rrbot_system_multi_interface.hpp:26,
from /home/farbod/ros2_control_demos/src/ros2_control_demo_hardware/src/rrbot_system_multi_interface.cpp:15:
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:48:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::configure(const hardware_interface::HardwareInfo&)’
48 |   virtual return_type configure(const HardwareInfo & system_info) = 0;
|                       ^~~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:116:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::start()’
116 |   virtual return_type start() = 0;
|                       ^~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:122:23: note: 	‘virtual hardware_interface::return_type hardware_interface::SystemInterface::stop()’
122 |   virtual return_type stop() = 0;
|                       ^~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:128:23: note: 	‘virtual std::string hardware_interface::SystemInterface::get_name() const’
128 |   virtual std::string get_name() const = 0;
|                       ^~~~~~~~
/opt/ros/foxy/include/hardware_interface/system_interface.hpp:134:18: note: 	‘virtual hardware_interface::status hardware_interface::SystemInterface::get_status() const’
134 |   virtual status get_status() const = 0;
|                  ^~~~~~~~~~
make[2]: *** [CMakeFiles/ros2_control_demo_hardware.dir/build.make:89: CMakeFiles/ros2_control_demo_hardware.dir/src/rrbot_system_multi_interface.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/ros2_control_demo_hardware.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Failed   <<< ros2_control_demo_hardware [2.34s, exited with code 2]
Summary: 3 packages finished [2.48s]
1 package failed: ros2_control_demo_hardware
1 package had stderr output: ros2_control_demo_hardware
2 packages not processed
Any help is appreciated.
Thanks!

Please use the foxy branch or start using rolling


const API

The PR refactors the boot-gen crate. The 0.1 release required a build script to define the boot data structures, and to emit the memory as a byte array. In this new release, we provide a const API to generate the data structures in your embedded code. The goal was to make the library easier to use (no more build scripts), and easier for us to maintain and extend (no need to maintain a data structure writer, define a new writer for different data structures). The PR also updates documentation, and library organization.
See the CHANGELOG for migration tips, and the tests for an example of the new API.

See mciantyre/teensy4-rs#89 for a concise example of the new API.

I like this change quite a lot, its nice to no longer need a build.rs for defining the flash config block! I'm impressed const fn's are able to provide this


How to implement multiple publisher and subscriber using Dapr for the same Azure Storage Account?

I have implemented two sets of Publisher and Subscriber applications (Pub1, Sub1)and (Pub2, Sub2). which are using the same container in the storage account.
At a given time only one set of publisher and subscriber is working. for example, only Pub1 and Sub1 set is sending and receiving messages. But Pub2 and Sub2 set is not working.
Also, the Lease Status is Leased.
I have tried creating a different container daprstatenew as well within the same storage account, but this is also not working.
For now, I have found only one solution to make it work is to create a different storage account for different Publisher and Subscriber sets.
Is there any way to make it work only in one storage account? because I don't think it is good practice to create different storage accounts for each set.
This is my dapr configuration file content:
apiVersion: dapr.io/v1alpha1

kind: Component

metadata:

name: emailservice

spec:

type: pubsub.azure.eventhubs

version: v1

metadata:

- name: connectionString

  value: XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

- name: consumerGroup         # EventHubs consumer group

  value: pendingemailsconsumer

- name: storageAccountName

  value: safxpaymentsdev

- name: storageAccountKey

  value: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx

- name: storageContainerName

  value: daprstate

@viveknuna Check this issue: https://github.com/dapr/dapr/issues/3664 to see if you are encountering the same limitation.
In a nutshell, the same Application can only subscribe to an event ONCE

@fbridger you've misunderstood my question. Please read again.


TL expression meaning?

can you help me to understand the following TL expression?
inputMediaPhotoExternal#922aec1 flags:# url:string caption:string ttl_seconds:flags.0?int = InputMedia;

inputMediaPhotoExternal (combinator name)------> is constructor of TYPE InputMedia
922aec1 (combinator identifier) ---------is crc32 of the following string--------> inputMediaPhotoExternal flags:# url:string caption:string ttl_seconds:flags.0?int = InputMedia

can you describe me to understand # and flags.0

TYPE InputMedia{
 flags:#       >>>>> what does mean?
 url:string
 caption:string
 ttl_seconds:flags.0?int   >>>>> what does mean?
}

<%Message>   >>>>> what does mean?
messages:vector<%Message> = MessageContainer;

?  >>>>> what does mean?
int ? = Int;

4*[ int ] >>>>> what does mean?
int128 4*[ int ] = Int128;

{t:Type} # [ t ]    >>>>> what does mean?
vector {t:Type} # [ t ] = Vector t;

can you describe me to understand # and flags.0

Flags# can be understood as the optional field of Google protobuf2

I do't known. :(

https://core.telegram.org/mtproto/TL

thanks.

? >>>>>    There are also “pseudo-declarations” that are allowed only to declare built-in types
int ? = Int;
https://core.telegram.org/mtproto/TL-formal#combinator-declarations

{t:Type} # [ t ] >>>>>
{t:Type}     is optinal field
#  or nat     a positive a real constant (> 0)
[ t ]            s sequeace of # data of type t
vector {t:Type} # [ t ] = Vector t;

can you describe me to understand # and flags.0
 flags:#       >>>>>  flag is a field with positive number type
 url:string
 caption:string
 ttl_seconds:flags.0?int   >>>>> this filed exist and the type is int if bit 0 of flag is set
}

when we read the flags: # field, if we want to know if the flag ttl_seconds:flags.0?int is set or not we must test the bit 0 inside the flag

yes


Bug: country flags stopped displaying next to abbreviations

@yangwao: including country flags is easily more identifiable than using 2-char country abbreviations alone.

Can you check if you are on the latest version or try in incognito?
Seems WFM

Feel free re-open if bug persists, check your cache or so, may we pushed some version and some where where we fixed it :)


Error while performing "test" step: Error: Multiple bindings for fabric have been detected, you need to unbind one or more to ensure only a single bind is present to continue

Which Caliper version are you using?
0.6.0
Which Node.JS version are you using?
v20.18.1
Which operating system are you using?
Ubuntu 22.04
Please provide some context for your error. For example, when did the error occur? What were you trying to achieve, and how?
I was trying to run caliper on my HyperledgerFabric v3.0.0 network. I bind just fabric:2.4 with command but it always says there is a multiple bindings. What is the problem and solution?
What was the observed incorrect behavior?
Caliper says there is multiple bindings and benchmark execution failed with error code 6
Please provide the error logs and their surroundings.
2024.11.28-17:25:37.105 info  [caliper] [cli-launch-manager]    Binding specification is present, performing binding for "fabric:2.4"
2024.11.28-17:25:37.110 warn  [caliper] [bind]  Working directory is not specified. Current path: "/home/umit/Desktop/HLFv3_PHD_UK/benchmarking"
2024.11.28-17:25:37.111 info  [caliper] [bind]  Binding for<EMAIL_ADDRESS>This might take some time...
2024.11.28-17:25:37.111 info  [caliper] [bind]  Using working directory: /home/umit/Desktop/HLFv3_PHD_UK/benchmarking
2024.11.28-17:25:37.112 info  [caliper] [bind]  Calling npm with: install<EMAIL_ADDRESS><EMAIL_ADDRESS>
up to date, audited 632 packages in 3s

19 packages are looking for funding
  run `npm fund` for details

48 vulnerabilities (4 low, 8 moderate, 15 high, 21 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
2024.11.28-17:25:41.036 info  [caliper] [cli-launch-manager]    Set workspace path: /home/umit/Desktop/HLFv3_PHD_UK/benchmarking
2024.11.28-17:25:41.037 info  [caliper] [cli-launch-manager]    Set benchmark configuration path: /home/umit/Desktop/HLFv3_PHD_UK/benchmarking/benchmarks/scenario/simple/fabcar/config.yaml
2024.11.28-17:25:41.037 info  [caliper] [cli-launch-manager]    Set network configuration path: /home/umit/Desktop/HLFv3_PHD_UK/benchmarking/networks/fabric/v2.1/network-config_2.1.yaml
2024.11.28-17:25:41.037 info  [caliper] [cli-launch-manager]    Set SUT type: fabric
2024.11.28-17:25:41.046 info  [caliper] [benchmark-validator]   No observer specified, will default to `none`
2024.11.28-17:25:41.046 info  [caliper] [caliper-engine]        Starting benchmark flow
2024.11.28-17:25:41.047 info  [caliper] [caliper-engine]        Skipping start commands due to benchmark flow conditioning
2024.11.28-17:25:41.047 info  [caliper] [caliper-engine]        Skipping initialization phase due to benchmark flow conditioning
2024.11.28-17:25:41.047 info  [caliper] [caliper-engine]        Skipping install smart contract phase due to benchmark flow conditioning
2024.11.28-17:25:42.610 error [caliper] [caliper-engine]        Error while performing "test" step: Error: Multiple bindings for fabric have been detected, you need to unbind one or more to ensure only a single bind is present to continue
    at _determineInstalledNodeSDKandVersion (/home/umit/Desktop/HLFv3_PHD_UK/benchmarking/node_modules/@hyperledger/caliper-fabric/lib/FabricConnectorFactory.js:52:19)
    at CaliperEngine.connectorFactory [as adapterFactory] (/home/umit/Desktop/HLFv3_PHD_UK/benchmarking/node_modules/@hyperledger/caliper-fabric/lib/FabricConnectorFactory.js:132:17)
    at CaliperEngine.run (/home/umit/Desktop/HLFv3_PHD_UK/benchmarking/node_modules/@hyperledger/caliper-core/lib/manager/caliper-engine.js:149:64)
    at LaunchManager.handler (/home/umit/Desktop/HLFv3_PHD_UK/benchmarking/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchManager.js:81:43)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2024.11.28-17:25:42.610 info  [caliper] [caliper-engine]        Skipping end command due to benchmark flow conditioning
2024.11.28-17:25:42.610 error [caliper] [cli-launch-manager]    Benchmark execution failed with error code: 6
Usage:
 caliper launch manager --caliper-bind-sut fabric:2.2 [other options]

Options:
  --help, -h           Show usage information  [boolean]
  --version            Show version information  [boolean]
  --caliper-bind-sut   The name and version of the platform to bind to  [string]
  --caliper-bind-cwd   The working directory for performing the SDK install  [string]
  --caliper-bind-args  Additional arguments to pass to "npm install". Use the "=" notation when setting this parameter  [string]
  --caliper-bind-file  Yaml file to override default (supported) package versions when binding an SDK  [string]

Error: Benchmark execution failed with error code: 6
    at LaunchManager.handler (/home/umit/Desktop/HLFv3_PHD_UK/benchmarking/node_modules/@hyperledger/caliper-cli/lib/launch/lib/launchManager.js:89:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Please provide your benchmark configuration file content, if possible.
test:
  workers:
    type: local
    number: 1
  rounds:
    - label: Query all cars.
      txDuration: 30  #transaction duration
      rateControl:
          type: fixed-load
          opts:
            tps: 5 #with  of 5 TPS
      workload:
        module: benchmarks/scenario/simple/fabcar/queryAllCars.js
        arguments:
          assets: 10
          startKey: '1'
          endKey: '50'
    - label: Query a car.
      txDuration: 10
      rateControl:
          type: fixed-load
          opts:
            transactionLoad: 5
      workload:
        module: benchmarks/scenario/simple/fabcar/queryCar.js
        arguments:
          assets: 10
    - label: Create a car.
      txDuration: 30
      rateControl:
          type: fixed-load
          opts:
            transactionLoad: 5
      workload:
        module: benchmarks/scenario/simple/fabcar/createCar.js
monitors:
  resource:
  - module: docker
    options:
      interval: 5
      containers:
      - all
    charting:
      bar:
        metrics: [Memory(avg), CPU%(avg)]
      polar:
        metrics: [all]
  - module: process
    options:
      interval: 3
      processes: [{ command: 'node', arguments: 'caliper', multiOutput: 'avg' }]
    charting:
      bar:
        metrics: [all]

Please provide your network configuration file content, if possible.
name: Fabric
version: "2.0.0"
mutual-tls:

caliper:
  blockchain: fabric

# info: #comment yapıldı.
#   Version: 2.2.4
#   Size: 2 Orgs with 2 Peer
#   Orderer: Raft
#   Distribution: Single Host
#   StateDB: CouchDB

clients:
  client0.org1.uk.com:
    client:
      organization: Org1
      credentialStore:
        path: /tmp/hfc-kvs/org1
        cryptoStore:
          path: /tmp/hfc-cvs/org1
      clientPrivateKey:
        path<EMAIL_ADDRESS>      clientSignedCert:
        path: ../crypto-material/peerOrganizations/org1.uk.com/users/User1<EMAIL_ADDRESS>
channels:
  ukchannel:
    created: true
    orderers:
    - orderer.uk.com
    peers:
      peer0.org1.uk.com:
        eventSource: true
      peer0.org2.uk.com:
       eventSource: true

    contracts:
    - id: fabcar
      version: "1"
      language: golang

organizations:
  Org1:
    mspid: Org1MSP
    peers:
      - peer0.org1.uk.com
    adminPrivateKey:
      path<EMAIL_ADDRESS>    signedCert:
      path: ../crypto-material/peerOrganizations/org1.uk.com/users/Admin<EMAIL_ADDRESS>
  Org2:
    mspid: Org2MSP
    peers:
      - peer0.org2.uk.com
    adminPrivateKey:
      path<EMAIL_ADDRESS>    signedCert:
      path: ../crypto-material/peerOrganizations/org2.uk.com/users/Admin<EMAIL_ADDRESS>
orderers:
  orderer0.uk.com:
    url: grpcs://localhost:7050
    grpcOptions:
      ssl-target-name-override: orderer0.uk.com
    tlsCACerts:
      path: ../crypto-material/ordererOrganizations/uk.com/orderers/orderer0.uk.com/tls/ca.crt

peers:
  peer0.org1.uk.com:
    url: grpcs://localhost:7051
    grpcOptions:
      ssl-target-name-override: peer0.org1.uk.com
      grpc.keepalive_time_ms: 600000
    tlsCACerts:
      path: ../crypto-material/peerOrganizations/org1.uk.com/peers/peer0.org1.uk.com/tls/ca.crt

  peer0.org2.uk.com:
    url: grpcs://localhost:8051
    grpcOptions:
      ssl-target-name-override: peer0.org2.uk.com
      grpc.keepalive_time_ms: 600000
    tlsCACerts:
      path: ../crypto-material/peerOrganizations/org2.uk.com/peers/peer0.org2.uk.com/tls/ca.crt

Please provide your workload module content, if possible.
No response
Please provide any additional information you deem relevant to the error.
Under node_modules folder, I have @hyperledger folder and under it, there are four folders (named caliper-cli, caliper-core, caliper-ethereum, caliper-fabric, fabric-gateway, and fabric-protos). The first four folders were downloaded after npm install command. The last two ones were downloaded after I typed npm install --save<EMAIL_ADDRESS>Maybe there is something that I overlooked, I unbinded all version by changing version number in caliper unbind --caliper-bind-sut fabric:X.X command. I tried binding only 2.4 but it does not work.

@umitkilic Have you checked out the caliper tutorial for hyperledger fabric ? It shows how to install caliper and bind to fabric gateway so I would suggest you follow that path
tutorial link: https://hyperledger-caliper.github.io/caliper/v0.6.0/fabric-tutorial/tutorials-fabric-existing/

@umitkilic Have you checked out the caliper tutorial for hyperledger fabric ? It shows how to install caliper and bind to fabric gateway so I would suggest you follow that path tutorial link: https://hyperledger-caliper.github.io/caliper/v0.6.0/fabric-tutorial/tutorials-fabric-existing/

I completely rebuilt the Fabric network and followed the exact same steps as described on the site, but I still get the same error.

I am writing this for those who will encounter this problem in the future. This solution led me to another problem but it does not give this error anymore. The problem is caused by the inability to isolate some files when working with more than one hyperledger fabric version. When I tracked the source of the error, I saw that the fabric-network folder in the node_modules folder caused this error. Because it is not used in Hyperledger Fabric v2.4 and later versions (https://www.npmjs.com/package/fabric-network) and Fabric Gateway needs to be used instead. If you delete the relevant folder or adjust your runtime environment accordingly, this problem will be solved.


Issue releasing

@isagalaev I think I broke our ability to release with a recent commit. If you look at the release failure - output below, it's missing the demo/ directory.
When updatehljs.py calls ./tools/build.js, it needs to also have the --docs option passed to it. Is it possible to add that?
Traceback (most recent call last):
  File "/home/maniac/hljs_org/hljs_org/management/commands/updatehljs.py", line 104, in handle
    self._handle(version)
  File "/home/maniac/hljs_org/hljs_org/management/commands/updatehljs.py", line 79, in _handle
    call_command('publishtest')
  File "/home/maniac/hljs_org/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 130, in call_command
    return command.execute(*args, **defaults)
  File "/home/maniac/hljs_org/venv/lib/python3.6/site-packages/django/core/management/base.py", line 356, in execute
    output = self.handle(*args, **options)
  File "/home/maniac/hljs_org/hljs_org/management/commands/publishtest.py", line 44, in handle
    shutil.copytree(os.path.join(build_path, 'demo'), demo_dst)
  File "/usr/lib/python3.6/shutil.py", line 309, in copytree
    names = os.listdir(src)
FileNotFoundError: [Errno 2] No such file or directory: '/home/maniac/code/highlight/build/demo'

Yes, should be fairly easy. I think I'll be able to tackle it in about an hour.

Added the parameter, ran it manually, and it went well:
(venv) maniac@smorg:~/hljs_org$ ./manage.py updatehljs 9.15.1
2019-02-24 21:34:47,916 INFO hljs_org.updatehljs Checking out version 9.15.1...
2019-02-24 21:34:48,514 INFO hljs_org.updatehljs Checking version consistency within the source...
2019-02-24 21:34:48,516 INFO hljs_org.updatehljs Reinstalling node dependencies...
2019-02-24 21:35:11,502 INFO hljs_org.updatehljs Building CDN build to populate cache...
2019-02-24 21:35:16,971 INFO hljs_org.updatehljs Moving CDN build over to /home/maniac/app-data/hljs_cache
2019-02-24 21:35:16,988 INFO hljs_org.updatehljs Updating CDN repo at /home/maniac/code/cdn-release
2019-02-24 21:35:24,169 INFO hljs_org.updatehljs Tag 9.15.1 already exists in the local CDN repo
2019-02-24 21:35:26,453 INFO hljs_org.publishtest Publishing test page to /var/www/hljs_org/static
2019-02-24 21:35:26,453 INFO hljs_org.publishtest Building full browser build...
2019-02-24 21:35:32,009 INFO hljs_org.publishtest Copying highlight.pack.js...
2019-02-24 21:35:32,011 INFO hljs_org.publishtest Copying demo...
2019-02-24 21:35:32,027 INFO hljs_org.publishtest Building browser build for [python xml javascript http cpp sql clojure cs objectivec java swift css ruby makefile go coffeescript bash ini rust handlebars prolog typescript elm json]...
2019-02-24 21:35:34,299 INFO hljs_org.publishtest Copying highlight.site.pack.js...

0 static files copied to '/var/www/hljs_org/static', 63 unmodified.
2019-02-24 21:35:34,319 INFO hljs_org.updatehljs Updating news entry...
2019-02-24 21:35:35,292 INFO hljs_org.updatehljs Published npm version is 9.14.2
2019-02-24 21:35:35,293 INFO hljs_org.updatehljs Publishing version 9.15.1 to npm...
2019-02-24 21:35:42,974 INFO hljs_org.updatehljs Update to version 9.15.1 completed.


Overlay microscopy channels with spimaging

Hi,
I recently started to use spimagine for volume rendering of microscopy data and it works perfectly! However, I was wondering if there is an implemented (or easy) way to overlay channels ( image with shape 3, 48, 2048, 2048 (c,z,y,x)) (similarly as what you have in ClearVolume-ImageJ)?

Hi Cedric,
Great to hear it's useful for you!
Currently, multichannel overlay is not implemented - it's on the top of the bucket list though.
What I normally do is to render the channels separately using the same keyframe animation states and then combine the resulting images with imagemagick.
You can do this by open the keyframe panel, select all the keyframes and then save the states as a json file. When you open the next channel, you can just drag and drop the json file on the keyframe panel.
I'll leave the issue open for my notice ;)

Thank you for your answer, spimagine is very useful! I usually to work with Mayavi which is very powerful but really hard to work with.

Mayavi which is very powerful but really hard to work with.

D'accord with both :)

Just adding my 👍 to this request... ;) I really need this!
Hi @maweigert and @cespenel! 👋

Hi Martin,
Could you share a bit more about how you processed the images?
Did you use the composite operator? I put the images in two folders. I guess I can loop through the folders. How did you do it?
Thanks!


Fix issue #46 and make post process pipeline use common code

https://github.com/nod-ai/SHARK-TestSuite/issues/46 fixed, uses now current phase name
The tools.stubs.commonutils is included in run.py and model.py to allow building any arbitrary post processing pipeline to allow meaningful comparison of outputs for quantized models

Thanks for catching them, fixed, merging now.


Setting children of computed values

Related to #2122: if obj is a computed value with a foo property, setting obj.foo should cause an error if obj does not have a setter function.
If obj does have a setter, there are two possibilities:

an error – you should set obj directly
the setter should be called with the current value, except with the foo property overwritten

Of those I think I favour 1 – there's no way of knowing whether it's safe to mutate the value of obj from outside the computation.

Implemented option 1 as 732a07c1e7b926d272e31379ba01238459a6b187 on #2122

Seems artificially restrictive to me, what problem is this trying to solve?
If I understand correctly, it means if I have a filtered list, I can no longer edit the items of that list:
{{#each filtered(items)}}

<input value='{{this.name}}'>
{{/each}}

That already fails – it just does so without warning! http://jsfiddle.net/rich_harris/by1kmhxt/. To do that you'd need to iterate over items then wrap the input in an {{#if filter(this)}} block.

Here's the warning you'd get with #2122:

I understand we have the limit of not being able to map items of items to corresponding filtered(items) (someday :) ), but there are times when that limitation is fine and you just want to operate on the data tree under the computation.
I think a warning would be ok, but not an error (looks like this is the case from screenshot).  But I think the guidance is wrong, it should just warn that the computation will not notify equivalent properties of it's dependencies.

It does error if you attempt ractive.set('computed.child', 'foo'), the warning is only for attempted two-way binding. But it turns out the error causes a problem with a particular component edge case, so I've disabled that in #2124 anyway, at least temporarily :)

there are times when that limitation is fine and you just want to operate on the data tree under the computation

interesting – can you elaborate? I didn't imagine there'd be a case for doing that (surely it's dangerous since you might well be mutating objects and causing the view to desync without realising it – try editing the filtered list then clicking the 'force update' button on this updated fiddle), but happy to be proven wrong.

@Rich-Harris Thought about it some more and given the limitations (inability) to map through expressions this seems like the right way to go.
Though I think a bigger piece of the puzzle (beyond twoway binding) is educating people to use view filters instead of data filters. The later causes replacement of data through a large number of nodes whereas the former adds or removes or needed nodes.
Along those lines, another thing I've learned is that for for frequently mutating lists style='{{#if filter(this)}}display:none;{{/if}}' makes a lot more sense than conditionally rendering/unrendering entire fragment.

@martypdx - yes, I have begun to do the same thing. the cost for the creation and removal of elements has become very costly (a few hundred ms of freeze for long lists)... I did it differently though. I had a let els = findAll('...', {live: true}) where I go through and update it manually. only when I need to get rid of the element, do I splice it out of the list - which is why the splice problem is such a big one for me...
I just had an epiphany!! I will just save a deleted list and keep those as display none too, that is, until I'm ready to delete the whole list!! that way my splice problem goes away.
on a related subject, do you guys know of a way to transfer an element from one list of data to another?
let l1 = [{a: 1}, {a: 2}, {a: 3}]
let l2 = []
this.set('l1', l1)
this.set('l2', l2)
l2.push(l1.splice(1, 1)[0])

something like that, but without needing to rerender the elements for the data: {a: 2}
so, say something the template was something like this:

{{#each l1}}
  <item d="{{.}}" />
{{/each l1}}

{{#each l2}}
  <item d="{{.}}" />
{{/each l2}}

what I would want to do, is move the fragment from one list to the other without having to recreate the elements. does that make sense?

is move the fragment from one list to the other without having to recreate the elements. does that make sense

yep, makes sense but doesn't currently exist. :)
Would be useful for dragging items between lists. Though I don't really have pref problem with current times for that operation. But it has caused issues with decorators getting torn down, recreated, etc.
Might be difficult to infer from api because even if you can up with something better than say:
ractive.move( 'list1', 3, 2 ).to( 'list2', 4);
How do you decide what DOM nodes get moved from what section to what other section? Maybe it's not an api at all but a template semantics that gets applied during the run loop.

yeah, actually I was thinking about that too, hehe... I know what I want to do, but I don't have it clear how I would write such a thing... I'm leaning against syntax altogether. we know that objects can be identified from other objects, so splicing an object out of an array can be identified if inserted back into another.
so, I like your syntax with the move, however there is an inherent problem if list2 has a different way of rendering the same data. so, my original idea actually solves the problem in a different way. there is a fragment cache linked to data objects in lists (literals don't count)... it's based on a WeakMap so there's no memory leakage either. when fragments are removed from the list, they are not discarded immediately. and, whenever data is added to a list and is also an object, we'd do the lookup on the fragment cache for the template to see if that fragment is still is located somewhere in memory. if it is, then the fragment is used instead of recreated.
for example, in the drag scenario, it's common to splice the element out of one list and put it into the other, so this would just work without any extra syntax at all. the other use case I have is a long list of elements, and I want to expand one of the elements to full screen, so right now I hack it and I set all the other elements to display none and simulate a page change - because if I delete them, then hit the back button, the browser will freeze for 100ms while rerendering the list. the template fragment cache solves both of these use cases elegantly.
the one thing I would want to have though, is some way of getting access to this cache, because for example, I'm developing a mobile app and I'd like to maintain the fragments of the home page in memory so when the user navigates away from the home screen a moment to open some other unimportant panel I don't need to rerender all that data again.
how about that?

FWIW I have used this a fair amount in my pre-0.8 projects: {{#each some.filterAndSort.expression()}}... <input value="{{.someval}}" /> ... {{/each}}. I was a bit surprised when I swapped out 0.7.3 for edge. I don't see any harm in allowing it with the proper warning and guidance, since it is terribly convenient for mockups. I can also appreciate that it can be a bit of a sharp edge if you're not careful.

I too just ran into this trying to migrate to 0.8.x (#2330, thanks @evs-chris). We use computed props to act as aliases of sorts for when a lot of logic or other conditions determine which what item should be returned by the computed. Not being able to set anything on the returned item is a huge limiting factor.

2 the setter should be called with the current value, except with the foo property overwritten

Of those I think I favour 1 – there's no way of knowing whether it's safe to mutate the value of obj from outside the computation.

I wish I saw this back in September. I would have been a loud advocate for option 2. :)

We could add an option like computedBinding: true that you have to opt-in to use. IMO that would allow people who "know what they're doing" to have a bit more rope with which to hang themselves :grin: .

I was just looking into doing a PR for that, but I hadn't come up with a good name yet.

@martypdx @evs-chris That'd work for me! I wish I could help out with these PRs without breaking everything and anything :(


[CMake] Remove swift-syntax install component

This is now unused.

@swift-ci please test

@swift-ci build toolchain

Linux Toolchain (Ubuntu 16.04)
Download Toolchain
Git Sha - 171c3c49898d658d92e1f3213dfcb8ae77190c31
Install command
tar zxf  swift-PR-20554-92-ubuntu16.04.tar.gz
More info

@swift-ci please build toolchain
@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 171c3c49898d658d92e1f3213dfcb8ae77190c31

Build failed
Swift Test Linux Platform
Git Sha - 171c3c49898d658d92e1f3213dfcb8ae77190c31

@swift-ci please test
@swift-ci please build toolchain

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 8d44843043991ea9eab60c57f562190a8d2bccc8

Build failed
Swift Test Linux Platform
Git Sha - 8d44843043991ea9eab60c57f562190a8d2bccc8

single quotes in branch names? madness

Toolchain builds finished, not sure why Github hasn't realized it yet.

@harlanhaskins I'm not surprised git allowed it, surprised anyone would do that :trollface:


[WIP] Linear layouts

Today we have many different layout objects, representing e.g. MMAv2 operands in registers, MMAv2 results in registers (different thing!), AMD tensor core operands in registers, shared memory swizzled Just Right for Hopper MMAv3, and so on.
In CUTLASS v2, they used to have the same problem.  In v3, they introduced the notion of a CuTe layout, which unifies all of these special cases into one programmatic thing.
I want to do the same thing for Triton, because

we have a bunch of known bugs around layout conversions that have been very hard to fix,

there are certain operations (like some reshape + transpose + reshape combinations) that cannot be represented efficiently with today's layouts, and

the code for handling layouts is already very complex, and I'm concerned that Blackwell is going to make the problem worse.

One approach I considered is using CuTe inside Triton.  But I concluded it's not a great fit for various reasons.  As an alternative, @apgoucher proposed this idea of "linear layouts" that seems to work really well, and is a lot simpler.
This PR is currently a first pass of linear layouts.  It Appears To Work (tm).
The way this PR uses linear layouts is that before we generate the indices for a Triton BlockedLayout, we convert it to a linear layout and use that to generate indices instead.
The implementation plan is to do the same thing for the other Triton layouts (i.e. make codegen only use linear layouts).  Once that is working, we can start using linear layouts in the Triton middle-end.  Eventually the goal is to replace all layouts with just this one.
There are a few questions still outstanding which need to be resolved before we can land this.

Are linear layouts actually flexible enough to represent all the layouts we care about?

What will the textual IR look like for linear layouts?  Can we make it as easy to read as the current IR?

The one issue I'm aware of that remains before I'm comfortable taking this out of draft is that CI time goes from ~6m to ~6:30.  I was hoping that speeding up the surjectivity check would fix this, but the problem remains.  I need to dig in to understand where this is coming from.

The one issue I'm aware of that remains before I'm comfortable taking this out of draft is that CI time goes from ~6m to ~6:30. I was hoping that speeding up the surjectivity check would fix this, but the problem remains. I need to dig in to understand where this is coming from.

I can confirm that LLVM compilation time increases almost 2x in test/unit/hopper/test_gemm.py::test_gemm[64-128-128-4-1-512-256-256-False-False-True-none-float32-False-3] (probably also other tests). We're probably making LLVM work harder to simplify the new idiom we're producing. I'll see what I can do...

Interesting, the final PTX roughly the same? Usually arithmetic simplifications to happen early in LLVM flow

I recently saw our internal Triton developers change layout of intermediate tensors by transposing them throughout, it actually has a significant perf improvement. I wonder if the linear layout will make it possible to reason about layout transpose and rewrite a slice in a transposed way, similar to how we rematerialize layout conversion in remove-layout pass.

I wonder if the linear layout will make it possible to reason about layout transpose and rewrite a slice in a transposed way, similar to how we rematerialize layout conversion in remove-layout pass.

That is one of the goals.

I'm still debugging the compilation-time slowdown, but so far it points to something mostly unrelated to this PR.  Our TTGIR -> LLVM-dialect conversion is very slow even without this, but then this makes it slower.  Not sure why yet, but Thomas and I don't think it needs to block this PR.  If the slowness does become a problem, it's a one-line change to disable this code.

I've recovered most of the regression simply by emitting less IR inside applyLayouts.  I don't like it -- we're manually constant-folding :( :( -- but the regression on the tests (which I'm using as a proxy for the "real life" compilation time regression) is now 5:30 -> 5:50, compared to 6:30 before I emitted less IR.  So this is probably good enough for now.


Update SOFATracer's document address

use new official document address (http://www.sofastack.tech/sofa-tracer/docs/Home)  of
SOFATracer

Pull Request Test Coverage Report for Build 134

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 63.569%

Totals

Change from base Build 121:
0.0%

Covered Lines:
2244

Relevant Lines:
3530

💛  - Coveralls

The link of quickstart also need change to http://www.sofastack.tech/sofa-tracer/docs/QuickStart


pptx.shapes not recognised by Typescript

Hello
I'm trying to add shapes in a project with typescript, but the entity .shapes in pptx is not recognised.
This simple code
const pptSlide = pptx.addSlide(slide.title);
pptSlide.addShape(pptx.shapes.RECTANGLE, {});

results in:
any
Property 'shapes' does not exist on type 'PptxGenJS'.ts(2339)

I see the there's a collection of shapes (PowerPointShapes), but maybe this collection is not included in the types declaration?

I am still facing this issue in version 3.12.0. Below are the error i am getting. i am using angular version 8.2
847  export type Coord = number | ${number}%
error TS2339: Property 'shapes' does not exist on type 'PptxGenJS'.
 error TS2559: Type 'string' has no properties in common with type 'ShapeLineProps'.


Install extentions to PC without internet

Hi!
I need install extentions without internet.
I download sqltool vsix and hanna driver vsix and install him. But when i try connect to batabase VSCode show icons with message:
"You need to install "@sap/hana-client@latest" to connect to QED."
How I can install driver without internet?

Hi
Try npm install -g '@sap/hana-client'

Eventually the npm package needs to be installed here: /Users/<your user name>/Library/Application Support/vscode-sqltools (for Mac), or globally on you machine.
you may try to link your current hana-client installation to that location:
# Goto you current hana-client installation (in the folder that has the node-modules in it.
npm link @sap/hana-client

# Goto /Users/<your user name>/Library/Application Support/vscode-sqltools (Mac only)
npm link @sap/hana-client

I hope this would help


Can not set VCPU via Sunstone when instantiating a template

When instantiating a template that has an allowed range for VCPU value, Sunstone will fail to instantiate it with the proper VCPU value defined when instantiating IF the value was entered  in the text box and not using the slider.
For RAM value, for example, when a value is entered in the RAM text box (when instantiating a template with a range of allowed RAM values), the RAM slider will be automatically "moved" to the right position after loosing focus on the RAM text box. This does not happen for CPU. The CPU slider is never updated, and sunstone uses that slider for defining this value.
When VCPU is entered using the slider instead of the text box, it goes fine.
If the slider is used to set a cpu value, and then the text box is modified, the value entered using the slider is used (since the text box never updated the slider).
To Reproduce
Create a template with a "range" of possible values for VCPU. Instantiate that template (as any user, using any view) and try to define an allowed vcpu value using the text box.
Expected behavior
VCPU slider should be updated with the vcpu value entered in the vcpu text box, and that value should be used for the VM.
Details

Affected Component: Sunstone
Version: 5.12.6, 5.12.7

Additional context
Add any other context about the problem here.

Progress Status

[x] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

@tinova PR to be approved:

code
docs

@tinova PR to be approved:

code
docs