public static ProgramDTO ReadOneProgram(ushort focasLibHandle, int progromToRead, short programDetailType = 1) { ProgramDTO program = new ProgramDTO(); int topProgram = progromToRead; short prgromsToRead = 1; short ret = 0; ret = 0; FocasLibBase.PRGDIR3 d = new FocasLibBase.PRGDIR3(); try { ret = FocasLib.cnc_rdprogdir3(focasLibHandle, programDetailType, ref topProgram, ref prgromsToRead, d); if (ret != 0) { Logger.WriteErrorLog("cnc_rdprogdir3() failed. return value is = " + ret); } else { if (prgromsToRead > 0) { if (topProgram == progromToRead) { program.ProgramNo = d.dir1.number; program.Comment = d.dir1.comment; } } } } catch (Exception ex) { Logger.WriteErrorLog(ex.ToString()); } return(program); }
//cnc_rdprogdir3 public static List <ProgramDTO> ReadAllPrograms(string ipAddress, ushort portNo, short programDetailType = 2) { List <ProgramDTO> programs = new List <ProgramDTO>(); int topProgram = 0; short prgromsToRead = 10; short ret = 0; ushort focasLibHandle = 0; ret = FocasLib.cnc_allclibhndl3(ipAddress, portNo, 10, out focasLibHandle); if (ret != 0) { Logger.WriteErrorLog("cnc_allclibhndl3() failed. return value is = " + ret); return(null); } ret = 0; while (prgromsToRead >= 10) { FocasLibBase.PRGDIR3 d = new FocasLibBase.PRGDIR3(); try { ret = FocasLib.cnc_rdprogdir3(focasLibHandle, programDetailType, ref topProgram, ref prgromsToRead, d); } catch (Exception ex) { Logger.WriteErrorLog(ex.ToString()); } if (ret != 0) { Logger.WriteErrorLog("cnc_rdprogdir3() failed. return value is = " + ret); break; } if (prgromsToRead == 0) { Logger.WriteErrorLog("No programs found."); break; } if (prgromsToRead >= 1) { get_program(programs, d.dir1); } if (prgromsToRead >= 2) { get_program(programs, d.dir2); } if (prgromsToRead >= 3) { get_program(programs, d.dir3); } if (prgromsToRead >= 4) { get_program(programs, d.dir4); } if (prgromsToRead >= 5) { get_program(programs, d.dir5); } if (prgromsToRead >= 6) { get_program(programs, d.dir6); } if (prgromsToRead >= 7) { get_program(programs, d.dir7); } if (prgromsToRead >= 8) { get_program(programs, d.dir8); } if (prgromsToRead >= 9) { get_program(programs, d.dir9); } if (prgromsToRead >= 10) { get_program(programs, d.dir10); } topProgram = programs[programs.Count - 1].ProgramNo + 1; } return(programs); }