我将这个代码改了一下,想用来控制MAC黑名单及ACL列表,MQTT中发送的11 改为mac11 或acl11 ,但发现判断后的赋值有问题,请大神指点一下:
const rmsg = {};
const cmnd = msg.payload;
const cmndID = typeof cmnd === 'string' ? cmnd.slice(3) : null;
console.log('Received cmnd:', cmnd);
console.log('Extracted cmndID:', cmndID);
switch (cmndID) {
case '10':
rmsg.id = '1'; // mac限网ID
rmsg.action = 'down'; // 限网开up/关down
break;
case '11':
rmsg.id = '1'; // mac限网ID
rmsg.action = 'up'; // 限网开up/关down
break;
case '20':
rmsg.id = '2'; // mac限网ID
rmsg.action = 'down'; // 限网开up/关down
break;
case '21':
rmsg.id = '2'; // mac限网ID
rmsg.action = 'up'; // 限网开up/关down
break;
case '30':
rmsg.id = '3'; // mac限网ID
rmsg.action = 'down'; // 限网开up/关down
break;
case '31':
rmsg.id = '3'; // mac限网ID
rmsg.action = 'up'; // 限网开up/关down
break;
case '40':
rmsg.id = '4'; // mac限网ID
rmsg.action = 'down'; // 限网开up/关down
break;
case '41':
rmsg.id = '4'; // mac限网ID
rmsg.action = 'up'; // 限网开up/关down
break;
default:
if (typeof cmnd === 'string') {
if (cmnd.startsWith('mac')) {
rmsg.name = 'acl_mac';
console.log('Set rmsg.name to acl_mac');
} else if (cmnd.startsWith('acl')) {
rmsg.name = 'acl';
console.log('Set rmsg.name to acl');
}
}
if (!rmsg.name) {
rmsg.name = 'unknown'; // 设置默认值
console.log('Set rmsg.name to default value: unknown');
}
break;
}
return rmsg;
|