zxc2216843 发表于 2023-2-28 15:14:45

M系列使用HMI软件的问题

DC48270M043使用HMI版本软件怎么在SD卡创建文件,我一直创建失败,使用file_open后没有返回数据

If后要接end 发表于 2023-2-28 15:56:23

写文件的这部分的程序截图出来看看

If后要接end 发表于 2023-2-28 16:01:10

或者发一下你这个问题的最小复现工程看看

zxc2216843 发表于 2023-2-28 16:23:30

            time = year.."-"..mon.."-"..day.."-"..hour.."-"..min
            addcreateName = sd_dir..'/'..time..".txt"

            local write_byte_Tb = {}

            --local open_state = file_open(addcreateName, FA_CREATE_ALWAYS)
            --local open_state = file_open(addcreateName, FA_CREATE_NEW)
            local open_state = file_open(addcreateName, 1)

            dataPrint = "文件状态:"..open_state
            set_string(VT_LW, testFlag , dataPrint)--打印测试数据
            file_close()

zxc2216843 发表于 2023-2-28 16:26:27

local FA_OPEN_EXISTING = 0x00
local FA_READ          = 0x01 --读
local FA_WRITE         = 0x02 --写
local FA_CREATE_NEW    = 0x04 --创建新文件
local FA_CREATE_ALWAYS = 0x08 --覆盖创建新文件
local FA_OPEN_ALWAYS   = 0x10 --打开

---------------------------
我发现例程中这些命令好像用不了,

If后要接end 发表于 2023-3-1 09:14:55

zxc2216843 发表于 2023-2-28 16:26
local FA_OPEN_EXISTING = 0x00
local FA_READ          = 0x01 --读
local FA_WRITE         = 0x02 --写


这个是之前TFT读写文件用到的

If后要接end 发表于 2023-3-1 09:15:51

open_state转成字符串形式输出,不然会报错

zxc2216843 发表于 2023-3-1 14:27:05

本帖最后由 zxc2216843 于 2023-3-1 14:29 编辑

好的,谢谢,有问题我再问

zxc2216843 发表于 2023-3-7 13:50:45

                        for i = 1, 2
                        do
                            --复位写字节数组
                            write_byte_Tb = {}

                            data = get_string(VT_RW, i)--获取要存储的数据

                            local wrire_len = string.len(data)
                            count = wrire_len
                            --计算写的位置
                            seek_ops = (i - 1) * wrire_len +all_byte
                            local offst_result = file_seek(seek_ops)

                            for j = 1, count
                            do
                              -- 字符串类型,将每个字符转换为字节数组
                              write_byte_Tb = tonumber(string.byte(data, ((i - 1) * lastCount + j), ((i - 1) * lastCount + j)))
                            end
                            lastCount = count
                            dataPrint = "第"..tostring(i).."次转换数据完成"
                            set_string(VT_LW, testFlag , dataPrint)--打印测试数据

                            local IswriteOK = file_write(write_byte_Tb)
                            if IswriteOK == false
                            then
                              i = i - 1
                            end
-----------------
请问下上面的程序,我这边给文件里写2条数据,不知道为啥老是在第二次的write_byte_Tb转换字符数组这边过不去,我也看不出原因,麻烦大佬给看看

zxc2216843 发表于 2023-3-7 13:59:45

数据长度wrire_len读取出来长度是59
页: [1] 2
查看完整版本: M系列使用HMI软件的问题