IOHandler.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package urgrip.toolbar;
  2. import java.util.Collection;
  3. import java.util.Iterator;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6. import com.ur.urcap.api.domain.io.AnalogIO;
  7. import com.ur.urcap.api.domain.io.DigitalIO;
  8. import com.ur.urcap.api.domain.io.IO;
  9. import com.ur.urcap.api.domain.io.IOModel;
  10. public class IOHandler {
  11. private final IOModel ioModel;
  12. public final static String NotConnected="N/C";
  13. public IOHandler(IOModel ioModel) {
  14. this.ioModel = ioModel;
  15. }
  16. /*Returns a DigitalIO object found by its default name
  17. * Default names are:
  18. * digital_in[0]
  19. * digital_in[1]
  20. * ...
  21. * digital_in[7]
  22. * digital_out[0]
  23. * digital_out[1]
  24. * ...
  25. * digital_out[7]
  26. * tool_in[0]
  27. * tool_in[1]
  28. * tool_out[0]
  29. * tool_out[1]
  30. * config_in[0]
  31. * config_in[1]
  32. * ...
  33. * config_in[7]
  34. * config_out[0]
  35. * config_out[1]
  36. * ...
  37. * config_out[7]
  38. *
  39. */
  40. public DigitalIO getDigitalIO(String defaultName){
  41. Collection<DigitalIO> IOcollection = ioModel.getIOs(DigitalIO.class);
  42. int IO_count = IOcollection.size();
  43. if(IO_count > 0){
  44. Iterator<DigitalIO> IO_itr = IOcollection.iterator();
  45. while(IO_itr.hasNext()){
  46. DigitalIO thisIO = IO_itr.next();
  47. String thisDefaultName = thisIO.getDefaultName();
  48. // System.out.println("Found an IO named "+thisDefaultName);
  49. if(thisDefaultName.equals(defaultName)){
  50. return thisIO;
  51. }
  52. }
  53. }
  54. return null;
  55. }
  56. private final static Pattern ioPattern = Pattern.compile("\\[(.*?)\\]");
  57. public static int getIOIndex(String ioName) {
  58. Matcher m = ioPattern.matcher(ioName);
  59. if(m.find()) {
  60. return Integer.parseInt(m.group(1));
  61. }
  62. return -1;
  63. }
  64. /*Returns an AnalogIO object found by its default name
  65. * Default names are:
  66. * analog_in[0]
  67. * analog_in[1]
  68. * analog_in[2] (Tool analog in 0)
  69. * analog_in[3] (Tool analog in 1)
  70. * analog_out[0]
  71. * analog_out[1]
  72. *
  73. */
  74. public AnalogIO getAnalogIO(String defaultName){
  75. Collection<AnalogIO> IOcollection = ioModel.getIOs(AnalogIO.class);
  76. int IO_count = IOcollection.size();
  77. if(IO_count > 0){
  78. Iterator<AnalogIO> IO_itr = IOcollection.iterator();
  79. while(IO_itr.hasNext()){
  80. AnalogIO thisIO = IO_itr.next();
  81. String thisDefaultName = thisIO.getDefaultName();
  82. // System.out.println("Found an IO named "+thisDefaultName);
  83. if(thisDefaultName.equals(defaultName)){
  84. return thisIO;
  85. }
  86. }
  87. }
  88. return null;
  89. }
  90. }