...
Code Block | ||
---|---|---|
| ||
function getOffset(axle) { const val = parseFloat(inPorts[0].value[axle]); const offset = parseFloat(context[`${axle}Ref`]); let retVal; if (val === offset) { retVal = 0; } if (offset < 0 && val < 0) { if (offset < val) { retVal = (Math.abs(offset) - Math.abs(val)); } else if (offset > val) { retVal = (Math.abs(val) - Math.abs(offset)) * (-1); } else { return 0; } } if (offset >= 0 && val >= 0) { retVal = (val - offset); } if (offset >= 0 && val < 0) { const res = (offset + (Math.abs(val))) * (-1); if (res < (-180)) { retVal = (360 - Math.abs(res)); } else { retVal = res; } } if (offset <= 0 && val >= 0) { const res = Math.abs(offset) + Math.abs(val); if (res > 180) { retVal = (180 - (res - 180)) * -1; } else { retVal = res; } } if (retVal) { return retVal.toFixed(2); } return null; } function execute() { if (!context.initialized) { context.rollRef = 0; context.pitchRef = 0; context.yawRef = 0; context.initialized = true; } switch (trigger) { case 0: return [getOffset('roll'), getOffset('pitch'), getOffset('yaw'), inPorts[0].value.heading]; case 1: context.rollRef = (inPorts[0].value.roll) || 0; context.pitchRef = (inPorts[0].value.pitch) || 0; context.headingRef = (inPorts[0].value.yaw) || 0; break; default: break; } return []; } |
...
In Ports
Position | Name | Message Type | Description |
---|---|---|---|
1 | IMU | IMU | This port is being used to receive a message containing the combined IMU data. |
2 | Set Level | Trigger | This port is being used to trigger the leveling of the IMU data. |
...
Out Ports
Position | Name | Message Type | Description |
---|---|---|---|
1 | Roll | Number | This port is being used to send out the leveled roll value of the IMU data. |
2 | Pitch | Number | This port is being used to send out the leveled pitch value of the IMU data. |
3 | Yaw | Number | This port is being used to send out the leveled yaw value of the IMU data. |
4 | Heading | Number | This port is being used to send out the leveled heading value of the IMU data. |
...
Properties
Name | Description |
---|---|
Object Name | The name of the object on the canvas. |
Show Code View | The switch to turn on code view for the Code Object. |
Duplicate code into custom Code Object |