+func init() {
+ viper.AutomaticEnv()
+ viper.SetEnvPrefix("rco")
+ viper.AllowEmptyEnv(true)
+ requestRawData = viper.GetString("rawdata")
+ if requestRawData == "" {
+ requestRawData = "00c90020000003ea7e00050000010002ea6300020003ea81000a000000ea6b4003000440"
+ }
+ deleteRawData = viper.GetString("deleterawdata")
+ if deleteRawData == "" {
+ deleteRawData = "00ca0012000002ea7e00050000010002ea6300020003"
+ }
+ xapp.Logger.Info("Initial RAW DATA: %v", requestRawData)
+ xapp.Logger.Info("Initial DELETE RAW DATA: %v", deleteRawData)
+ seedSN = uint16(viper.GetInt("seed_sn"))
+ if seedSN == 0 || seedSN > 65535 {
+ seedSN = 12345
+ }
+ deleteSeedSN = uint16(viper.GetInt("delete_seed_sn"))
+ if deleteSeedSN == 0 || deleteSeedSN > 65535 {
+ deleteSeedSN = seedSN
+ }
+
+ xapp.Logger.Info("Initial SEQUENCE NUMBER: %v", seedSN)
+}
+
+func (r *Rco) GeneratePayload(subId uint16) (payload []byte, err error) {
+ skeleton, err := hex.DecodeString(requestRawData)
+ if err != nil {
+ return make([]byte, 0), errors.New("nable to decode data provided in \"RCO_RAWDATA\" environment variable")
+ }
+ payload, err = r.SetSubscriptionRequestSequenceNumber(skeleton, subId)
+ return
+}
+
+func (r *Rco) GenerateDeletePayload(subId uint16) (payload []byte, err error) {
+ skeleton, err := hex.DecodeString(deleteRawData)
+ if err != nil {
+ return make([]byte, 0), errors.New("unable to decode data provided in \"RCO_DELETERAWDATA\" environment variable")
+ }
+ payload, err = r.SetSubscriptionDeleteRequestSequenceNumber(skeleton, subId)