|
|
@@ -33,6 +33,16 @@ RadioPublicNetwork = RadioPublicNetwork_t
|
|
|
SX126xResetGPIO = pins.setup(pio.P0_13,0)
|
|
|
OperatingMode = sx126x_reg.RadioStandbyModes_t.STDBY_RC
|
|
|
|
|
|
+
|
|
|
+function stringToHex(str)
|
|
|
+ local hex = {}
|
|
|
+ for i = 1, #str do
|
|
|
+ local byte = string.byte(str, i)
|
|
|
+ hex[#hex + 1] = string.format("%02x", byte)
|
|
|
+ end
|
|
|
+ return table.concat(hex)
|
|
|
+end
|
|
|
+
|
|
|
function gsonLoginfo(data)
|
|
|
local jsondata = json.encode(data)
|
|
|
log.info("SX126xSetModulationParams.encode",jsondata)
|
|
|
@@ -238,8 +248,8 @@ function SX126xSetPacketParams(packetParams)
|
|
|
packetParams.Params.LoRa.PayloadLength,
|
|
|
packetParams.Params.LoRa.CrcMode,
|
|
|
packetParams.Params.LoRa.InvertIQ}
|
|
|
- local jsondata = json.encode(buf)
|
|
|
- log.info("SX126xSetPacketParams.encode",jsondata)
|
|
|
+ -- local jsondata = json.encode(buf)
|
|
|
+ -- log.info("SX126xSetPacketParams.encode",jsondata)
|
|
|
SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_PACKETPARAMS,buf);
|
|
|
end
|
|
|
|
|
|
@@ -338,7 +348,7 @@ function RadioSetChannel(frequency)
|
|
|
end
|
|
|
|
|
|
function SX126xWriteBuffer(offset, buffer,size)
|
|
|
- log.info("SX126xWriteBuffer",offset,buffer,size)
|
|
|
+ -- log.info("SX126xWriteBuffer",offset,buffer,size)
|
|
|
local sentdata = offset .. buffer
|
|
|
Drv_spi.drv_spi_read_write_byte(sx126x_reg.RadioCommands.RADIO_WRITE_BUFFER,0)
|
|
|
Drv_spi.drv_spi_read_write_byte(sentdata,10)
|
|
|
@@ -346,7 +356,7 @@ function SX126xWriteBuffer(offset, buffer,size)
|
|
|
end
|
|
|
|
|
|
function SX126xSetPayload (payload,size)
|
|
|
- log.info("SX126xSetPayload",payload,size)
|
|
|
+ -- log.info("SX126xSetPayload",payload,size)
|
|
|
SX126xWriteBuffer( "00", payload, size );
|
|
|
end
|
|
|
|
|
|
@@ -356,7 +366,7 @@ end
|
|
|
|
|
|
|
|
|
function SX126xSendPayload(payload,size,timeout)
|
|
|
- log.info("SX126xSendPayload",payload,size,timeout)
|
|
|
+ -- log.info("SX126xSendPayload",payload,size,timeout)
|
|
|
SX126xSetPayload( payload, size );
|
|
|
SX126xSetTx( timeout );
|
|
|
end
|
|
|
@@ -392,40 +402,42 @@ function SX126xInit()
|
|
|
RadioSetChannel(433000000)
|
|
|
end
|
|
|
|
|
|
+function sentString(strData)
|
|
|
+ --这里需要判断传入的是否为字符串。
|
|
|
+ local hexStr = stringToHex(strData)
|
|
|
+ RadioSend(hexStr,string.format("%02X", #hexStr/2),"00")
|
|
|
+ -- local original = "Hello, Lua!\n"
|
|
|
+ -- local hexStr = stringToHex(original)
|
|
|
+ log.info("test:",hexStr) -- 输出: 48656c6c6f2c204c756121
|
|
|
+ log.info("testlen:",#hexStr)
|
|
|
+ log.info("testlen2:",string.format("%02X", #hexStr/2))
|
|
|
+ -- RadioSend(hexStr,string.format("%02X", #hexStr/2),"00")
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
sys.taskInit(function ()
|
|
|
sys.wait(5000)
|
|
|
SX126xInit()
|
|
|
sys.wait(2000)
|
|
|
while true do
|
|
|
- -- log.info("testSpiFlash.readFlashID",spi.send_recv(spi.SPI_1,s):toHex())--收发读写
|
|
|
-
|
|
|
- --下面方法和上面的等价
|
|
|
- -- spi.send(spi.SPI_1,string.char(0x1d,0x07,0x40,0x00,0x00,0x00))
|
|
|
- -- sys.wait(5)
|
|
|
- -- log.info("testSpiFlash.readFlashID",spi.recv(spi.SPI_1,8):toHex())--收数据
|
|
|
-
|
|
|
- -- local ret = Drv_spi.drv_spi_read_write_byte("1D",1)
|
|
|
- -- log.info("testSpiFlash.readFlashID",ret)
|
|
|
- -- sys.wait(20)
|
|
|
- -- local ret = Drv_spi.drv_spi_read_write_byte("07400000",1)
|
|
|
- -- log.info("testSpiFlash.readFlashID",ret)
|
|
|
-
|
|
|
- -- SX126xWriteCommand("1d",{"0740"})
|
|
|
- -- SX126xWriteRegister("0740",{string.format("%02X", i),string.format("%02X", i+1)})
|
|
|
- -- log.info("计算结果0740寄存器", SX126xReadRegister("0740"))
|
|
|
- -- log.info("计算结果0741寄存器", SX126xReadRegister("0741"))
|
|
|
- -- SX126xWriteCommand("1d",{"07400000"})
|
|
|
-
|
|
|
- -- sys.wait(20)
|
|
|
log.info("计算结果")
|
|
|
- -- SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
|
|
|
- -- SX126xReadCommand(sx126x_reg.RadioCommands.RADIO_GET_STATUS,1)
|
|
|
- -- sys.wait(20)
|
|
|
- RadioSend("A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5","1e","00")
|
|
|
+ --[[
|
|
|
+ 1.将普通字符串用函数转换成16进制字符串,并获取表长度。例如:"Hello, Lua!" -> "48656c6c6f2c204c756121"
|
|
|
+ 2.返回的16进制表,是以两位为一个16进制数据,实际发生长需要减半。例如:"48656c6c6f2c204c756121" -> 0x48 0x65 ... 0x21
|
|
|
+ 3.RadioSend的第二位参数是要发生的数据长度,需要16进制字符串形式,意味着"48656c6c6f2c204c756121"是11位数据
|
|
|
+ 但是是需要转成 "08"。
|
|
|
+ ]]
|
|
|
+ sentString("hello,My_name_is_XuXinyi\n")
|
|
|
+ -- local original = "Hello, Lua!\n"
|
|
|
+ -- local hexStr = stringToHex(original)
|
|
|
+ -- log.info("test:",hexStr) -- 输出: 48656c6c6f2c204c756121
|
|
|
+ -- log.info("testlen:",#hexStr)
|
|
|
+ -- RadioSend(hexStr,string.format("%02X", #hexStr/2),"00")
|
|
|
-- sys.wait(20)
|
|
|
-- SX126xReadCommand(sx126x_reg.RadioCommands.RADIO_GET_STATUS,1)
|
|
|
-- SX126xWakeup()
|
|
|
- sys.wait(1000)
|
|
|
+ sys.wait(4000)
|
|
|
end
|
|
|
spi.close(spi.SPI_1)
|
|
|
end)
|