Difference between FieldEdit and FieldChange events

本文介绍了PeopleCode中字段变更事件的应用,通过示例说明如何根据字段rate和quantity的变化重新计算total cost。此外,还解释了字段编辑事件的作用,即验证字段值的有效性,并在值不合规时显示错误信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Field Change PeopleCode is for recalculating field values based on changes made to other fields. For instance, suppose you have 2 fields, rate and quantity and there is another field which shows total cost. Whenever a value is changed in either of the two fields, rate and quantity, the total cost will also change. So on the field change event of those two fields, you can write code to calculate the total cost.

Field edit event is used for validating field values. If the field doesn't pass the validation, an error message is shown and the page is redisplayed with that field marked in red. For instance, if you do not want a certain quantity to exceed 1,000 and it does, the system should display an error. You can write PeopleCode that will check the quantity, if it is greater than 1000 an error message will be displayed.

/** @brief I2C address to be used for ST25DV Data accesses. */ #define ST25DV_ADDR_DATA_I2C 0xA6 #define ST25DV_ADDR_DATA_W_I2C 0xA6 #define ST25DV_ADDR_DATA_R_I2C 0xA7 /** @brief I2C address to be used for ST25DV System accesses. */ #define ST25DV_ADDR_SYST_I2C 0xAE #define ST25DV_ADDR_SYST_W_I2C 0xAE #define ST25DV_ADDR_SYST_R_I2C 0xAF /* Registers i2c address */ /** @brief ST25DV GPO register address. */ #define ST25DV_GPO_REG 0x0000 /** @brief ST25DV IT duration register address. */ #define ST25DV_ITTIME_REG 0x0001 /** @brief ST25DV Energy Harvesting register address. */ #define ST25DV_EH_MODE_REG 0x0002 /** @brief ST25DV RF management register address. */ #define ST25DV_RF_MNGT_REG 0x0003 /** @brief ST25DV Area 1 security register address. */ #define ST25DV_RFA1SS_REG 0x0004 /** @brief ST25DV Area 1 end address register address. */ #define ST25DV_ENDA1_REG 0x0005 /** @brief ST25DV Area 2 security register address. */ #define ST25DV_RFA2SS_REG 0x0006 /** @brief ST25DV Area 2 end address register address. */ #define ST25DV_ENDA2_REG 0x0007 /** @brief ST25DV Area 3 security register address. */ #define ST25DV_RFA3SS_REG 0x0008 /** @brief ST25DV Area 3 end address register address. */ #define ST25DV_ENDA3_REG 0x0009 /** @brief ST25DV Area 4 security register address. */ #define ST25DV_RFA4SS_REG 0x000A /** @brief ST25DV I2C security register address. */ #define ST25DV_I2CSS_REG 0x000B /** @brief ST25DV Capability Container lock register address. */ #define ST25DV_LOCKCCFILE_REG 0x000C /** @brief ST25DV Mailbox mode register address. */ #define ST25DV_MB_MODE_REG 0x000D /** @brief ST25DV Mailbox Watchdog register address. */ #define ST25DV_MB_WDG_REG 0x000E /** @brief ST25DV Configuration lock register address. */ #define ST25DV_LOCKCFG_REG 0x000F /** @brief ST25DV DSFID lock register address. */ #define ST25DV_LOCKDSFID_REG 0x0010 /** @brief ST25DV AFI lock register address. */ #define ST25DV_LOCKAFI_REG 0x0011 /** @brief ST25DV DSFID register address. */ #define ST25DV_DSFID_REG 0x0012 /** @brief ST25DV AFI register address. */ #define ST25DV_AFI_REG 0x0013 /** @brief ST25DV Memory size register address. */ #define ST25DV_MEM_SIZE_LSB_REG 0x0014 /** @brief ST25DV Memory size register address. */ #define ST25DV_MEM_SIZE_MSB_REG 0x0015 /** @brief ST25DV Block size register address. */ #define ST25DV_BLK_SIZE_REG 0x0016 //** @brief ST25DV ICref register address. */ #define ST25DV_ICREF_REG 0x0017 /** @brief ST25DV UID register address. */ #define ST25DV_UID_REG 0x0018 /** @brief ST25DV IC revision register address. */ #define ST25DV_ICREV_REG 0x0020 /** @brief ST25DV I2C password register address. */ #define ST25DV_I2CPASSWD_REG 0x0900 /* Dynamic Registers i2c address */ /** @brief ST25DV GPO dynamic register address. */ #define ST25DV_GPO_DYN_REG 0x2000 /** @brief ST25DV Energy Harvesting control dynamic register address. */ #define ST25DV_EH_CTRL_DYN_REG 0x2002 /** @brief ST25DV RF management dynamic register address. */ #define ST25DV_RF_MNGT_DYN_REG 0x2003 /** @brief ST25DV I2C secure session opened dynamic register address. */ #define ST25DV_I2C_SSO_DYN_REG 0x2004 /** @brief ST25DV Interrupt status dynamic register address. */ #define ST25DV_ITSTS_DYN_REG 0x2005 /** @brief ST25DV Mailbox control dynamic register address. */ #define ST25DV_MB_CTRL_DYN_REG 0x2006 /** @brief ST25DV Mailbox message length dynamic register address. */ #define ST25DV_MBLEN_DYN_REG 0x2007 /** @brief ST25DV Mailbox buffer address. */ #define ST25DV_MAILBOX_RAM_REG 0x2008 /* GPO */ #define ST25DV_GPO_RFUSERSTATE_SHIFT (0) #define ST25DV_GPO_RFUSERSTATE_FIELD 0xFE #define ST25DV_GPO_RFUSERSTATE_MASK 0x01 #define ST25DV_GPO_RFACTIVITY_SHIFT (1) #define ST25DV_GPO_RFACTIVITY_FIELD 0xFD #define ST25DV_GPO_RFACTIVITY_MASK 0x02 #define ST25DV_GPO_RFINTERRUPT_SHIFT (2) #define ST25DV_GPO_RFINTERRUPT_FIELD 0xFB #define ST25DV_GPO_RFINTERRUPT_MASK 0x04 #define ST25DV_GPO_FIELDCHANGE_SHIFT (3) #define ST25DV_GPO_FIELDCHANGE_FIELD 0xF7 #define ST25DV_GPO_FIELDCHANGE_MASK 0x08 #define ST25DV_GPO_RFPUTMSG_SHIFT (4) #define ST25DV_GPO_RFPUTMSG_FIELD 0xEF #define ST25DV_GPO_RFPUTMSG_MASK 0x10 #define ST25DV_GPO_RFGETMSG_SHIFT (5) #define ST25DV_GPO_RFGETMSG_FIELD 0xDF #define ST25DV_GPO_RFGETMSG_MASK 0x20 #define ST25DV_GPO_RFWRITE_SHIFT (6) #define ST25DV_GPO_RFWRITE_FIELD 0xBF #define ST25DV_GPO_RFWRITE_MASK 0x40 #define ST25DV_GPO_ENABLE_SHIFT (7) #define ST25DV_GPO_ENABLE_FIELD 0x7F #define ST25DV_GPO_ENABLE_MASK 0x80 #define ST25DV_GPO_ALL_MASK 0xFF /* GPO_Dyn */ #define ST25DV_GPO_DYN_RFUSERSTATE_SHIFT (0) #define ST25DV_GPO_DYN_RFUSERSTATE_FIELD 0xFE #define ST25DV_GPO_DYN_RFUSERSTATE_MASK 0x01 #define ST25DV_GPO_DYN_RFACTIVITY_SHIFT (1) #define ST25DV_GPO_DYN_RFACTIVITY_FIELD 0xFD #define ST25DV_GPO_DYN_RFACTIVITY_MASK 0x02 #define ST25DV_GPO_DYN_RFINTERRUPT_SHIFT (2) #define ST25DV_GPO_DYN_RFINTERRUPT_FIELD 0xFB #define ST25DV_GPO_DYN_RFINTERRUPT_MASK 0x04 #define ST25DV_GPO_DYN_FIELDCHANGE_SHIFT (3) #define ST25DV_GPO_DYN_FIELDCHANGE_FIELD 0xF7 #define ST25DV_GPO_DYN_FIELDCHANGE_MASK 0x08 #define ST25DV_GPO_DYN_RFPUTMSG_SHIFT (4) #define ST25DV_GPO_DYN_RFPUTMSG_FIELD 0xEF #define ST25DV_GPO_DYN_RFPUTMSG_MASK 0x10 #define ST25DV_GPO_DYN_RFGETMSG_SHIFT (5) #define ST25DV_GPO_DYN_RFGETMSG_FIELD 0xDF #define ST25DV_GPO_DYN_RFGETMSG_MASK 0x20 #define ST25DV_GPO_DYN_RFWRITE_SHIFT (6) #define ST25DV_GPO_DYN_RFWRITE_FIELD 0xBF #define ST25DV_GPO_DYN_RFWRITE_MASK 0x40 #define ST25DV_GPO_DYN_ENABLE_SHIFT (7) #define ST25DV_GPO_DYN_ENABLE_FIELD 0x7F #define ST25DV_GPO_DYN_ENABLE_MASK 0x80 #define ST25DV_GPO_DYN_ALL_MASK 0xFF /* ITTIME */ #define ST25DV_ITTIME_DELAY_SHIFT (0) #define ST25DV_ITTIME_DELAY_FIELD 0xFC #define ST25DV_ITTIME_DELAY_MASK 0x03 /* ITSTS_Dyn */ #define ST25DV_ITSTS_RFUSERSTATE_SHIFT (0) #define ST25DV_ITSTS_RFUSERSTATE_FIELD 0xFE #define ST25DV_ITSTS_RFUSERSTATE_MASK 0x01 #define ST25DV_ITSTS_RFACTIVITY_SHIFT (1) #define ST25DV_ITSTS_RFACTIVITY_FIELD 0xFD #define ST25DV_ITSTS_RFACTIVITY_MASK 0x02 #define ST25DV_ITSTS_RFINTERRUPT_SHIFT (2) #define ST25DV_ITSTS_RFINTERRUPT_FIELD 0xFB #define ST25DV_ITSTS_RFINTERRUPT_MASK 0x04 #define ST25DV_ITSTS_FIELDFALLING_SHIFT (3) #define ST25DV_ITSTS_FIELDFALLING_FIELD 0xF7 #define ST25DV_ITSTS_FIELDFALLING_MASK 0x08 #define ST25DV_ITSTS_FIELDRISING_SHIFT (4) #define ST25DV_ITSTS_FIELDRISING_FIELD 0xEF #define ST25DV_ITSTS_FIELDRISING_MASK 0x10 #define ST25DV_ITSTS_RFPUTMSG_SHIFT (5) #define ST25DV_ITSTS_RFPUTMSG_FIELD 0xDF #define ST25DV_ITSTS_RFPUTMSG_MASK 0x20 #define ST25DV_ITSTS_RFGETMSG_SHIFT (6) #define ST25DV_ITSTS_RFGETMSG_FIELD 0xBF #define ST25DV_ITSTS_RFGETMSG_MASK 0x40 #define ST25DV_ITSTS_RFWRITE_SHIFT (7) #define ST25DV_ITSTS_RFWRITE_FIELD 0x7F 解释下这些宏定义
06-05
内容概要:本文详细探讨了基于阻尼连续可调减振器(CDC)的半主动悬架系统的控制策略。首先建立了CDC减振器的动力学模型,验证了其阻尼特性,并通过实验确认了模型的准确性。接着,搭建了1/4车辆悬架模型,分析了不同阻尼系数对悬架性能的影响。随后,引入了PID、自适应模糊PID和模糊-PID并联三种控制策略,通过仿真比较它们的性能提升效果。研究表明,模糊-PID并联控制能最优地提升悬架综合性能,在平顺性和稳定性间取得最佳平衡。此外,还深入分析了CDC减振器的特性,优化了控制策略,并进行了系统级验证。 适用人群:从事汽车工程、机械工程及相关领域的研究人员和技术人员,尤其是对车辆悬架系统和控制策略感兴趣的读者。 使用场景及目标:①适用于研究和开发基于CDC减振器的半主动悬架系统的工程师;②帮助理解不同控制策略(如PID、模糊PID、模糊-PID并联)在悬架系统中的应用及其性能差异;③为优化车辆行驶舒适性和稳定性提供理论依据和技术支持。 其他说明:本文不仅提供了详细的数学模型和仿真代码,还通过实验数据验证了模型的准确性。对于希望深入了解CDC减振器工作原理及其控制策略的读者来说,本文是一份极具价值的参考资料。同时,文中还介绍了多种控制策略的具体实现方法及其优缺点,为后续的研究和实际应用提供了有益的借鉴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值