示例#1
0
        public Tuple <short, string> ReadProgramFolder(ushort flib, ref ReadProgramFolderItemModel data)
        {
            //data.RegNum = 0;
            var ret = ReadSubProgramFolder(flib, true, ref data);

            if (ret == -1)
            {
                return(new Tuple <short, string>(ret, $"获得程序目录列表错误,CNC忙碌"));
            }
            if (ret == 3)
            {
                return(new Tuple <short, string>(ret, $"获得程序目录列表错误,子目录错误"));
            }
            if (ret == 4)
            {
                return(new Tuple <short, string>(ret, $"获得程序目录列表错误,功能错误"));
            }
            if (ret == 5)
            {
                return(new Tuple <short, string>(ret, $"获得程序目录列表错误,文件夹未找到"));
            }
            if (ret == 13)
            {
                return(new Tuple <short, string>(ret, $"获得程序目录列表错误,CNC拒绝执行"));
            }
            if (ret != 0)
            {
                return(new Tuple <short, string>(ret, $"获得程序目录列表错误,{GetGeneralErrorMessage(ret)}"));
            }

            return(new Tuple <short, string>(0, null));
        }
示例#2
0
        public short ReadSubProgramFolder(ushort flib, bool drill, ref ReadProgramFolderItemModel data)
        {
            short num_prog     = 50;
            var   pdf_adir_out = new Focas1.PRGFOLDER();

            var pdf_adir_in = new Focas1.IDBPDFADIR();

            pdf_adir_in.req_num   = 0;
            pdf_adir_in.size_kind = 2;
            pdf_adir_in.type      = 0;
            pdf_adir_in.path      = data.Folder;

            var ret = Focas1.cnc_rdpdf_alldir(flib, ref num_prog, pdf_adir_in, pdf_adir_out);

            if (ret == 0)
            {
                try
                {
                    for (int i = 0; i < num_prog; i++)
                    {
                        string strdata = "folder" + (i + 1).ToString();
                        object obj     = pdf_adir_out.GetType().GetField(strdata).GetValue(pdf_adir_out);

                        string name      = obj.GetType().GetField("d_f").GetValue(obj).ToString();
                        short  data_kind = short.Parse(obj.GetType().GetField("data_kind").GetValue(obj).ToString());

                        if (data_kind == 0)
                        {
                            var item = new ReadProgramFolderItemModel()
                            {
                                Name   = data.Folder + name + @"/",
                                Folder = data.Folder + name + @"/",
                                RegNum = (short)(data.RegNum + 1)
                            };

                            if (drill == true)
                            {
                                ret = ReadSubProgramFolder(flib, true, ref item);
                                if (ret != 0)
                                {
                                    return(ret);
                                }
                            }

                            data.Nodes.Add(item);
                        }
                    }
                }
                catch {
                    return(-100);
                }
            }
            else if (ret == 3)
            {
                return(0);
            }

            return(ret);
        }
示例#3
0
        public HubReadWriterResultModel Reader(HubReadWriterModel hubRead)
        {
            ReadProgramFolderItemModel data = new ReadProgramFolderItemModel();

            data.Folder = hubRead.Data[0].ToString();
            data.RegNum = 0;
            var res = new ProgramFolderHelper().ReadProgramFolder(flib, ref data);

            return(new HubReadWriterResultModel()
            {
                Result = data,
                Error = res.Item2,
                Success = res.Item1 == 0,
                SuccessTip = hubRead.SuccessTip,
                ErrorTip = hubRead.ErrorTip
            });
        }