private string WriteEdgeCuttingDatasFunc(ushort flib, List <EdgeCuttingDataToCncDto> edgeCuttings)
        {
            Focas1.IODBEDGE2 list = new Focas1.IODBEDGE2();
            int i = 0;

            foreach (var prop in list.GetType().GetProperties())
            {
                if (i >= edgeCuttings.Count())
                {
                    break;
                }

                var angle  = edgeCuttings[i].Angle.GetDecimals();
                var gap    = edgeCuttings[i].Gap.GetDecimals();
                var r_len  = edgeCuttings[i].RecoveryDistance.GetDecimals();
                var r_feed = edgeCuttings[i].RecoveryFeedrate.GetDecimals();

                prop.SetValue(list, new Focas1.IODBEDGE2_data()
                {
                    slct       = 32767,
                    power      = edgeCuttings[i].Power,
                    freq       = edgeCuttings[i].Frequency,
                    duty       = edgeCuttings[i].Duty,
                    g_press    = (short)(edgeCuttings[i].GasPressure * 100),
                    g_kind     = edgeCuttings[i].GasCode,
                    pier_t     = edgeCuttings[i].PiercingTime,
                    angle      = angle.Item1,
                    gap        = gap.Item1,
                    r_len      = r_len.Item1,
                    r_feed     = r_feed.Item1,
                    r_freq     = edgeCuttings[i].RecoveryFrequency,
                    r_duty     = edgeCuttings[i].RecoveryDuty,
                    gap_axis   = edgeCuttings[i].GapAxis,
                    angle_dec  = (char)angle.Item2,
                    gap_dec    = (char)gap.Item2,
                    r_len_dec  = (char)r_len.Item2,
                    r_feed_dec = (char)r_feed.Item2,
                    pb_power   = edgeCuttings[i].PbPower,
                }, null);

                i++;

                if (i >= LaserLibraryEdgeCuttingDataQuantity)
                {
                    break;
                }
            }

            short num = LaserLibraryEdgeCuttingDataQuantity;
            var   ret = Focas1.cnc_wrpscdedge2(flib, 201, ref num, list);

            if (ret != 0)
            {
                var err_msg = GetEdgeCuttingDataErrorMessage(flib);

                return($"写入尖角参数错误,{err_msg}");
            }

            return(null);
        }
        public string WriteSingleEdgeCuttingData(ushort flib, EdgeCuttingDataToCncDto edgeCutting)
        {
            Focas1.IODBEDGE2 list = new Focas1.IODBEDGE2();

            var angle  = edgeCutting.Angle.GetDecimals();
            var gap    = edgeCutting.Gap.GetDecimals();
            var r_len  = edgeCutting.RecoveryDistance.GetDecimals();
            var r_feed = edgeCutting.RecoveryFeedrate.GetDecimals();

            list.data1.slct       = 32767;
            list.data1.power      = edgeCutting.Power;
            list.data1.freq       = edgeCutting.Frequency;
            list.data1.duty       = edgeCutting.Duty;
            list.data1.g_press    = (short)(edgeCutting.GasPressure * 100);
            list.data1.g_kind     = edgeCutting.GasCode;
            list.data1.pier_t     = edgeCutting.PiercingTime;
            list.data1.angle      = angle.Item1;
            list.data1.gap        = gap.Item1;
            list.data1.r_len      = r_len.Item1;
            list.data1.r_feed     = r_feed.Item1;
            list.data1.r_freq     = edgeCutting.RecoveryFrequency;
            list.data1.r_duty     = edgeCutting.RecoveryDuty;
            list.data1.gap_axis   = edgeCutting.GapAxis;
            list.data1.angle_dec  = (char)angle.Item2;
            list.data1.gap_dec    = (char)gap.Item2;
            list.data1.r_len_dec  = (char)r_len.Item2;
            list.data1.r_feed_dec = (char)r_feed.Item2;
            list.data1.pb_power   = edgeCutting.PbPower;

            short num       = 1;
            short start_num = edgeCutting.ENo;
            var   ret       = Focas1.cnc_wrpscdedge2(flib, start_num, ref num, list);

            if (ret != 0)
            {
                var err_msg = GetEdgeCuttingDataErrorMessage(flib);

                return($"写入尖角参数错误,{err_msg}");
            }

            FreeConnect(flib);
            return(null);
        }