modul fs
This commit is contained in:
@@ -71,7 +71,8 @@ class FGOS:
|
||||
const CMD_OFFSET: int = 0x1
|
||||
const COUNTER_OFFSET: int = 0x4
|
||||
const PAYLOAD_OFFSET: int = 0x8
|
||||
|
||||
const INIT: int = 0xFFFFFFFF
|
||||
const FINAL_XOR_VALUE: int = 0x00000000
|
||||
|
||||
signal line_changed(unit: FGOS) ## Вызывается когда меняется состояние связи с ячейкой
|
||||
|
||||
@@ -82,12 +83,12 @@ class FGOS:
|
||||
|
||||
|
||||
func crc32(data: PackedByteArray) -> int:
|
||||
var crc = Constants.INIT
|
||||
var crc = INIT
|
||||
for byte in data:
|
||||
var index = (crc ^ byte) & 0xFF
|
||||
crc = (Constants.CRC32_TABLE[index] ^ (crc >> 8)) & 0xFFFFFFFF
|
||||
crc = (CRC32_TABLE[index] ^ (crc >> 8)) & 0xFFFFFFFF
|
||||
# Возвращаем только последние 4 байта в обратном порядке
|
||||
var final_crc = crc ^ Constants.FINAL_XOR_VALUE
|
||||
var final_crc = crc ^ FINAL_XOR_VALUE
|
||||
return final_crc
|
||||
|
||||
|
||||
@@ -132,7 +133,7 @@ class FGOS:
|
||||
|
||||
func start_session():
|
||||
counter = 0
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.START_SESSION, 0xC)
|
||||
var packet = _form_packet(GROUP.BASE, CmdCode.START_SESSION, 0xC)
|
||||
_send_packet(packet)
|
||||
get_gen_state()
|
||||
get_att_batch()
|
||||
@@ -141,7 +142,7 @@ class FGOS:
|
||||
|
||||
func set_gen_state(button_state: bool):
|
||||
var index_size = 0x1C
|
||||
var packet = _form_packet(Constants.GROUP.GENERATOR, Constants.CMD.SET_GEN_STATUS, index_size)
|
||||
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_GEN_STATUS, index_size)
|
||||
packet.encode_u16(0x8, 0x0010)
|
||||
packet.encode_u32(0xC, button_state) ## MODE GEN STATUS
|
||||
_send_packet(packet)
|
||||
@@ -150,7 +151,7 @@ class FGOS:
|
||||
|
||||
func set_carrier(installation_frequency: int):
|
||||
var index_size = 0x1C
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.SET_CARRIER, index_size)
|
||||
var packet = _form_packet(GROUP.BASE, CmdCode.SET_CARRIER, index_size)
|
||||
packet.encode_u16(0x8, 0x10)
|
||||
packet.encode_u64(0xC, installation_frequency) ## uint64_t freq low dword/high dword
|
||||
_send_packet(packet)
|
||||
@@ -158,27 +159,27 @@ class FGOS:
|
||||
|
||||
func set_att_batch(attenuation: float):
|
||||
var index_size = 0x1C
|
||||
var packet = _form_packet(Constants.GROUP.RF, Constants.CMD.SET_ATT, index_size)
|
||||
var packet = _form_packet(GROUP.RF, CmdCode.SET_ATT, index_size)
|
||||
packet.encode_u16(0x8, 0x10)
|
||||
packet.encode_float(0x18, attenuation)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func get_carrier():
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.READ_CARRIER, INDEX_SIZE)
|
||||
var packet = _form_packet(GROUP.BASE, CmdCode.READ_CARRIER, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func get_att_batch():
|
||||
var packet = _form_packet(Constants.GROUP.RF, Constants.CMD.READ_ATT, INDEX_SIZE)
|
||||
var packet = _form_packet(GROUP.RF, CmdCode.READ_ATT, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func get_gen_state():
|
||||
var packet = _form_packet(Constants.GROUP.GENERATOR, Constants.CMD.READ_GEN_STATUS, INDEX_SIZE)
|
||||
var packet = _form_packet(GROUP.GENERATOR, CmdCode.READ_GEN_STATUS, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
|
||||
func base_get_current_temp():
|
||||
var packet = _form_packet(Constants.GROUP.BASE, Constants.CMD.BASE_GET_CURRENT_TEMP, INDEX_SIZE)
|
||||
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_GET_CURRENT_TEMP, INDEX_SIZE)
|
||||
_send_packet(packet)
|
||||
|
||||
Reference in New Issue
Block a user