cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

Write negative Number to Drive with C++ interface

Write negative Number to Drive with C++ interface

Anonymous
Not applicable

I want to write a negative value to a paramter on the CtrlX Drive. Via Drive Engineering a decimal number can be written to the parameter which can be negative. This is not possible via the C++ interface, because there the number to write is a vector of byte, which holds no information about the number being positive or negative. Is it possible to write negative number via the C++ interface on the CtrlX and if yes how?

In my particular case it is the paramter "S-0-0052, Reference distance of encoder 1". This parameter can be positive and negative. 2022-02-07_11h36_15.png

Its format is DEC_MV(Signed decimal number). But in the C++ interface the data to send is a vector of uint8_t so a vector of unsigned numbers. Is there a logical conversion to a negative number? I have tried to set the first bit to 1, representing the minus bit for a signed, but this does not work.

 

auto data__ = data ? _fbb.CreateVector<uint8_t>(*data)

 

source: sdk/include/comm.ethercat.master/comm/ethercat/master/fbs/parameter_generated.h
 
Also the decimal place in the documentation is emtpy, which implies for me it is 0. After testing I found out it is actually 4.
1 REPLY 1

CodeShepherd
Community Moderator
Community Moderator

Changing only the first bit could be not enough depending on the data size. Here an example simply made with the calculator:

CodeShepherd_0-1644396708294.png

 

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist