diff --git a/packages/core/src/meshDevice.ts b/packages/core/src/meshDevice.ts index 37b705c8..adc61cc4 100755 --- a/packages/core/src/meshDevice.ts +++ b/packages/core/src/meshDevice.ts @@ -378,6 +378,33 @@ export class MeshDevice { ); } + /** + * Sets the fixed position of a device. Can be used to + * position GPS-less devices. + */ + public async setFixedPosition( + latitude: number, + longitude: number, + ): Promise { + const setPositionMessage = create(Protobuf.Admin.AdminMessageSchema, { + payloadVariant: { + case: 'setFixedPosition', + value: create(Protobuf.Mesh.PositionSchema, { + latitudeI: Math.floor(latitude / 1e-7), + longitudeI: Math.floor(longitude / 1e-7), + }), + }, + }); + return await this.sendPacket( + toBinary(Protobuf.Admin.AdminMessageSchema, setPositionMessage), + Protobuf.Portnums.PortNum.ADMIN_APP, + "self", + 0, + true, + false, + ); + } + /** * Gets specified channel information from the radio */