区分特性的开关箱

3个帖子/ 0个新
最后发表
Sam123
离线
最后看到:5年11个月前
加入:2015-02-19 05:43
区分特性的开关箱

嗨,对话框的团队,

我有一个用于打开led的四个特征的处理函数。每个特性只能打开一个LED。然而,每个特性都可以打开所有4个led。对于所有四个特征,我都使用了一个处理函数。
a)我应该使用单独的处理器函数吗?
b)有什么方法可以区分我写的数据的特征彼此。
我只是想检查用户输入数据的特征,并相应地打开/关闭led。

我急切地等待着答复。

设备:
VesaN
离线
最后看到:5年8个月前
大师 主
加入:2014-06-26 08:49
你好Sam123,

你好Sam123,

1)您知道您的AD转换器结果寄存器(寄存器称为GP_ADC_RESULT_REG)的值吗?这和你在BlueLoupe看到的不同吗?你读取寄存器与GetWord16,而不是GetWord8/GetByte?

2)编写只需要一个处理函数。例如,如果你打开加速配置文件accel_task.c,可以找到handler函数静态int gattc_write_cmd_ind_handler.在这里,使用switch - case语句管理不同特征值属性的处理:


开关(ACCEL_IDX (param - >处理)

案例ACCEL_IDX_ENABLE_VAL:……
案例ACCEL_IDX_ACCEL_DISPLAY1_VAL:
案例ACCEL_IDX_ACCEL_DISPLAY2_VAL:
...

Sam123
离线
最后看到:5年11个月前
加入:2015-02-19 05:43
你好,

你好,

我有四个特性可以打开四个不同的led。每个特性都应根据其特性开关LED。然而,每个特性都可以打开/关闭所有4个led。应该有一个开关盒来区分特性,以便对特性1的写入只会打开LED1,而不会打开LED2/LED3/LED4。我不确定开关情况和应该执行的开关情况。我附上了我的处理函数,供你仔细阅读。如何实现switch case语句?

Int sample128_val_ind_handler(ke_msg_id_t const msgid,
Struct sample128_val_ind const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)

/ /特点1
memcpy (&sample128_my_new param - > val, sizeof (my_new_t));
get_value1 = (* sample128_my_new);
如果(get_value1 = = set_value1)

GPIO_SetActive (GPIO_PORT_0 GPIO_PIN_7);

其他的

GPIO_SetInactive (GPIO_PORT_0 GPIO_PIN_7);

/ / 2日写的特点
memcpy (&sample128_my_newer param - > val, sizeof (my_newer_t));
get_value2 = (* sample128_my_newer);
如果(get_value2 = = set_value2)

GPIO_SetActive (GPIO_PORT_1 GPIO_PIN_0);

其他的

GPIO_SetInactive (GPIO_PORT_1 GPIO_PIN_0);

/ / 3日写的特点
memcpy (&sample128_my_new3 param - > val, sizeof (my_new_t3));
get_value3 = (* sample128_my_new3);
如果(get_value3 = = set_value3)

GPIO_SetActive (GPIO_PORT_1 GPIO_PIN_2);

其他的

GPIO_SetInactive (GPIO_PORT_1 GPIO_PIN_2);

/ / 4日写的特点
memcpy (&sample128_my_newer4 param - > val, sizeof (my_newer_t4));
get_value4 = (* sample128_my_newer4);
如果(get_value4 = = set_value4)

GPIO_SetActive (GPIO_PORT_1 GPIO_PIN_3);

其他的

GPIO_SetInactive (GPIO_PORT_1 GPIO_PIN_3);

返回(KE_MSG_CONSUMED);