Dear Community User! We have started the migration process.
This community is now in READ ONLY mode.
Read more: Important information on the platform change.

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

Making Unit Classes Persistant

Making Unit Classes Persistant

joeG
Established Member

I am following this guide on using unit classes for unit conversion. When I cycle power the unit selection is lost. Is there a way to retain the unit selection?

https://www.smart-hmi.com/user/download/deliver/docs/documentation-dev-how-to-unit-classes.git-2.14-... 

1 REPLY 1

webiq-sk
Frequent Contributor

Unit classes exist only in the frontend, i.e. the browser. Therefore, even if you open the HMI on another system and have changed the unit classes on the first system before the second one will still show the defaults.

You could in theory simply create a LocalScript that does this:
- listen constantly to all virtual:unitclass-1-adapter item changes
- write the value on change to a non-virtual item
- in that same LocalScript initially read the value of that non-virtual item and set the unit class virtual items accordingly
- put the LocalScript inside your HMI so that it is always executed when the HMI is started

This however would result in all HMIs always showing the same unit classes on load that were last selected in any other browser and not allow different unit classes per instance.

If you want to use the same unit classes by default on all browsers anyway you could simply change the order of the elements in "unitClasses" in the JSON file so that the defaults are listed first.

Alternatively, you could bind it to the browser itself using localStorage: https://www.digitalocean.com/community/tutorials/js-introduction-localstorage-sessionstorage

 

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