Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        public void GetProgramDir(string drive)
        {
            string ip = IP;

            ushort Flibhndl = 0;

            #region 获取默认路径

            int    idx  = 0;
            string str2 = "";
            byte[] buf2 = new byte[97]; // String of CNC program


            #endregion
            short ret = Focas1.cnc_allclibhndl3(ip, 8193, 3, out Flibhndl);
            if (ret != Focas1.EW_OK)
            {
                Flibhndl = 0;
                return;
            }

            ret = Focas1.cnc_rdpdf_curdir(Flibhndl, 2, buf2);
            if (ret != Focas1.EW_OK)
            {
                return;
            }
            for (idx = 0; idx < buf2.Count(); idx++)
            {
                str2 += Convert.ToString(Convert.ToChar(buf2[idx]));
            }
            CNCPath = str2;
            array_File.Clear();
            array_Folder.Clear();

            short             num_prog     = 1;
            Focas1.IDBPDFADIR pdf_adir_in  = new Focas1.IDBPDFADIR();
            Focas1.ODBPDFADIR pdf_adir_out = new Focas1.ODBPDFADIR();
            //drive = "//CNC_MEM/USER/PATH1/";
            pdf_adir_in.path      = drive;// "//CNC_MEM/USER/";//drive
            pdf_adir_in.size_kind = 3;
            pdf_adir_in.req_num   = 0;
            Focas1.ODBPDFNFIL pdf_nfil1 = new Focas1.ODBPDFNFIL();
            ret = Focas1.cnc_rdpdf_subdirn(Flibhndl, drive, pdf_nfil1);
            if (ret != Focas1.EW_OK)
            {
                return;
            }

            for (int j = 0; j < pdf_nfil1.dir_num + pdf_nfil1.file_num; j++)
            {
                ret = Focas1.cnc_rdpdf_alldir(Flibhndl, ref num_prog, pdf_adir_in, pdf_adir_out);
                if (ret != Focas1.EW_OK)
                {
                    //DispError(ret, "cnc_rdpdf_alldir()");
                    //MessageBox.Show("错!", "提醒", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                if (pdf_adir_out.data_kind == 0)//文件夹
                {
                    //this.lstbx_CNCProgramPath.Items.Add("*"+pdf_adir_out.d_f);
                    array_Folder.Add("<" + pdf_adir_out.d_f + ">");
                    pdf_adir_in.req_num++;
                }
                if (pdf_adir_out.data_kind == 1)//文件
                {
                    //this.lstbx_CNCProgramPath.Items.Add(pdf_adir_out.d_f);
                    array_File.Add(pdf_adir_out.d_f);
                    pdf_adir_in.req_num++;
                }
            }

            array_File.Sort();
            array_Folder.Sort();
        }
Ejemplo n.º 3
0
        public Tuple <short, string> ReadProgramList(ushort flib, string folder, ref List <ReadProgramListItemResultModel> data)
        {
            data.Clear();

            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 = 1;
            pdf_adir_in.type      = 1;
            pdf_adir_in.path      = 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);

                        short  data_kind = short.Parse(obj.GetType().GetField("data_kind").GetValue(obj).ToString());
                        int    size      = int.Parse(obj.GetType().GetField("size").GetValue(obj).ToString());
                        string name      = obj.GetType().GetField("d_f").GetValue(obj).ToString();
                        string comment   = obj.GetType().GetField("comment").GetValue(obj).ToString();
                        short  year      = short.Parse(obj.GetType().GetField("year").GetValue(obj).ToString());
                        short  mon       = short.Parse(obj.GetType().GetField("mon").GetValue(obj).ToString());
                        short  day       = short.Parse(obj.GetType().GetField("day").GetValue(obj).ToString());
                        short  hour      = short.Parse(obj.GetType().GetField("hour").GetValue(obj).ToString());
                        short  min       = short.Parse(obj.GetType().GetField("min").GetValue(obj).ToString());
                        short  sec       = short.Parse(obj.GetType().GetField("sec").GetValue(obj).ToString());


                        if (data_kind == 1)
                        {
                            data.Add(new ReadProgramListItemResultModel
                            {
                                Name           = name,
                                Description    = comment,
                                Size           = size,
                                CreateDateTime = new DateTime(year, mon, day, hour, min, sec)
                            });;
                        }
                    }
                }
                catch
                {
                    return(new Tuple <short, string>(-100, $"读取程序列表错误,系统错误"));
                }

                return(new Tuple <short, string>(0, null));
            }
            else
            {
                return(new Tuple <short, string>(ret, $"读取程序列表错误,返回:{ret}"));
            }
        }