public void teleopPeriodic() { Definitions.drivetrain.arcadeDrive( Definitions.xbox1.getRawAxis(1), Definitions.xbox1.getRawAxis(4), false); DriveShifter.checkGearShift(); SparkyIntakeBar.loadingRoutine(); Shooter.firingRoutine(5000); ArduinoComm.communicate(); try { if (!backfailed && !frontfailed) { if (Definitions.buttonbox.getRawButton(2) && !lastbutton4) { if (currsession == front) { NIVision.IMAQdxStopAcquisition(currsession); currsession = back; NIVision.IMAQdxConfigureGrab(currsession); } else if (currsession == back) { NIVision.IMAQdxStopAcquisition(currsession); currsession = front; NIVision.IMAQdxConfigureGrab(currsession); } } } lastbutton4 = Definitions.buttonbox.getRawButton(2); NIVision.IMAQdxGrab(currsession, frame, 1); CameraServer.getInstance().setImage(frame); } catch (Exception e) { // System.out.println("Camera problem"); } SmartDashboard.putNumber("Pressure", 250 * (Definitions.pressuretrans.getVoltage() / 5.0) - 25); SmartDashboard.putNumber("ballSeater", Definitions.ballholder.get() ? 1 : 0); SmartDashboard.putBoolean( "catapultReady", (250 * (Definitions.pressuretrans.getVoltage() / 5.0) - 25) > 40); if (Definitions.joystick.getRawButton(3) && !lastbutton3) { Definitions.flashlightrelay.set( Definitions.flashlightrelay.get() == Relay.Value.kOff ? Relay.Value.kForward : Relay.Value.kOff); } // System.out.println(Definitions.flashlightrelay.get()); lastbutton3 = Definitions.joystick.getRawButton(3); System.out.println(Definitions.pdp.getCurrent(4)); Timer.delay(0.01); }
public synchronized void getImage(Image image) { /*if (m_needSettingsUpdate || m_useJpeg) { m_needSettingsUpdate = false; m_useJpeg = false; updateSettings(); }*/ NIVision.IMAQdxGrab(m_id, image, 1); }
public synchronized void getImageData(ByteBuffer data) { if (m_needSettingsUpdate || !m_useJpeg) { m_needSettingsUpdate = false; m_useJpeg = true; updateSettings(); } NIVision.IMAQdxGetImageData( m_id, data, NIVision.IMAQdxBufferNumberMode.BufferNumberModeLast, 0); data.limit(data.capacity() - 1); data.limit(getJpegSize(data)); }
public synchronized void openCamera() { if (m_id != -1) return; // Camera is already open for (int i = 0; i < 3; i++) { try { m_id = NIVision.IMAQdxOpenCamera( m_name, NIVision.IMAQdxCameraControlMode.CameraControlModeController); } catch (VisionException e) { if (i == 2) throw e; delay(2.0); continue; } break; } }
public synchronized void updateSettings() { boolean wasActive = m_active; // Stop acquistion, close and reopen camera if (wasActive) stopCapture(); if (m_id != -1) closeCamera(); openCamera(); // Video Mode NIVision.dxEnumerateVideoModesResult enumerated = NIVision.IMAQdxEnumerateVideoModes(m_id); NIVision.IMAQdxEnumItem foundMode = null; int foundFps = 1000; for (NIVision.IMAQdxEnumItem mode : enumerated.videoModeArray) { Matcher m = m_reMode.matcher(mode.Name); if (!m.matches()) continue; if (Integer.parseInt(m.group("width")) != m_width) continue; if (Integer.parseInt(m.group("height")) != m_height) continue; double fps = Double.parseDouble(m.group("fps")); if (fps < m_fps) continue; if (fps > foundFps) continue; String format = m.group("format"); boolean isJpeg = format.equals("jpeg") || format.equals("JPEG"); if ((m_useJpeg && !isJpeg) || (!m_useJpeg && isJpeg)) continue; foundMode = mode; foundFps = (int) fps; } if (foundMode != null) { System.out.println("found mode " + foundMode.Value + ": " + foundMode.Name); if (foundMode.Value != enumerated.currentMode) NIVision.IMAQdxSetAttributeU32(m_id, ATTR_VIDEO_MODE, foundMode.Value); } // White Balance if (m_whiteBalance == "auto") NIVision.IMAQdxSetAttributeString(m_id, ATTR_WB_MODE, "Auto"); else { NIVision.IMAQdxSetAttributeString(m_id, ATTR_WB_MODE, "Manual"); if (m_whiteBalanceValue != -1) NIVision.IMAQdxSetAttributeI64(m_id, ATTR_WB_VALUE, m_whiteBalanceValue); } // Exposure if (m_exposure == "auto") NIVision.IMAQdxSetAttributeString(m_id, ATTR_EX_MODE, "AutoAperaturePriority"); else { NIVision.IMAQdxSetAttributeString(m_id, ATTR_EX_MODE, "Manual"); if (m_exposureValue != -1) { long minv = NIVision.IMAQdxGetAttributeMinimumI64(m_id, ATTR_EX_VALUE); long maxv = NIVision.IMAQdxGetAttributeMaximumI64(m_id, ATTR_EX_VALUE); long val = minv + (long) (((double) (maxv - minv)) * (((double) m_exposureValue) / 100.0)); // NIVision.IMAQdxSetAttributeI64(m_id, ATTR_EX_VALUE, val); NIVision.IMAQdxSetAttributeI64(m_id, ATTR_EX_VALUE, m_exposureValue); } } // Brightness NIVision.IMAQdxSetAttributeString(m_id, ATTR_BR_MODE, "Manual"); long minv = NIVision.IMAQdxGetAttributeMinimumI64(m_id, ATTR_BR_VALUE); long maxv = NIVision.IMAQdxGetAttributeMaximumI64(m_id, ATTR_BR_VALUE); long val = minv + (long) (((double) (maxv - minv)) * (((double) m_brightness) / 100.0)); NIVision.IMAQdxSetAttributeI64(m_id, ATTR_BR_VALUE, val); // Restart acquisition if (wasActive) startCapture(); }
public synchronized void stopCapture() { if (m_id == -1 || !m_active) return; NIVision.IMAQdxStopAcquisition(m_id); NIVision.IMAQdxUnconfigureAcquisition(m_id); m_active = false; }
public synchronized void startCapture() { if (m_id == -1 || m_active) return; NIVision.IMAQdxConfigureGrab(m_id); NIVision.IMAQdxStartAcquisition(m_id); m_active = true; }
public synchronized void closeCamera() { if (m_id == -1) return; NIVision.IMAQdxCloseCamera(m_id); m_id = -1; }