new class fs
This commit is contained in:
164
scripts/FS.gd
164
scripts/FS.gd
@@ -64,6 +64,12 @@ class FGOS:
|
||||
FAIL ## Команда не выполнена
|
||||
}
|
||||
|
||||
const INDEX_SIZE = 0xC
|
||||
const GROUP_OFFSET = 0x0
|
||||
const CMD_OFFSET = 0x1
|
||||
const COUNTER_OFFSET = 0x4
|
||||
const PAYLOAD_OFFSET = 0x8
|
||||
|
||||
var counter: int = 0
|
||||
|
||||
|
||||
@@ -77,21 +83,29 @@ class FGOS:
|
||||
return final_crc
|
||||
|
||||
|
||||
func _form_packet(group, cmd, index_size, data = null):
|
||||
var packet = PackedByteArray()
|
||||
packet.resize(index_size)
|
||||
packet.encode_u8(GROUP_OFFSET, group)
|
||||
packet.encode_u8(CMD_OFFSET, cmd)
|
||||
packet.encode_u32(COUNTER_OFFSET, counter)
|
||||
counter += 1
|
||||
if data:
|
||||
packet.encode_float(PAYLOAD_OFFSET, data)
|
||||
return packet
|
||||
|
||||
|
||||
func _send_packet(packet):
|
||||
var crc = crc32(packet)
|
||||
packet.resize(packet.size() + 4)
|
||||
packet.encode_u32(packet.size() - 4, crc)
|
||||
Network.command_stack.append(packet)
|
||||
|
||||
|
||||
func start_session():
|
||||
counter = 0
|
||||
var index_size = 0xC
|
||||
var GROUP = Constants.GROUP.BASE
|
||||
var CMD = Constants.CMD.START_SESSION
|
||||
var prep_pack: PackedByteArray = PackedByteArray()
|
||||
prep_pack.resize(index_size)
|
||||
prep_pack.encode_u8(0x0, GROUP)
|
||||
prep_pack.encode_u8(0x1, CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4)
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
Network.command_stack.append(prep_pack)
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.START_SESSION, 0xC)
|
||||
_send_packet(packet)
|
||||
get_gen_state()
|
||||
get_att_batch()
|
||||
get_carrier()
|
||||
@@ -99,126 +113,44 @@ class FGOS:
|
||||
|
||||
func set_gen_state(button_state: bool):
|
||||
var index_size = 0x1C
|
||||
var GROUP = Constants.GROUP.GENERATOR
|
||||
var CMD = Constants.CMD.SET_GEN_STATUS
|
||||
var prep_pack: PackedByteArray = PackedByteArray()
|
||||
prep_pack.resize(index_size)
|
||||
|
||||
prep_pack.encode_u8(0x0, GROUP)
|
||||
prep_pack.encode_u8(0x1, CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
prep_pack.encode_u16(0x8, 0x0010)
|
||||
prep_pack.encode_u32(0xC, button_state) ## MODE GEN STATUS
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4)
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
|
||||
Network.command_stack.append(prep_pack)
|
||||
var packet = _form_packet(Constants.GROUP.GENERATOR, Constants.CMD.SET_GEN_STATUS, index_size)
|
||||
packet.encode_u16(0x8, 0x0010)
|
||||
packet.encode_u32(0xC, button_state) ## MODE GEN STATUS
|
||||
_send_packet(packet)
|
||||
get_gen_state()
|
||||
|
||||
|
||||
func set_carrier(wr_freq):
|
||||
var index_size = 0x1C
|
||||
var GROUP = Constants.GROUP.BASE
|
||||
var CMD = Constants.CMD.SET_CARRIER
|
||||
var prep_pack: PackedByteArray = PackedByteArray()
|
||||
prep_pack.resize(index_size)
|
||||
|
||||
prep_pack.encode_u8(0x0, GROUP)
|
||||
prep_pack.encode_u8(0x1, CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
prep_pack.encode_u16(0x8, 0x10)
|
||||
prep_pack.encode_u64(0xC, wr_freq) ## uint64_t freq low dword/high dword
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4)
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
|
||||
Network.command_stack.append(prep_pack)
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.SET_CARRIER, index_size)
|
||||
packet.encode_u16(0x8, 0x10)
|
||||
packet.encode_u64(0xC, wr_freq) ## uint64_t freq low dword/high dword
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func set_att_batch(att):
|
||||
var index_size = 0x1C
|
||||
var GROUP = Constants.GROUP.RF
|
||||
var CMD = Constants.CMD.SET_ATT
|
||||
var prep_pack: PackedByteArray = PackedByteArray()
|
||||
prep_pack.resize(index_size)
|
||||
|
||||
prep_pack.encode_u8(0x0, GROUP)
|
||||
prep_pack.encode_u8(0x1, CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
prep_pack.encode_u16(0x8, 0x10)
|
||||
prep_pack.encode_float(0x18, att)
|
||||
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4)
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
|
||||
Network.command_stack.append(prep_pack)
|
||||
var packet = _form_packet(Constants.GROUP.RF, Constants.CMD.SET_ATT, index_size)
|
||||
packet.encode_u16(0x8, 0x10)
|
||||
packet.encode_float(0x18, att)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func get_carrier():
|
||||
var index_size = 0xC
|
||||
var GROUP = Constants.GROUP.BASE
|
||||
var CMD = Constants.CMD.READ_CARRIER
|
||||
var prep_pack: PackedByteArray = []
|
||||
prep_pack.resize(index_size) ## 12 в int
|
||||
prep_pack.encode_u8(0x0,GROUP)
|
||||
prep_pack.encode_u8(0x1,CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4) ## 16 в int
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
Network.command_stack.append(prep_pack)
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.READ_CARRIER, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func get_att_batch():
|
||||
var index_size = 0xC
|
||||
var GROUP = Constants.GROUP.RF
|
||||
var CMD = Constants.CMD.READ_ATT
|
||||
var prep_pack: PackedByteArray
|
||||
prep_pack.resize(index_size) ## 12 в int
|
||||
prep_pack.encode_u8(0x0, GROUP)
|
||||
prep_pack.encode_u8(0x1, CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4) ## 16 в int
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
Network.command_stack.append(prep_pack)
|
||||
|
||||
var packet = _form_packet(Constants.GROUP.RF, Constants.CMD.READ_ATT, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func get_gen_state():
|
||||
var index_size = 0xC
|
||||
var GROUP = Constants.GROUP.GENERATOR
|
||||
var CMD = Constants.CMD.READ_GEN_STATUS
|
||||
var prep_pack: PackedByteArray
|
||||
prep_pack.resize(index_size) ## 12 в int
|
||||
prep_pack.encode_u8(0x0, GROUP)
|
||||
prep_pack.encode_u8(0x1, CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4) ## 16 в int
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
Network.command_stack.append(prep_pack)
|
||||
var packet = _form_packet(Constants.GROUP.GENERATOR, Constants.CMD.READ_GEN_STATUS, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func base_get_current_temp():
|
||||
var index_size = 0xC
|
||||
var GROUP = Constants.GROUP.BASE
|
||||
var CMD = Constants.CMD.BASE_GET_CURRENT_TEMP
|
||||
var prep_pack: PackedByteArray
|
||||
prep_pack.resize(index_size) ## 12 в int
|
||||
prep_pack.encode_u8(0x0, GROUP)
|
||||
prep_pack.encode_u8(0x1, CMD)
|
||||
prep_pack.encode_u32(0x4, counter)
|
||||
counter += 1
|
||||
var crc = crc32(prep_pack)
|
||||
prep_pack.resize(index_size + 4) ## 16 в int
|
||||
prep_pack.encode_u32(index_size, crc)
|
||||
Network.command_stack.append(prep_pack)
|
||||
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.BASE_GET_CURRENT_TEMP, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
Reference in New Issue
Block a user