Compare commits

...

46 Commits

Author SHA1 Message Date
Thad House
9a91ae54d6 Fixes incorrectly changed Java enums (#360)
Some enums need a specific value when they get passed to JNI
2016-11-20 20:32:52 -08:00
Tyler Veness
69422dc063 Replaced floats with doubles (#355)
This makes our APIs more consistent. With optimizations enabled, doubles are just as efficient as floats on ARMv7, so we should take advantage of the extra precision.
2016-11-20 07:25:03 -08:00
Dustin Spicuzza
7bcd243ec3 Reorder the HAL handle types (#357) 2016-11-20 00:01:24 -08:00
Thad House
8f70bea899 Fixes Athena Runtime build not including ntcore (#356) 2016-11-19 23:58:29 -08:00
Thad House
948c4275ad Fixes the wpilibj jar not getting updated during every build (#359) 2016-11-19 23:52:19 -08:00
Peter Johnson
03a1159915 Java CameraServer: Fix type cast exception. (#358)
Also fixes an unchecked warning.
2016-11-19 22:45:45 -08:00
Tyler Veness
1c8fb298b4 Ran formatter (#354) 2016-11-19 00:39:32 -08:00
Tyler Veness
b25a7cb370 Command::IsFinished() must be overriden by subclasses again (#353)
Documentation was added for InstantCommand and TimedCommand.
2016-11-19 00:26:22 -08:00
Tyler Veness
140c365e4b Added XboxController class (#140)
Joystick and Gamepad functionality was separated into cleaner interfaces.
2016-11-18 23:05:37 -08:00
Peter Johnson
8c93ceb728 Add cscore-based CameraServer. (#352)
Not fully functional yet, but implements basic functionality required for LabView dashboard interoperability.
2016-11-18 22:30:22 -08:00
Thad House
ac50d7cf8a Removes NiVision from allwpilib (#305) 2016-11-18 20:04:21 -08:00
Thad House
ecb873ff45 Fixes myRobotJava zipping before Java gets built (#351) 2016-11-18 19:44:13 -08:00
Thad House
78baa04ecc Adds OpenCV to myRobotJava (#350) 2016-11-18 16:20:30 -08:00
Krypton Cougars
b78f580d47 Adds default methods for Commands (#238) (#238)
Closes #235
2016-11-18 14:42:40 -08:00
Thad House
b115c75226 Adds SPI DIO to WPILib (#256) 2016-11-18 14:15:53 -08:00
Thad House
6bc092f3ae Updates SPI device pin (#348) 2016-11-18 14:14:51 -08:00
Thad House
f99a266ce4 Adds CsCore dependency to myRobotCpp (#349) 2016-11-18 14:14:11 -08:00
Fred Silberberg
1f724d58e0 Made the test scripts executable to fix -dirty on the version numbers. (#347) 2016-11-14 21:16:51 -08:00
Thad House
de4a246bb4 Adds OpenCV Loading to wpilib program startup (#338) 2016-11-11 22:32:13 -08:00
rrossbach
412b80da30 Fixes joystick button handling HAL JNI layer (buttons are in an (#341)
int, not a byte)
2016-11-10 20:21:54 -08:00
Thad House
47319960a5 Fixes a missed change to unique_ptr in the HAL (#337) 2016-11-08 16:53:17 -08:00
Thad House
b22d218236 Removes CANJaguar specific constants from JNI files (#339) 2016-11-08 16:52:24 -08:00
Thad House
6eb82bc314 Exclude genlinks.bat from HAL zip (#333) 2016-11-06 21:47:34 -08:00
Thad House
a06dd25d56 Adds cscore and opencv to wpilib (#332)
Unit tests now run using shared wpilib as well, since we had to add a ton
of sharedl ibraries anyway. Test scripts also updated to work properly.
2016-11-06 21:47:18 -08:00
Thad House
e1bb05bc52 Updates to the 2017 v7 image (#329) 2016-11-05 23:20:40 -07:00
Tyler Veness
8694a020ac Removed entries from .styleguide that are included in .gitignore (#331)
format.py now considers files that match patterns in .gitignore to be modifiable files. Therefore, listing them in .styleguide is redundant.
2016-11-05 08:39:46 -07:00
Thad House
1efb2e4d3d Deprecates Task and Semaphore, and changes other deprecations to use wpiutil version (#330) 2016-11-05 00:23:52 -07:00
Thad House
861726cefa Adds gradle task to fix NI libraries whenever new ones are added. (#325)
Generates genlinks, and modifies headers to make them self contained
2016-11-04 15:17:17 -07:00
Thad House
81212d80c6 Fixes ultrasonic declaration (#328)
Also adds test to ensure this doens't happen again
2016-11-04 15:02:29 -07:00
Thad House
2235a809c4 Fixes a missed change from the ni-libraries location change (#326) 2016-11-04 13:26:34 -07:00
Thad House
3fe0f49ac0 Moves NI headers to their own folder in the repo (#324) 2016-11-04 01:22:28 -07:00
Thad House
03d8f9193b Moves using namespace from ChipObject.h into hal namespace (#323) 2016-11-03 23:01:13 -07:00
Thad House
5e54969f6b Adds Task back into WPILibC (#320)
Note that deprecation has not been added yet, since we need to add the
deprecation API's for MSVC and GCC < 4.9.
2016-11-02 22:17:40 -07:00
Thad House
18ef5eb1bf C++ and Java tests for the new build system (#309) 2016-11-01 23:41:05 -07:00
Tyler Veness
b5e3d92e9d Remove errant "using namespace" in global namespace (#318) 2016-11-01 23:40:28 -07:00
Tyler Veness
ba8761e39e "using" directives are no longer used in global namespaces (#219) 2016-11-01 23:09:51 -07:00
Thad House
78f0b1562c Removes Task.h from wpilib.h header (#317) 2016-11-01 23:08:57 -07:00
Thad House
5c28b30028 Removes NetworkTables from Java executable jar (#303) 2016-11-01 22:34:52 -07:00
Peter Johnson
59267da72b Namespace all wpilibc functions/classes into "frc" namespace. (#311)
Base.h provides a backwards compatibility shim (enabled unless
NAMESPACED_WPILIB is defined) that does a "using namespace frc".
However, as some header files do not include Base.h, this may
be a breaking change in some corner cases (with an easy fix).

Fixes #218.
2016-11-01 22:33:12 -07:00
Dustin Spicuzza
36ad45c07d Delete .gitreview (#316) 2016-11-01 22:31:53 -07:00
Thad House
ecb2add791 Removes additional references to CANTalon from the library. (#312) 2016-11-01 20:13:26 -07:00
Thad House
9bbdaf300b Removes the task class from wpilib (#314)
Was required back on the cRIO, but there are much better alternatives
nowadays.
2016-11-01 20:12:08 -07:00
Thad House
bc492bb40e Removes the REAL definition from wpilib.h (#315)
Interferes with OpenCV, and is heavy namespace polution anyway.
2016-11-01 19:23:59 -07:00
Thad House
81221c4874 Moves JNI internal utility methods to frc namespace (#310) 2016-10-31 23:04:49 -07:00
Thad House
137b3d81fb Fixes JNI file not being copied to output directory for integration tests (#308) 2016-10-30 23:14:19 -07:00
Fred Silberberg
6741f47ef1 Update version plugin (#307) 2016-10-30 01:18:18 -07:00
626 changed files with 10800 additions and 74112 deletions

View File

@@ -1,5 +0,0 @@
[gerrit]
host=usfirst.collab.net
port=29418
project=allwpilib
defaultbranch=master

View File

@@ -15,7 +15,6 @@ otherExtensions {
}
genFolderExclude {
\.vscode
FRC_FPGA_ChipObject
NetworkCommunication
ctre
@@ -38,15 +37,11 @@ genFileExclude {
modifiableFolderExclude {
\.git
\.gradle
__pycache__
build
wpilibj/src/athena/cpp/include
wpilibj/src/athena/cpp/lib
}
modifiableFileExclude {
\.jar$
\.patch$
\.png$
\.py$

View File

@@ -1,6 +1,6 @@
plugins {
id 'net.ltgt.errorprone' version '0.0.8'
id 'edu.wpi.first.wpilib.versioning.WPILibVersioningPlugin' version '1.2'
id 'edu.wpi.first.wpilib.versioning.WPILibVersioningPlugin' version '1.4'
}
def enableSimulation = hasProperty('enableSimulation')
@@ -47,6 +47,8 @@ subprojects {
apply from: 'cppSettings.gradle'
apply from: 'ni-libraries/ni-libraries.gradle'
task wrapper(type: Wrapper) {
gradleVersion = '3.0'
}

View File

@@ -1,5 +1,5 @@
// These add the nilibraries shared library to the linker args
def niLibraryPath = file('ni-libraries').path
def niLibraryPath = file('ni-libraries/lib').path
def niLibrary = niLibraryPath + "/libnilibraries.so"
task downloadArmNetworkTables() {
@@ -133,6 +133,43 @@ task unzipWpiUtil(type: Copy) {
into wpiUtilUnzipLocation
}
task downloadArmCsCore() {
description = 'Downloads the C++ ARM CsCore Uberzip maven dependency.'
group = 'WPILib'
def depFolder = "$buildDir/dependencies"
def csZip = file("$depFolder/cscore-arm.zip")
outputs.file(csZip)
def armCsCore
doFirst {
def armCsDependency = project.dependencies.create('edu.wpi.cscore.cpp:cscore:+:athena-uberzip@zip')
def armConfig = project.configurations.detachedConfiguration(armCsDependency)
armConfig.setTransitive(false)
armCsCore = armConfig.files[0].canonicalFile
}
doLast {
copy {
from armCsCore
rename 'cscore(.+)', 'cscore-arm.zip'
into depFolder
}
}
}
def csCoreUnzipLocation = "$buildDir/cscore"
// Create a task that will unzip the cscore files into a temporary build directory
task unzipCsCore(type: Copy) {
description = 'Unzips the cscore maven dependency so that the include files and libraries can be used'
group = 'WPILib'
dependsOn downloadArmCsCore
from zipTree(downloadArmCsCore.outputs.files.singleFile)
into csCoreUnzipLocation
}
task clean(type: Delete) {
description = "Deletes the build directory"
group = "Build"
@@ -198,6 +235,26 @@ subprojects {
addStaticWpiUtilLibraryLinks(compileTask, linker, targetPlatform)
}
}
// This defines a project property that projects depending on cscore can use to setup that dependency.
ext.defineCsCoreProperties = {
ext.csCore = csCoreUnzipLocation
ext.csCoreInclude = "$csCoreUnzipLocation/include"
ext.csLibArmLocation = "$csCoreUnzipLocation/lib"
ext.csSharedLib = "$csLibArmLocation/libcscore.so"
ext.cvSharedLib = "$csLibArmLocation/libopencv.so"
ext.addCsCoreLibraryLinks = { compileTask, linker, targetPlatform ->
compileTask.dependsOn project(':').unzipCsCore
String architecture = targetPlatform.architecture
if (architecture.contains('arm')) {
linker.args << '-L' + csLibArmLocation
linker.args csSharedLib
linker.args cvSharedLib
}
}
}
plugins.withType(CppPlugin).whenPluginAdded {
// We use a custom-built cross compiler with the prefix arm-frc-linux-gnueabi-<util name>
// If this ever changes, the prefix will need to be changed here
@@ -268,6 +325,9 @@ subprojects {
}
}
ext.niLibraryHeadersRoot = "${rootDir}/ni-libraries/include"
ext.niLibraryHeadersChipObject = "${rootDir}/ni-libraries/include/FRC_FPGA_ChipObject"
// This task adds the appropriate linker flags for the NI libraries
ext.addNiLibraryLinks = { linker, targetPlatform ->
String architecture = targetPlatform.architecture

View File

@@ -24,11 +24,11 @@ model {
sources {
cpp {
source {
srcDirs = ["lib/athena", "lib/athena/FRC_FPGA_ChipObject", "lib/shared"]
srcDirs = ["lib/athena", niLibraryHeadersRoot, "lib/shared"]
includes = ["**/*.cpp"]
}
exportedHeaders {
srcDirs = ["include", "lib/athena/FRC_FPGA_ChipObject", wpiUtilInclude]
srcDirs = ["include", niLibraryHeadersRoot, wpiUtilInclude]
}
}
}
@@ -70,6 +70,7 @@ task halZip(type: Zip) {
spec.headerDirs.each {
def normalizedIt = it.toString().replace('/', '\\')
def normalizedWPIUtil = wpiUtilInclude.toString().replace('/', '\\')
// exclude the wpiUtil library, and any NI libraries (NI libraries grabbed later)
if (normalizedIt != normalizedWPIUtil) {
from(it) {
into 'include'
@@ -89,9 +90,10 @@ task halZip(type: Zip) {
}
// Finally, include all of the shared library objects from the ni directory
from(project.file('../ni-libraries')) {
from(project.file('../ni-libraries/lib')) {
into 'lib'
exclude 'genlinks'
exclude 'genlinks.bat'
exclude 'libwpi.so'
}
@@ -132,6 +134,7 @@ task athenaRuntimeZip(type: Zip) {
}
defineNetworkTablesProperties()
dependsOn project(':').unzipNetworkTables
from(project.file(netTablesInclude)) {
into 'include'

View File

@@ -1,66 +0,0 @@
// CANSessionMux.h
//
// Defines the API for building a CAN Interface Plugin to support
// PWM-cable-free CAN motor control on FRC robots. This allows you
// to connect any CAN interface to the secure Jaguar CAN driver.
//
#ifndef __CANSessionMux_h__
#define __CANSessionMux_h__
#if defined(__vxworks)
#include <vxWorks.h>
#else
#include <stdint.h>
#endif
#define CAN_SEND_PERIOD_NO_REPEAT 0
#define CAN_SEND_PERIOD_STOP_REPEATING -1
/* Flags in the upper bits of the messageID */
#define CAN_IS_FRAME_REMOTE 0x80000000
#define CAN_IS_FRAME_11BIT 0x40000000
#define ERR_CANSessionMux_InvalidBuffer -44086
#define ERR_CANSessionMux_MessageNotFound -44087
#define WARN_CANSessionMux_NoToken 44087
#define ERR_CANSessionMux_NotAllowed -44088
#define ERR_CANSessionMux_NotInitialized -44089
#define ERR_CANSessionMux_SessionOverrun 44050
struct tCANStreamMessage{
uint32_t messageID;
uint32_t timeStamp;
uint8_t data[8];
uint8_t dataSize;
};
#ifdef __cplusplus
namespace nCANSessionMux
{
void sendMessage_wrapper(uint32_t messageID, const uint8_t *data, uint8_t dataSize, int32_t periodMs, int32_t *status);
void receiveMessage_wrapper(uint32_t *messageID, uint32_t messageIDMask, uint8_t *data, uint8_t *dataSize, uint32_t *timeStamp, int32_t *status);
void openStreamSession(uint32_t *sessionHandle, uint32_t messageID, uint32_t messageIDMask, uint32_t maxMessages, int32_t *status);
void closeStreamSession(uint32_t sessionHandle);
void readStreamSession(uint32_t sessionHandle, struct tCANStreamMessage *messages, uint32_t messagesToRead, uint32_t *messagesRead, int32_t *status);
void getCANStatus(float *percentBusUtilization, uint32_t *busOffCount, uint32_t *txFullCount, uint32_t *receiveErrorCount, uint32_t *transmitErrorCount, int32_t *status);
}
#endif
#ifdef __cplusplus
extern "C"
{
#endif
void FRC_NetworkCommunication_CANSessionMux_sendMessage(uint32_t messageID, const uint8_t *data, uint8_t dataSize, int32_t periodMs, int32_t *status);
void FRC_NetworkCommunication_CANSessionMux_receiveMessage(uint32_t *messageID, uint32_t messageIDMask, uint8_t *data, uint8_t *dataSize, uint32_t *timeStamp, int32_t *status);
void FRC_NetworkCommunication_CANSessionMux_openStreamSession(uint32_t *sessionHandle, uint32_t messageID, uint32_t messageIDMask, uint32_t maxMessages, int32_t *status);
void FRC_NetworkCommunication_CANSessionMux_closeStreamSession(uint32_t sessionHandle);
void FRC_NetworkCommunication_CANSessionMux_readStreamSession(uint32_t sessionHandle, struct tCANStreamMessage *messages, uint32_t messagesToRead, uint32_t *messagesRead, int32_t *status);
void FRC_NetworkCommunication_CANSessionMux_getCANStatus(float *percentBusUtilization, uint32_t *busOffCount, uint32_t *txFullCount, uint32_t *receiveErrorCount, uint32_t *transmitErrorCount, int32_t *status);
#ifdef __cplusplus
}
#endif
#endif // __CANSessionMux_h__

View File

@@ -1,163 +0,0 @@
/*************************************************************
* NOTICE
*
* These are the only externally exposed functions to the
* NetworkCommunication library
*
* This is an implementation of FRC Spec for Comm Protocol
* Revision 4.5, June 30, 2008
*
* Copyright (c) National Instruments 2008. All Rights Reserved.
*
*************************************************************/
#ifndef __FRC_COMM_H__
#define __FRC_COMM_H__
#ifdef WIN32
# include <vxWorks_compat.h>
#ifdef USE_THRIFT
# define EXPORT_FUNC
# else
# define EXPORT_FUNC __declspec(dllexport) __cdecl
# endif
#elif defined(__vxworks)
# include <vxWorks.h>
# define EXPORT_FUNC
#elif defined(__linux)
# include <stdint.h>
# include <pthread.h>
# define EXPORT_FUNC
#endif
#define ERR_FRCSystem_NetCommNotResponding -44049
#define ERR_FRCSystem_NoDSConnection -44018
#ifdef WIN32
# define __DEPRECATED__ __declspec(deprecated)
#else
# define __DEPRECATED__ __attribute__((__deprecated__))
#endif
enum AllianceStationID_t {
kAllianceStationID_red1,
kAllianceStationID_red2,
kAllianceStationID_red3,
kAllianceStationID_blue1,
kAllianceStationID_blue2,
kAllianceStationID_blue3,
};
enum MatchType_t {
kMatchType_none,
kMatchType_practice,
kMatchType_qualification,
kMatchType_elimination,
};
struct ControlWord_t {
#ifndef __vxworks
uint32_t enabled : 1;
uint32_t autonomous : 1;
uint32_t test :1;
uint32_t eStop : 1;
uint32_t fmsAttached:1;
uint32_t dsAttached:1;
uint32_t control_reserved : 26;
#else
uint32_t control_reserved : 26;
uint32_t dsAttached:1;
uint32_t fmsAttached:1;
uint32_t eStop : 1;
uint32_t test :1;
uint32_t autonomous : 1;
uint32_t enabled : 1;
#endif
};
struct JoystickAxes_t {
uint16_t count;
int16_t axes[1];
};
struct JoystickPOV_t {
uint16_t count;
int16_t povs[1];
};
#ifdef __cplusplus
extern "C" {
#endif
int EXPORT_FUNC FRC_NetworkCommunication_Reserve(void *instance);
#ifndef SIMULATION
void EXPORT_FUNC getFPGAHardwareVersion(uint16_t *fpgaVersion, uint32_t *fpgaRevision);
#endif
/**
* Safely copy data into the status packet to be sent back to the driver station.
* @deprecated battery is the only parameter to this function that is still used, and only on cRIO / simulation.
*/
__DEPRECATED__ int EXPORT_FUNC setStatusData(float battery, uint8_t dsDigitalOut, uint8_t updateNumber,
const char *userDataHigh, int userDataHighLength,
const char *userDataLow, int userDataLowLength, int wait_ms);
/**
* Send error data to the DS
* @deprecated This old method is hard to parse on the DS side. It will be removed soon. Use FRC_NetworkCommunication_sendError instead.
* @param errorData is a cstr of the error message
* @param errorDataLength is the length of the errorData
* @param wait_ms is ignored (included for binary compatibility)
* @return 0 on success, 1 on no DS connection
*/
__DEPRECATED__ int EXPORT_FUNC setErrorData(const char *errors, int errorsLength, int wait_ms);
/**
* Send a console output line to the Driver Station
* @param line a null-terminated string
* @return 0 on success, other on failure
*/
int EXPORT_FUNC FRC_NetworkCommunication_sendConsoleLine(const char *line);
/**
* Send an error to the Driver Station
* @param isError true if error, false if warning
* @param errorCode value of error condition
* @param isLVCode true if error code is defined in errors.txt, false if not (i.e. made up for C++)
* @param details error description that contains details such as which resource number caused the failure
* @param location Source file, function, and line number that the error was generated - optional
* @param callStack The details about what functions were called through before the error was reported - optional
* @return 0 on success, other on failure
*/
int EXPORT_FUNC FRC_NetworkCommunication_sendError(int isError, int32_t errorCode, int isLVCode,
const char *details, const char *location, const char *callStack);
#ifdef WIN32
void EXPORT_FUNC setNewDataSem(HANDLE);
#elif defined (__vxworks)
void EXPORT_FUNC setNewDataSem(SEM_ID);
#else
void EXPORT_FUNC setNewDataSem(pthread_cond_t *);
#endif
// this uint32_t is really a LVRefNum
int EXPORT_FUNC setNewDataOccurRef(uint32_t refnum);
int EXPORT_FUNC FRC_NetworkCommunication_getControlWord(struct ControlWord_t *controlWord);
int EXPORT_FUNC FRC_NetworkCommunication_getAllianceStation(enum AllianceStationID_t *allianceStation);
int EXPORT_FUNC FRC_NetworkCommunication_getMatchTime(float *matchTime);
int EXPORT_FUNC FRC_NetworkCommunication_getJoystickAxes(uint8_t joystickNum, struct JoystickAxes_t *axes, uint8_t maxAxes);
int EXPORT_FUNC FRC_NetworkCommunication_getJoystickButtons(uint8_t joystickNum, uint32_t *buttons, uint8_t *count);
int EXPORT_FUNC FRC_NetworkCommunication_getJoystickPOVs(uint8_t joystickNum, struct JoystickPOV_t *povs, uint8_t maxPOVs);
int EXPORT_FUNC FRC_NetworkCommunication_setJoystickOutputs(uint8_t joystickNum, uint32_t hidOutputs, uint16_t leftRumble, uint16_t rightRumble);
int EXPORT_FUNC FRC_NetworkCommunication_getJoystickDesc(uint8_t joystickNum, uint8_t *isXBox, uint8_t *type, char *name,
uint8_t *axisCount, uint8_t *axisTypes, uint8_t *buttonCount, uint8_t *povCount);
void EXPORT_FUNC FRC_NetworkCommunication_getVersionString(char *version);
int EXPORT_FUNC FRC_NetworkCommunication_observeUserProgramStarting(void);
void EXPORT_FUNC FRC_NetworkCommunication_observeUserProgramDisabled(void);
void EXPORT_FUNC FRC_NetworkCommunication_observeUserProgramAutonomous(void);
void EXPORT_FUNC FRC_NetworkCommunication_observeUserProgramTeleop(void);
void EXPORT_FUNC FRC_NetworkCommunication_observeUserProgramTest(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,58 +0,0 @@
#ifndef __LoadOut_h__
#define __LoadOut_h__
#ifdef WIN32
#include <vxWorks_compat.h>
#define EXPORT_FUNC __declspec(dllexport) __cdecl
#elif defined (__vxworks)
#include <vxWorks.h>
#define EXPORT_FUNC
#else
#include <stdint.h>
#define EXPORT_FUNC
#endif
#define kMaxModuleNumber 2
namespace nLoadOut
{
#if defined(__vxworks) || defined(SIMULATION)
typedef enum {
kModuleType_Unknown = 0x00,
kModuleType_Analog = 0x01,
kModuleType_Digital = 0x02,
kModuleType_Solenoid = 0x03,
} tModuleType;
bool EXPORT_FUNC getModulePresence(tModuleType moduleType, uint8_t moduleNumber);
#endif
typedef enum {
kTargetClass_Unknown = 0x00,
kTargetClass_FRC1 = 0x10,
kTargetClass_FRC2 = 0x20,
kTargetClass_FRC3 = 0x30,
kTargetClass_RoboRIO = 0x40,
#if defined(__vxworks) || defined(SIMULATION)
kTargetClass_FRC2_Analog = kTargetClass_FRC2 | kModuleType_Analog,
kTargetClass_FRC2_Digital = kTargetClass_FRC2 | kModuleType_Digital,
kTargetClass_FRC2_Solenoid = kTargetClass_FRC2 | kModuleType_Solenoid,
#endif
kTargetClass_FamilyMask = 0xF0,
kTargetClass_ModuleMask = 0x0F,
} tTargetClass;
tTargetClass EXPORT_FUNC getTargetClass();
}
#ifdef __cplusplus
extern "C" {
#endif
#if defined(__vxworks) || defined(SIMULATION)
uint32_t EXPORT_FUNC FRC_NetworkCommunication_nLoadOut_getModulePresence(uint32_t moduleType, uint8_t moduleNumber);
#endif
uint32_t EXPORT_FUNC FRC_NetworkCommunication_nLoadOut_getTargetClass();
#ifdef __cplusplus
}
#endif
#endif // __LoadOut_h__

View File

@@ -1,149 +0,0 @@
#ifndef __UsageReporting_h__
#define __UsageReporting_h__
#ifdef WIN32
#include <vxWorks_compat.h>
#define EXPORT_FUNC __declspec(dllexport) __cdecl
#elif defined (__vxworks)
#include <vxWorks.h>
#define EXPORT_FUNC
#else
#include <stdint.h>
#include <stdlib.h>
#define EXPORT_FUNC
#endif
#define kUsageReporting_version 1
namespace nUsageReporting
{
typedef enum
{
kResourceType_Controller,
kResourceType_Module,
kResourceType_Language,
kResourceType_CANPlugin,
kResourceType_Accelerometer,
kResourceType_ADXL345,
kResourceType_AnalogChannel,
kResourceType_AnalogTrigger,
kResourceType_AnalogTriggerOutput,
kResourceType_CANJaguar,
kResourceType_Compressor,
kResourceType_Counter,
kResourceType_Dashboard,
kResourceType_DigitalInput,
kResourceType_DigitalOutput,
kResourceType_DriverStationCIO,
kResourceType_DriverStationEIO,
kResourceType_DriverStationLCD,
kResourceType_Encoder,
kResourceType_GearTooth,
kResourceType_Gyro,
kResourceType_I2C,
kResourceType_Framework,
kResourceType_Jaguar,
kResourceType_Joystick,
kResourceType_Kinect,
kResourceType_KinectStick,
kResourceType_PIDController,
kResourceType_Preferences,
kResourceType_PWM,
kResourceType_Relay,
kResourceType_RobotDrive,
kResourceType_SerialPort,
kResourceType_Servo,
kResourceType_Solenoid,
kResourceType_SPI,
kResourceType_Task,
kResourceType_Ultrasonic,
kResourceType_Victor,
kResourceType_Button,
kResourceType_Command,
kResourceType_AxisCamera,
kResourceType_PCVideoServer,
kResourceType_SmartDashboard,
kResourceType_Talon,
kResourceType_HiTechnicColorSensor,
kResourceType_HiTechnicAccel,
kResourceType_HiTechnicCompass,
kResourceType_SRF08,
kResourceType_AnalogOutput,
kResourceType_VictorSP,
kResourceType_TalonSRX,
kResourceType_CANTalonSRX,
kResourceType_ADXL362,
kResourceType_ADXRS450,
kResourceType_RevSPARK,
kResourceType_MindsensorsSD540,
kResourceType_DigitalFilter,
} tResourceType;
typedef enum
{
kLanguage_LabVIEW = 1,
kLanguage_CPlusPlus = 2,
kLanguage_Java = 3,
kLanguage_Python = 4,
kCANPlugin_BlackJagBridge = 1,
kCANPlugin_2CAN = 2,
kFramework_Iterative = 1,
kFramework_Simple = 2,
kFramework_CommandControl = 3,
kRobotDrive_ArcadeStandard = 1,
kRobotDrive_ArcadeButtonSpin = 2,
kRobotDrive_ArcadeRatioCurve = 3,
kRobotDrive_Tank = 4,
kRobotDrive_MecanumPolar = 5,
kRobotDrive_MecanumCartesian = 6,
kDriverStationCIO_Analog = 1,
kDriverStationCIO_DigitalIn = 2,
kDriverStationCIO_DigitalOut = 3,
kDriverStationEIO_Acceleration = 1,
kDriverStationEIO_AnalogIn = 2,
kDriverStationEIO_AnalogOut = 3,
kDriverStationEIO_Button = 4,
kDriverStationEIO_LED = 5,
kDriverStationEIO_DigitalIn = 6,
kDriverStationEIO_DigitalOut = 7,
kDriverStationEIO_FixedDigitalOut = 8,
kDriverStationEIO_PWM = 9,
kDriverStationEIO_Encoder = 10,
kDriverStationEIO_TouchSlider = 11,
kADXL345_SPI = 1,
kADXL345_I2C = 2,
kCommand_Scheduler = 1,
kSmartDashboard_Instance = 1,
} tInstances;
/**
* Report the usage of a resource of interest.
*
* @param resource one of the values in the tResourceType above (max value 51).
* @param instanceNumber an index that identifies the resource instance.
* @param context an optional additional context number for some cases (such as module number). Set to 0 to omit.
* @param feature a string to be included describing features in use on a specific resource. Setting the same resource more than once allows you to change the feature string.
*/
uint32_t EXPORT_FUNC report(tResourceType resource, uint8_t instanceNumber, uint8_t context = 0, const char *feature = NULL);
}
#ifdef __cplusplus
extern "C" {
#endif
uint32_t EXPORT_FUNC FRC_NetworkCommunication_nUsageReporting_report(uint8_t resource, uint8_t instanceNumber, uint8_t context, const char *feature);
#ifdef __cplusplus
}
#endif
#endif // __UsageReporting_h__

View File

@@ -10,12 +10,6 @@
#pragma GCC diagnostic ignored "-Wpedantic"
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
#include "FRC_FPGA_ChipObject/tDMAChannelDescriptor.h" // NOLINT
#include "FRC_FPGA_ChipObject/tDMAManager.h" // NOLINT
#include "FRC_FPGA_ChipObject/tInterruptManager.h" // NOLINT
#include "FRC_FPGA_ChipObject/tSystem.h" // NOLINT
#include "FRC_FPGA_ChipObject/tSystemInterface.h" // NOLINT
#include <stdint.h>
#include "FRC_FPGA_ChipObject/RoboRIO_FRC_ChipObject_Aliases.h"
@@ -38,8 +32,15 @@
#include "FRC_FPGA_ChipObject/nRoboRIO_FPGANamespace/tRelay.h"
#include "FRC_FPGA_ChipObject/nRoboRIO_FPGANamespace/tSPI.h"
#include "FRC_FPGA_ChipObject/nRoboRIO_FPGANamespace/tSysWatchdog.h"
#include "FRC_FPGA_ChipObject/tDMAChannelDescriptor.h"
#include "FRC_FPGA_ChipObject/tDMAManager.h"
#include "FRC_FPGA_ChipObject/tInterruptManager.h"
#include "FRC_FPGA_ChipObject/tSystem.h"
#include "FRC_FPGA_ChipObject/tSystemInterface.h"
// FIXME: these should not be here!
namespace hal {
using namespace nFPGA;
using namespace nRoboRIO_FPGANamespace;
} // namespace hal
#pragma GCC diagnostic pop

View File

@@ -33,7 +33,6 @@
#include "HAL/SPI.h"
#include "HAL/SerialPort.h"
#include "HAL/Solenoid.h"
#include "HAL/Task.h"
#include "HAL/Types.h"
namespace HALUsageReporting = nUsageReporting;

View File

@@ -31,7 +31,6 @@ int32_t HAL_GetNumPCMModules(void);
int32_t HAL_GetNumSolenoidChannels(void);
int32_t HAL_GetNumPDPModules(void);
int32_t HAL_GetNumPDPChannels(void);
int32_t HAL_GetNumCanTalons(void);
#ifdef __cplusplus
}
#endif

View File

@@ -1,43 +0,0 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2016. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#pragma once
#include <pthread.h>
#include <stdint.h>
#ifndef _STATUS_DEFINED
#define _STATUS_DEFINED
typedef int32_t STATUS;
#endif /* _STATUS_DEFINED */
#ifndef OK
#define OK 0
#endif /* OK */
#ifndef ERROR
#define ERROR (-1)
#endif /* ERROR */
typedef pthread_t* TASK;
#ifdef __cplusplus
extern "C" {
#endif
// Note: These constants used to be declared extern and were defined in
// Task.cpp. This caused issues with the JNI bindings for java, and so the
// instantiations were moved here.
const int32_t HAL_TaskLib_ILLEGAL_PRIORITY = 22; // 22 is EINVAL
STATUS HAL_VerifyTaskID(TASK task);
// valid priority [1..99]
STATUS HAL_SetTaskPriority(TASK task, int32_t priority);
STATUS HAL_GetTaskPriority(TASK task, int32_t* priority);
#ifdef __cplusplus
}
#endif

View File

@@ -15,32 +15,32 @@ typedef int32_t HAL_Handle;
typedef HAL_Handle HAL_PortHandle;
typedef HAL_Handle HAL_InterruptHandle;
typedef HAL_Handle HAL_NotifierHandle;
typedef HAL_Handle HAL_AnalogInputHandle;
typedef HAL_Handle HAL_AnalogOutputHandle;
typedef HAL_Handle HAL_AnalogInputHandle;
typedef HAL_Handle HAL_AnalogTriggerHandle;
typedef HAL_Handle HAL_RelayHandle;
typedef HAL_Handle HAL_CompressorHandle;
typedef HAL_Handle HAL_CounterHandle;
typedef HAL_Handle HAL_DigitalHandle;
typedef HAL_Handle HAL_DigitalPWMHandle;
typedef HAL_Handle HAL_CounterHandle;
typedef HAL_Handle HAL_CompressorHandle;
typedef HAL_Handle HAL_SolenoidHandle;
typedef HAL_Handle HAL_EncoderHandle;
typedef HAL_Handle HAL_FPGAEncoderHandle;
typedef HAL_Handle HAL_EncoderHandle;
typedef HAL_Handle HAL_GyroHandle;
typedef HAL_Handle HAL_InterruptHandle;
typedef HAL_Handle HAL_NotifierHandle;
typedef HAL_Handle HAL_RelayHandle;
typedef HAL_Handle HAL_SolenoidHandle;
typedef int32_t HAL_Bool;

View File

@@ -12,8 +12,11 @@
#include <condition_variable>
#include "HAL/cpp/priority_mutex.h"
#include "support/deprecated.h"
class Semaphore {
class WPI_DEPRECATED(
"Semaphore scheduled for removal in 2018. Recommended to replace with a "
"std::mutex and std::condition_variable") Semaphore {
public:
explicit Semaphore(int32_t count = 0);
Semaphore(Semaphore&&);

View File

@@ -84,7 +84,15 @@ static inline int16_t getPortHandleModule(HAL_PortHandle handle) {
return static_cast<uint8_t>((handle >> 8) & 0xff);
}
// using a 16 bit value so we can store 0-255 and still report error
static inline int16_t getPortHandleSPIEnable(HAL_PortHandle handle) {
if (!isHandleType(handle, HAL_HandleEnum::Port)) return InvalidHandleIndex;
return static_cast<uint8_t>((handle >> 16) & 0xff);
}
HAL_PortHandle createPortHandle(uint8_t channel, uint8_t module);
HAL_PortHandle createPortHandleForSPI(uint8_t channel);
HAL_Handle createHandle(int16_t index, HAL_HandleEnum handleType);
} // namespace hal

View File

@@ -13,9 +13,11 @@
#include <cstdio>
#include <memory>
#include "ChipObject.h"
#include "HAL/ChipObject.h"
#include "HAL/HAL.h"
using namespace hal;
// The 7-bit I2C address with a 0 "send" bit
static const uint8_t kSendAddress = (0x1c << 1) | 0;

View File

@@ -87,13 +87,13 @@ void HAL_SetupAnalogGyro(HAL_GyroHandle handle, int32_t* status) {
if (*status != 0) return;
HAL_SetAnalogOversampleBits(gyro->handle, kOversampleBits, status);
if (*status != 0) return;
float sampleRate =
double sampleRate =
kSamplesPerSecond * (1 << (kAverageBits + kOversampleBits));
HAL_SetAnalogSampleRate(sampleRate, status);
if (*status != 0) return;
Wait(0.1);
HAL_SetAnalogGyroDeadband(handle, 0.0f, status);
HAL_SetAnalogGyroDeadband(handle, 0.0, status);
if (*status != 0) return;
}

View File

@@ -99,7 +99,7 @@ HAL_Bool HAL_CheckAnalogInputChannel(int32_t channel) {
*/
void HAL_SetAnalogSampleRate(double samplesPerSecond, int32_t* status) {
// TODO: This will change when variable size scan lists are implemented.
// TODO: Need float comparison with epsilon.
// TODO: Need double comparison with epsilon.
// wpi_assert(!sampleRateSet || GetSampleRate() == samplesPerSecond);
initializeAnalog(status);
if (*status != 0) return;

View File

@@ -9,8 +9,8 @@
#include <atomic>
#include "ChipObject.h"
#include "HAL/AnalogInput.h"
#include "HAL/ChipObject.h"
#include "HAL/cpp/priority_mutex.h"
#include "PortsInternal.h"
@@ -80,7 +80,7 @@ int32_t getAnalogNumChannelsToActivate(int32_t* status) {
*/
void setAnalogSampleRate(double samplesPerSecond, int32_t* status) {
// TODO: This will change when variable size scan lists are implemented.
// TODO: Need float comparison with epsilon.
// TODO: Need double comparison with epsilon.
// wpi_assert(!sampleRateSet || GetSampleRate() == samplesPerSecond);
analogSampleRateSet = true;

View File

@@ -11,7 +11,7 @@
#include <memory>
#include "ChipObject.h"
#include "HAL/ChipObject.h"
#include "HAL/Ports.h"
#include "HAL/cpp/priority_mutex.h"
#include "HAL/handles/IndexedHandleResource.h"

View File

@@ -58,7 +58,24 @@ HAL_DigitalHandle HAL_InitializeDIOPort(HAL_PortHandle portHandle,
tDIO::tOutputEnable outputEnable = digitalSystem->readOutputEnable(status);
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
if (!getPortHandleSPIEnable(portHandle)) {
// if this flag is not set, we actually want DIO.
uint32_t bitToSet = 1u << remapSPIChannel(port->channel);
uint16_t specialFunctions = spiSystem->readEnableDIO(status);
// Set the field to enable SPI DIO
spiSystem->writeEnableDIO(specialFunctions | bitToSet, status);
if (input) {
outputEnable.SPIPort =
outputEnable.SPIPort & (~bitToSet); // clear the field for read
} else {
outputEnable.SPIPort =
outputEnable.SPIPort | bitToSet; // set the bits for write
}
}
} else if (port->channel < kNumDigitalHeaders) {
uint32_t bitToSet = 1u << port->channel;
if (input) {
outputEnable.Headers =
@@ -93,8 +110,26 @@ HAL_Bool HAL_CheckDIOChannel(int32_t channel) {
}
void HAL_FreeDIOPort(HAL_DigitalHandle dioPortHandle) {
auto port = digitalChannelHandles.Get(dioPortHandle, HAL_HandleEnum::DIO);
// no status, so no need to check for a proper free.
digitalChannelHandles.Free(dioPortHandle, HAL_HandleEnum::DIO);
if (port == nullptr) return;
int32_t status = 0;
std::lock_guard<priority_recursive_mutex> sync(digitalDIOMutex);
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
// Unset the SPI flag
int32_t bitToUnset = 1 << remapSPIChannel(port->channel);
uint16_t specialFunctions = spiSystem->readEnableDIO(&status);
spiSystem->writeEnableDIO(specialFunctions & ~bitToUnset, &status);
} else if (port->channel >= kNumDigitalHeaders) {
// Unset the MXP flag
uint32_t bitToUnset = 1u << remapMXPChannel(port->channel);
uint16_t specialFunctions =
digitalSystem->readEnableMXPSpecialFunction(&status);
digitalSystem->writeEnableMXPSpecialFunction(specialFunctions | bitToUnset,
&status);
}
}
/**
@@ -200,7 +235,9 @@ void HAL_SetDigitalPWMOutputChannel(HAL_DigitalPWMHandle pwmGenerator,
return;
}
int32_t id = *port;
if (channel >= kNumDigitalHeaders) { // If it is on the MXP
if (channel >= kNumDigitalHeaders &&
channel <
kNumDigitalHeaders + kNumDigitalMXPChannels) { // If it is on the MXP
/* Then to write as a digital PWM channel an offset is needed to write on
* the correct channel
*/
@@ -231,7 +268,15 @@ void HAL_SetDIO(HAL_DigitalHandle dioPortHandle, HAL_Bool value,
std::lock_guard<priority_recursive_mutex> sync(digitalDIOMutex);
tDIO::tDO currentDIO = digitalSystem->readDO(status);
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
if (value == 0) {
currentDIO.SPIPort =
currentDIO.SPIPort & ~(1u << remapSPIChannel(port->channel));
} else if (value == 1) {
currentDIO.SPIPort =
currentDIO.SPIPort | (1u << remapSPIChannel(port->channel));
}
} else if (port->channel < kNumDigitalHeaders) {
if (value == 0) {
currentDIO.Headers = currentDIO.Headers & ~(1u << port->channel);
} else if (value == 1) {
@@ -245,12 +290,6 @@ void HAL_SetDIO(HAL_DigitalHandle dioPortHandle, HAL_Bool value,
currentDIO.MXP =
currentDIO.MXP | (1u << remapMXPChannel(port->channel));
}
int32_t bitToSet = 1 << remapMXPChannel(port->channel);
uint16_t specialFunctions =
digitalSystem->readEnableMXPSpecialFunction(status);
digitalSystem->writeEnableMXPSpecialFunction(specialFunctions & ~bitToSet,
status);
}
digitalSystem->writeDO(currentDIO, status);
}
@@ -275,16 +314,11 @@ HAL_Bool HAL_GetDIO(HAL_DigitalHandle dioPortHandle, int32_t* status) {
// if it == 0, then return false
// else return true
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
return ((currentDIO.SPIPort >> remapSPIChannel(port->channel)) & 1) != 0;
} else if (port->channel < kNumDigitalHeaders) {
return ((currentDIO.Headers >> port->channel) & 1) != 0;
} else {
// Disable special functions
int32_t bitToSet = 1 << remapMXPChannel(port->channel);
uint16_t specialFunctions =
digitalSystem->readEnableMXPSpecialFunction(status);
digitalSystem->writeEnableMXPSpecialFunction(specialFunctions & ~bitToSet,
status);
return ((currentDIO.MXP >> remapMXPChannel(port->channel)) & 1) != 0;
}
}
@@ -309,7 +343,10 @@ HAL_Bool HAL_GetDIODirection(HAL_DigitalHandle dioPortHandle, int32_t* status) {
// if it == 0, then return false
// else return true
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
return ((currentOutputEnable.SPIPort >> remapSPIChannel(port->channel)) &
1) != 0;
} else if (port->channel < kNumDigitalHeaders) {
return ((currentOutputEnable.Headers >> port->channel) & 1) != 0;
} else {
return ((currentOutputEnable.MXP >> remapMXPChannel(port->channel)) & 1) !=
@@ -334,7 +371,9 @@ void HAL_Pulse(HAL_DigitalHandle dioPortHandle, double pulseLength,
}
tDIO::tPulse pulse;
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
pulse.SPIPort = 1u << remapSPIChannel(port->channel);
} else if (port->channel < kNumDigitalHeaders) {
pulse.Headers = 1u << port->channel;
} else {
pulse.MXP = 1u << remapMXPChannel(port->channel);
@@ -360,7 +399,9 @@ HAL_Bool HAL_IsPulsing(HAL_DigitalHandle dioPortHandle, int32_t* status) {
}
tDIO::tPulse pulseRegister = digitalSystem->readPulse(status);
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
return (pulseRegister.SPIPort & (1 << remapSPIChannel(port->channel))) != 0;
} else if (port->channel < kNumDigitalHeaders) {
return (pulseRegister.Headers & (1 << port->channel)) != 0;
} else {
return (pulseRegister.MXP & (1 << remapMXPChannel(port->channel))) != 0;
@@ -376,7 +417,8 @@ HAL_Bool HAL_IsAnyPulsing(int32_t* status) {
initializeDigital(status);
if (*status != 0) return false;
tDIO::tPulse pulseRegister = digitalSystem->readPulse(status);
return pulseRegister.Headers != 0 && pulseRegister.MXP != 0;
return pulseRegister.Headers != 0 && pulseRegister.MXP != 0 &&
pulseRegister.SPIPort != 0;
}
/**
@@ -396,7 +438,11 @@ void HAL_SetFilterSelect(HAL_DigitalHandle dioPortHandle, int32_t filterIndex,
}
std::lock_guard<priority_recursive_mutex> sync(digitalDIOMutex);
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
// Channels 10-15 are SPI channels, so subtract our MXP channels
digitalSystem->writeFilterSelectHdr(port->channel - kNumDigitalMXPChannels,
filterIndex, status);
} else if (port->channel < kNumDigitalHeaders) {
digitalSystem->writeFilterSelectHdr(port->channel, filterIndex, status);
} else {
digitalSystem->writeFilterSelectMXP(remapMXPChannel(port->channel),
@@ -420,7 +466,11 @@ int32_t HAL_GetFilterSelect(HAL_DigitalHandle dioPortHandle, int32_t* status) {
}
std::lock_guard<priority_recursive_mutex> sync(digitalDIOMutex);
if (port->channel < kNumDigitalHeaders) {
if (port->channel >= kNumDigitalHeaders + kNumDigitalMXPChannels) {
// Channels 10-15 are SPI channels, so subtract our MXP channels
return digitalSystem->readFilterSelectHdr(
port->channel - kNumDigitalMXPChannels, status);
} else if (port->channel < kNumDigitalHeaders) {
return digitalSystem->readFilterSelectHdr(port->channel, status);
} else {
return digitalSystem->readFilterSelectMXP(remapMXPChannel(port->channel),

View File

@@ -11,10 +11,10 @@
#include <mutex>
#include <thread>
#include "ChipObject.h"
#include "ConstantsInternal.h"
#include "FRC_NetworkCommunication/LoadOut.h"
#include "HAL/AnalogTrigger.h"
#include "HAL/ChipObject.h"
#include "HAL/HAL.h"
#include "HAL/Ports.h"
#include "HAL/cpp/priority_mutex.h"
@@ -27,6 +27,7 @@ priority_recursive_mutex digitalPwmMutex;
std::unique_ptr<tDIO> digitalSystem;
std::unique_ptr<tRelay> relaySystem;
std::unique_ptr<tPWM> pwmSystem;
std::unique_ptr<tSPI> spiSystem;
static std::atomic<bool> digitalSystemsInitialized{false};
static priority_mutex initializeMutex;
@@ -94,9 +95,18 @@ void initializeDigital(int32_t* status) {
}
}
// SPI setup
spiSystem.reset(tSPI::create(status));
digitalSystemsInitialized = true;
}
/**
* Map SPI channel numbers from their physical number (27 to 31) to their
* position in the bit field.
*/
int32_t remapSPIChannel(int32_t channel) { return channel - 26; }
/**
* Map DIO channel numbers from their physical number (10 to 26) to their
* position in the bit field.
@@ -130,7 +140,11 @@ bool remapDigitalSource(HAL_Handle digitalSourceHandle,
return true;
} else if (isHandleType(digitalSourceHandle, HAL_HandleEnum::DIO)) {
int32_t index = getHandleIndex(digitalSourceHandle);
if (index >= kNumDigitalHeaders) {
if (index > kNumDigitalHeaders + kNumDigitalMXPChannels) {
// channels 10-15, so need to add headers to remap index
channel = remapSPIChannel(index) + kNumDigitalHeaders;
module = 0;
} else if (index >= kNumDigitalHeaders) {
channel = remapMXPChannel(index);
module = 1;
} else {

View File

@@ -11,8 +11,8 @@
#include <memory>
#include "ChipObject.h"
#include "HAL/AnalogTrigger.h"
#include "HAL/ChipObject.h"
#include "HAL/Ports.h"
#include "HAL/Types.h"
#include "HAL/handles/DigitalHandleResource.h"
@@ -45,11 +45,11 @@ constexpr int32_t kExpectedLoopTiming = 40;
* scaling is implemented as an output squelch to get longer periods for old
* devices.
*/
constexpr float kDefaultPwmPeriod = 5.05;
constexpr double kDefaultPwmPeriod = 5.05;
/**
* kDefaultPwmCenter is the PWM range center in ms
*/
constexpr float kDefaultPwmCenter = 1.5;
constexpr double kDefaultPwmCenter = 1.5;
/**
* kDefaultPWMStepsDown is the number of PWM steps below the centerpoint
*/
@@ -62,6 +62,7 @@ extern priority_recursive_mutex digitalPwmMutex;
extern std::unique_ptr<tDIO> digitalSystem;
extern std::unique_ptr<tRelay> relaySystem;
extern std::unique_ptr<tPWM> pwmSystem;
extern std::unique_ptr<tSPI> spiSystem;
struct DigitalPort {
uint8_t channel;
@@ -82,6 +83,7 @@ void initializeDigital(int32_t* status);
bool remapDigitalSource(HAL_Handle digitalSourceHandle,
HAL_AnalogTriggerType analogTriggerType,
uint8_t& channel, uint8_t& module, bool& analogTrigger);
int32_t remapSPIChannel(int32_t channel);
int32_t remapMXPPWMChannel(int32_t channel);
int32_t remapMXPChannel(int32_t channel);
} // namespace hal

View File

@@ -7,9 +7,9 @@
#include "HAL/Encoder.h"
#include "ChipObject.h"
#include "EncoderInternal.h"
#include "FPGAEncoder.h"
#include "HAL/ChipObject.h"
#include "HAL/Counter.h"
#include "HAL/Errors.h"
#include "HAL/handles/LimitedClassedHandleResource.h"

View File

@@ -100,16 +100,16 @@ int32_t HAL_GetJoystickAxes(int32_t joystickNum, HAL_JoystickAxes* axes) {
joystickNum, reinterpret_cast<JoystickAxes_t*>(&axesInt),
HAL_kMaxJoystickAxes);
// copy integer values to float values
// copy integer values to double values
axes->count = axesInt.count;
// current scaling is -128 to 127, can easily be patched in the future by
// changing this function.
for (int32_t i = 0; i < axesInt.count; i++) {
int8_t value = axesInt.axes[i];
if (value < 0) {
axes->axes[i] = value / 128.0f;
axes->axes[i] = value / 128.0;
} else {
axes->axes[i] = value / 127.0f;
axes->axes[i] = value / 127.0;
}
}

View File

@@ -17,16 +17,18 @@
#include <mutex>
#include <thread>
#include "ChipObject.h"
#include "FRC_NetworkCommunication/CANSessionMux.h"
#include "FRC_NetworkCommunication/FRCComm.h"
#include "FRC_NetworkCommunication/LoadOut.h"
#include "HAL/ChipObject.h"
#include "HAL/Errors.h"
#include "HAL/cpp/priority_mutex.h"
#include "HAL/handles/HandlesInternal.h"
#include "ctre/ctre.h"
#include "visa/visa.h"
using namespace hal;
static std::unique_ptr<tGlobal> global;
static std::unique_ptr<tSysWatchdog> watchdog;

View File

@@ -9,8 +9,8 @@
#include <memory>
#include "ChipObject.h"
#include "DigitalInternal.h"
#include "HAL/ChipObject.h"
#include "HAL/Errors.h"
#include "HAL/cpp/make_unique.h"
#include "HAL/handles/HandlesInternal.h"

View File

@@ -14,13 +14,15 @@
#include <memory>
#include <mutex>
#include "ChipObject.h"
#include "HAL/ChipObject.h"
#include "HAL/HAL.h"
#include "HAL/cpp/make_unique.h"
#include "HAL/cpp/priority_mutex.h"
#include "HAL/handles/UnlimitedHandleResource.h"
#include "support/SafeThread.h"
using namespace hal;
static const int32_t kTimerInterruptNumber = 28;
static priority_mutex notifierInterruptMutex;

View File

@@ -30,5 +30,4 @@ int32_t HAL_GetNumPCMModules(void) { return kNumPCMModules; }
int32_t HAL_GetNumSolenoidChannels(void) { return kNumSolenoidChannels; }
int32_t HAL_GetNumPDPModules(void) { return kNumPDPModules; }
int32_t HAL_GetNumPDPChannels(void) { return kNumPDPChannels; }
int32_t HAL_GetNumCanTalons(void) { return kNumCanTalons; }
}

View File

@@ -9,7 +9,7 @@
#include <stdint.h>
#include "ChipObject.h"
#include "HAL/ChipObject.h"
namespace hal {
constexpr int32_t kNumAccumulators = tAccumulator::kNumSystems;
@@ -18,8 +18,11 @@ constexpr int32_t kNumAnalogInputs = 8;
constexpr int32_t kNumAnalogOutputs = tAO::kNumMXPRegisters;
constexpr int32_t kNumCounters = tCounter::kNumSystems;
constexpr int32_t kNumDigitalHeaders = 10;
constexpr int32_t kNumDigitalMXPChannels = 16;
constexpr int32_t kNumDigitalSPIPortChannels = 5;
constexpr int32_t kNumPWMHeaders = tPWM::kNumHdrRegisters;
constexpr int32_t kNumDigitalChannels = 26;
constexpr int32_t kNumDigitalChannels =
kNumDigitalHeaders + kNumDigitalMXPChannels + kNumDigitalSPIPortChannels;
constexpr int32_t kNumPWMChannels = tPWM::kNumMXPRegisters + kNumPWMHeaders;
constexpr int32_t kNumDigitalPWMOutputs =
tDIO::kNumPWMDutyCycleAElements + tDIO::kNumPWMDutyCycleBElements;
@@ -31,5 +34,4 @@ constexpr int32_t kNumPCMModules = 63;
constexpr int32_t kNumSolenoidChannels = 8;
constexpr int32_t kNumPDPModules = 63;
constexpr int32_t kNumPDPChannels = 16;
constexpr int32_t kNumCanTalons = 63;
} // namespace hal

View File

@@ -9,7 +9,9 @@
#include <memory>
#include "ChipObject.h"
#include "HAL/ChipObject.h"
using namespace hal;
static std::unique_ptr<tPower> power;

View File

@@ -15,6 +15,7 @@
#include "HAL/HAL.h"
#include "HAL/cpp/make_unique.h"
#include "HAL/cpp/priority_mutex.h"
#include "HAL/handles/HandlesInternal.h"
#include "spilib/spi-lib.h"
using namespace hal;
@@ -26,12 +27,11 @@ static int32_t m_spiCS3Handle = 0;
static int32_t m_spiMXPHandle = 0;
static priority_recursive_mutex spiOnboardMutex;
static priority_recursive_mutex spiMXPMutex;
static tSPI* spiSystem;
static HAL_DigitalHandle spiMXPDigitalHandle1 = HAL_kInvalidHandle;
static HAL_DigitalHandle spiMXPDigitalHandle2 = HAL_kInvalidHandle;
static HAL_DigitalHandle spiMXPDigitalHandle3 = HAL_kInvalidHandle;
static HAL_DigitalHandle spiMXPDigitalHandle4 = HAL_kInvalidHandle;
// MXP SPI does not count towards this
std::atomic<int32_t> spiPortCount{0};
static HAL_DigitalHandle digitalHandles[9]{HAL_kInvalidHandle};
/**
* Get the semaphore for a SPI port
@@ -73,56 +73,115 @@ struct SPIAccumulator {
};
std::unique_ptr<SPIAccumulator> spiAccumulators[5];
static void CommonSPIPortInit(int32_t* status) {
// All false cases will set
if (spiPortCount.fetch_add(1) == 0) {
// Have not been initialized yet
initializeDigital(status);
if (*status != 0) return;
// MISO
if ((digitalHandles[3] = HAL_InitializeDIOPort(createPortHandleForSPI(29),
false, status)) ==
HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 29 (MISO)\n");
return;
}
// MOSI
if ((digitalHandles[4] = HAL_InitializeDIOPort(createPortHandleForSPI(30),
false, status)) ==
HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 30 (MOSI)\n");
HAL_FreeDIOPort(digitalHandles[3]); // free the first port allocated
return;
}
}
}
static void CommonSPIPortFree() {
if (spiPortCount.fetch_sub(1) == 1) {
// Clean up SPI Handles
HAL_FreeDIOPort(digitalHandles[3]);
HAL_FreeDIOPort(digitalHandles[4]);
}
}
/*
* Initialize the spi port. Opens the port if necessary and saves the handle.
* If opening the MXP port, also sets up the channel functions appropriately
* @param port The number of the port to use. 0-3 for Onboard CS0-CS2, 4 for MXP
* @param port The number of the port to use. 0-3 for Onboard CS0-CS3, 4 for MXP
*/
void HAL_InitializeSPI(int32_t port, int32_t* status) {
if (spiSystem == nullptr) spiSystem = tSPI::create(status);
if (HAL_GetSPIHandle(port) != 0) return;
switch (port) {
case 0:
CommonSPIPortInit(status);
if (*status != 0) return;
// CS0 is not a DIO port, so nothing to allocate
HAL_SetSPIHandle(0, spilib_open("/dev/spidev0.0"));
break;
case 1:
CommonSPIPortInit(status);
if (*status != 0) return;
// CS1, Allocate
if ((digitalHandles[0] = HAL_InitializeDIOPort(
HAL_GetPort(26), false, status)) == HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 26 (CS1)\n");
CommonSPIPortFree();
return;
}
HAL_SetSPIHandle(1, spilib_open("/dev/spidev0.1"));
break;
case 2:
CommonSPIPortInit(status);
if (*status != 0) return;
// CS2, Allocate
if ((digitalHandles[1] = HAL_InitializeDIOPort(
HAL_GetPort(27), false, status)) == HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 27 (CS2)\n");
CommonSPIPortFree();
return;
}
HAL_SetSPIHandle(2, spilib_open("/dev/spidev0.2"));
break;
case 3:
CommonSPIPortInit(status);
if (*status != 0) return;
// CS3, Allocate
if ((digitalHandles[2] = HAL_InitializeDIOPort(
HAL_GetPort(28), false, status)) == HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 28 (CS3)\n");
CommonSPIPortFree();
return;
}
HAL_SetSPIHandle(3, spilib_open("/dev/spidev0.3"));
break;
case 4:
initializeDigital(status);
if (*status != 0) return;
if ((spiMXPDigitalHandle1 = HAL_InitializeDIOPort(
if ((digitalHandles[5] = HAL_InitializeDIOPort(
HAL_GetPort(14), false, status)) == HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 14\n");
return;
}
if ((spiMXPDigitalHandle2 = HAL_InitializeDIOPort(
if ((digitalHandles[6] = HAL_InitializeDIOPort(
HAL_GetPort(15), false, status)) == HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 15\n");
HAL_FreeDIOPort(spiMXPDigitalHandle1); // free the first port allocated
HAL_FreeDIOPort(digitalHandles[5]); // free the first port allocated
return;
}
if ((spiMXPDigitalHandle3 = HAL_InitializeDIOPort(
if ((digitalHandles[7] = HAL_InitializeDIOPort(
HAL_GetPort(16), false, status)) == HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 16\n");
HAL_FreeDIOPort(spiMXPDigitalHandle1); // free the first port allocated
HAL_FreeDIOPort(
spiMXPDigitalHandle2); // free the second port allocated
HAL_FreeDIOPort(digitalHandles[5]); // free the first port allocated
HAL_FreeDIOPort(digitalHandles[6]); // free the second port allocated
return;
}
if ((spiMXPDigitalHandle4 = HAL_InitializeDIOPort(
if ((digitalHandles[8] = HAL_InitializeDIOPort(
HAL_GetPort(17), false, status)) == HAL_kInvalidHandle) {
std::printf("Failed to allocate DIO 17\n");
HAL_FreeDIOPort(spiMXPDigitalHandle1); // free the first port allocated
HAL_FreeDIOPort(
spiMXPDigitalHandle2); // free the second port allocated
HAL_FreeDIOPort(spiMXPDigitalHandle3); // free the third port allocated
HAL_FreeDIOPort(digitalHandles[5]); // free the first port allocated
HAL_FreeDIOPort(digitalHandles[6]); // free the second port allocated
HAL_FreeDIOPort(digitalHandles[7]); // free the third port allocated
return;
}
digitalSystem->writeEnableMXPSpecialFunction(
@@ -205,11 +264,28 @@ void HAL_CloseSPI(int32_t port) {
}
spilib_close(HAL_GetSPIHandle(port));
HAL_SetSPIHandle(port, 0);
if (port == 4) {
HAL_FreeDIOPort(spiMXPDigitalHandle1);
HAL_FreeDIOPort(spiMXPDigitalHandle2);
HAL_FreeDIOPort(spiMXPDigitalHandle3);
HAL_FreeDIOPort(spiMXPDigitalHandle4);
if (port < 4) {
CommonSPIPortFree();
}
switch (port) {
// Case 0 does not need to do anything
case 1:
HAL_FreeDIOPort(digitalHandles[0]);
break;
case 2:
HAL_FreeDIOPort(digitalHandles[1]);
break;
case 3:
HAL_FreeDIOPort(digitalHandles[2]);
break;
case 4:
HAL_FreeDIOPort(digitalHandles[5]);
HAL_FreeDIOPort(digitalHandles[6]);
HAL_FreeDIOPort(digitalHandles[7]);
HAL_FreeDIOPort(digitalHandles[8]);
break;
default:
break;
}
return;
}

View File

@@ -7,8 +7,8 @@
#include "HAL/Solenoid.h"
#include "ChipObject.h"
#include "FRC_NetworkCommunication/LoadOut.h"
#include "HAL/ChipObject.h"
#include "HAL/Errors.h"
#include "HAL/Ports.h"
#include "HAL/handles/HandlesInternal.h"

View File

@@ -1,59 +0,0 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2016. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#include "HAL/Task.h"
#include <signal.h>
#ifndef OK
#define OK 0
#endif /* OK */
#ifndef ERROR
#define ERROR (-1)
#endif /* ERROR */
extern "C" {
STATUS HAL_VerifyTaskID(TASK task) {
if (task != nullptr && pthread_kill(*task, 0) == 0) {
return OK;
} else {
return ERROR;
}
}
STATUS HAL_SetTaskPriority(TASK task, int32_t priority) {
int32_t policy = 0;
struct sched_param param;
if (HAL_VerifyTaskID(task) == OK &&
pthread_getschedparam(*task, &policy, &param) == 0) {
param.sched_priority = priority;
if (pthread_setschedparam(*task, SCHED_FIFO, &param) == 0) {
return OK;
} else {
return ERROR;
}
} else {
return ERROR;
}
}
STATUS HAL_GetTaskPriority(TASK task, int32_t* priority) {
int32_t policy = 0;
struct sched_param param;
if (HAL_VerifyTaskID(task) == OK &&
pthread_getschedparam(*task, &policy, &param) == 0) {
*priority = param.sched_priority;
return OK;
} else {
return ERROR;
}
}
} // extern "C"

View File

@@ -21,6 +21,21 @@ HAL_PortHandle createPortHandle(uint8_t channel, uint8_t module) {
return handle;
}
HAL_PortHandle createPortHandleForSPI(uint8_t channel) {
// set last 8 bits, then shift to first 8 bits
HAL_PortHandle handle = static_cast<HAL_PortHandle>(HAL_HandleEnum::Port);
handle = handle << 16;
// set second set up bits to 1
int32_t temp = 1;
temp = (temp << 8) & 0xff00;
handle += temp;
// shift to last set of bits
handle = handle << 8;
// add channel to last 8 bits
handle += channel;
return handle;
}
HAL_Handle createHandle(int16_t index, HAL_HandleEnum handleType) {
if (index < 0) return HAL_kInvalidHandle;
uint8_t hType = static_cast<uint8_t>(handleType);

93
myRobot/build.gradle Normal file
View File

@@ -0,0 +1,93 @@
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'com.github.johnrengelman.shadow'
evaluationDependsOn(':wpilibj')
mainClassName = 'edu.wpi.first.wpilibj.RobotBase'
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
}
}
def wpilibj = project(':wpilibj')
dependencies {
compile wpilibj
compile files(wpilibj.sourceSets.test.output.classesDir)
compile 'edu.wpi.first.wpilib.networktables.java:NetworkTables:+:arm'
compile 'edu.wpi.first.wpilib.networktables.java:NetworkTables:+:arm'
compile 'edu.wpi.cscore.java:cscore:+:arm'
compile 'org.opencv:opencv-java:+'
}
def nativeDirectory = "$buildDir/output"
clean {
delete nativeDirectory
}
task copyRobotLibraries(type: Copy) {
description = 'Copies all native libraries to an easy to find folder'
group = 'WPILib'
destinationDir = file(nativeDirectory)
dependsOn shadowJar
dependsOn ':hal:build'
dependsOn ':wpilibj:build'
from (shadowJar) {
into '/'
}
project(':wpilibj').model {
binaries {
withType(SharedLibraryBinarySpec) { spec ->
from(spec.sharedLibraryFile) {
into '/'
}
}
}
}
project(':hal').model {
binaries {
withType(SharedLibraryBinarySpec) { spec ->
from(spec.sharedLibraryFile) {
into '/'
}
}
}
}
defineNetworkTablesProperties()
defineWpiUtilProperties()
defineCsCoreProperties()
from (file(netSharedLib)) {
into '/'
}
from (file(wpiUtilSharedLib)) {
into '/'
}
from (file(csLibArmLocation).path) {
include '**/*so.3.1'
include '**/libcscore.so'
include '**/libopencv_java310.so'
into '/'
}
}
build.dependsOn copyRobotLibraries
jar {
manifest { attributes 'Robot-Class': 'MyRobot' }
}
jar.dependsOn ':wpilibj:build'

View File

@@ -0,0 +1,54 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2016. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
import edu.wpi.first.wpilibj.IterativeRobot;
@SuppressWarnings("all")
public class MyRobot extends IterativeRobot {
/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
@Override
public void robotInit() {}
/**
* This function is run once each time the robot enters autonomous mode
*/
@Override
public void autonomousInit() {}
/**
* This function is called periodically during autonomous
*/
@Override
public void autonomousPeriodic() {}
/**
* This function is called once each time the robot enters tele-operated mode
*/
@Override
public void teleopInit() {}
/**
* This function is called periodically during operator control
*/
@Override
public void teleopPeriodic() {}
/**
* This function is called periodically during test mode
*/
@Override
public void testPeriodic() {}
/**
* This function is called periodically during all modes
*/
@Override
public void robotPeriodic() {}
}

111
myRobotCpp/build.gradle Normal file
View File

@@ -0,0 +1,111 @@
apply plugin: 'cpp'
defineNetworkTablesProperties()
defineWpiUtilProperties()
ext.shared = "${project(':wpilibc').projectDir.getAbsolutePath()}/shared"
ext.athena = "${project(':wpilibc').projectDir.getAbsolutePath()}/athena"
ext.hal = project(':hal').projectDir.getAbsolutePath()
model {
components {
myRobotcpp(NativeExecutableSpec) {
targetPlatform 'arm'
binaries.all {
tasks.withType(CppCompile) {
addNiLibraryLinks(linker, targetPlatform)
addNetworkTablesLibraryLinks(it, linker, targetPlatform)
addCsCoreLibraryLinks(it, linker, targetPlatform)
}
cppCompiler.args '-pthread', '-Wno-unused-variable'
linker.args '-pthread', '-Wno-unused-variable', '-Wl,-rpath,/opt/GenICam_v2_3/bin/Linux_armv7-a'
}
sources {
cpp {
source {
srcDir 'src'
include '**/*.cpp'
}
exportedHeaders {
srcDirs = ['include',
"${project.athena}/include", "${project.shared}/include",
"${project.hal}/include/HAL", netTablesInclude, wpiUtilInclude]
include '**/*.h'
}
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
lib project: ':hal', library: 'HALAthena', linkage: 'shared'
}
}
}
}
}
def nativeDirectory = "$buildDir/output"
clean {
delete nativeDirectory
}
task copyRobotLibraries(type: Copy) {
description = 'Copies all native libraries to an easy to find folder'
group = 'WPILib'
destinationDir = file(nativeDirectory)
dependsOn ':hal:build'
dependsOn ':wpilibc:build'
dependsOn check
project(':wpilibc').model {
binaries {
withType(SharedLibraryBinarySpec) { spec ->
from(spec.sharedLibraryFile) {
into '/'
}
}
}
}
project.model {
binaries {
withType(NativeExecutableBinarySpec) { spec ->
from(spec.executableFile) {
into '/'
}
}
}
}
project(':hal').model {
binaries {
withType(SharedLibraryBinarySpec) { spec ->
from(spec.sharedLibraryFile) {
into '/'
}
}
}
}
defineNetworkTablesProperties()
defineWpiUtilProperties()
defineCsCoreProperties()
from (file(netSharedLib)) {
into '/'
}
from (file(wpiUtilSharedLib)) {
into '/'
}
from (file(csLibArmLocation).path) {
include '**/*so.3.1'
include '**/libcscore.so'
include '**/libopencv_java310.so'
into '/'
}
}
build.dependsOn copyRobotLibraries

View File

@@ -0,0 +1,48 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2016. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#include "WPILib.h"
class MyRobot : public IterativeRobot {
/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
void RobotInit() override {}
/**
* This function is run once each time the robot enters autonomous mode
*/
void AutonomousInit() override {}
/**
* This function is called periodically during autonomous
*/
void AutonomousPeriodic() override {}
/**
* This function is called once each time the robot enters tele-operated mode
*/
void TeleopInit() override {}
/**
* This function is called periodically during operator control
*/
void TeleopPeriodic() override {}
/**
* This function is called periodically during test mode
*/
void TestPeriodic() override {}
/**
* This function is called periodically during all modes
*/
void RobotPeriodic() override {}
};
START_ROBOT_CLASS(MyRobot)

View File

@@ -1,9 +1,9 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __RoboRIO_FRC_ChipObject_Aliases_h__
#define __RoboRIO_FRC_ChipObject_Aliases_h__
#define nRoboRIO_FPGANamespace nFRC_2017_17_0_2
#endif // __RoboRIO_FRC_ChipObject_Aliases_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __RoboRIO_FRC_ChipObject_Aliases_h__
#define __RoboRIO_FRC_ChipObject_Aliases_h__
#define nRoboRIO_FPGANamespace nFRC_2017_17_0_2
#endif // __RoboRIO_FRC_ChipObject_Aliases_h__

View File

@@ -1,15 +1,15 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_nInterfaceGlobals_h__
#define __nFRC_2017_17_0_2_nInterfaceGlobals_h__
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
extern unsigned int g_currentTargetClass;
}
}
#endif // __nFRC_2017_17_0_2_nInterfaceGlobals_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_nInterfaceGlobals_h__
#define __nFRC_2017_17_0_2_nInterfaceGlobals_h__
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
extern unsigned int g_currentTargetClass;
}
}
#endif // __nFRC_2017_17_0_2_nInterfaceGlobals_h__

View File

@@ -1,143 +1,144 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_AI_h__
#define __nFRC_2017_17_0_2_AI_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAI
{
public:
tAI(){}
virtual ~tAI(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAI* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned ScanSize : 3;
unsigned ConvertRate : 26;
#else
unsigned ConvertRate : 26;
unsigned ScanSize : 3;
#endif
};
struct{
unsigned value : 29;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned Channel : 3;
unsigned Averaged : 1;
#else
unsigned Averaged : 1;
unsigned Channel : 3;
#endif
};
struct{
unsigned value : 4;
};
} tReadSelect;
typedef enum
{
} tOutput_IfaceConstants;
virtual signed int readOutput(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_ScanSize(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_ConvertRate(unsigned int value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_ScanSize(tRioStatusCode *status) = 0;
virtual unsigned int readConfig_ConvertRate(tRioStatusCode *status) = 0;
typedef enum
{
} tLoopTiming_IfaceConstants;
virtual unsigned int readLoopTiming(tRioStatusCode *status) = 0;
typedef enum
{
kNumOversampleBitsElements = 8,
} tOversampleBits_IfaceConstants;
virtual void writeOversampleBits(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readOversampleBits(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumAverageBitsElements = 8,
} tAverageBits_IfaceConstants;
virtual void writeAverageBits(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readAverageBits(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumScanListElements = 8,
} tScanList_IfaceConstants;
virtual void writeScanList(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readScanList(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tLatchOutput_IfaceConstants;
virtual void strobeLatchOutput(tRioStatusCode *status) = 0;
typedef enum
{
} tReadSelect_IfaceConstants;
virtual void writeReadSelect(tReadSelect value, tRioStatusCode *status) = 0;
virtual void writeReadSelect_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeReadSelect_Averaged(bool value, tRioStatusCode *status) = 0;
virtual tReadSelect readReadSelect(tRioStatusCode *status) = 0;
virtual unsigned char readReadSelect_Channel(tRioStatusCode *status) = 0;
virtual bool readReadSelect_Averaged(tRioStatusCode *status) = 0;
private:
tAI(const tAI&);
void operator=(const tAI&);
};
}
}
#endif // __nFRC_2017_17_0_2_AI_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_AI_h__
#define __nFRC_2017_17_0_2_AI_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAI
{
public:
tAI(){}
virtual ~tAI(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAI* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned ScanSize : 3;
unsigned ConvertRate : 26;
#else
unsigned ConvertRate : 26;
unsigned ScanSize : 3;
#endif
};
struct{
unsigned value : 29;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned Channel : 3;
unsigned Averaged : 1;
#else
unsigned Averaged : 1;
unsigned Channel : 3;
#endif
};
struct{
unsigned value : 4;
};
} tReadSelect;
typedef enum
{
} tOutput_IfaceConstants;
virtual signed int readOutput(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_ScanSize(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_ConvertRate(unsigned int value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_ScanSize(tRioStatusCode *status) = 0;
virtual unsigned int readConfig_ConvertRate(tRioStatusCode *status) = 0;
typedef enum
{
} tLoopTiming_IfaceConstants;
virtual unsigned int readLoopTiming(tRioStatusCode *status) = 0;
typedef enum
{
kNumOversampleBitsElements = 8,
} tOversampleBits_IfaceConstants;
virtual void writeOversampleBits(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readOversampleBits(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumAverageBitsElements = 8,
} tAverageBits_IfaceConstants;
virtual void writeAverageBits(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readAverageBits(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumScanListElements = 8,
} tScanList_IfaceConstants;
virtual void writeScanList(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readScanList(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tLatchOutput_IfaceConstants;
virtual void strobeLatchOutput(tRioStatusCode *status) = 0;
typedef enum
{
} tReadSelect_IfaceConstants;
virtual void writeReadSelect(tReadSelect value, tRioStatusCode *status) = 0;
virtual void writeReadSelect_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeReadSelect_Averaged(bool value, tRioStatusCode *status) = 0;
virtual tReadSelect readReadSelect(tRioStatusCode *status) = 0;
virtual unsigned char readReadSelect_Channel(tRioStatusCode *status) = 0;
virtual bool readReadSelect_Averaged(tRioStatusCode *status) = 0;
private:
tAI(const tAI&);
void operator=(const tAI&);
};
}
}
#endif // __nFRC_2017_17_0_2_AI_h__

View File

@@ -1,50 +1,51 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_AO_h__
#define __nFRC_2017_17_0_2_AO_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAO
{
public:
tAO(){}
virtual ~tAO(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAO* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
kNumMXPRegisters = 2,
} tMXP_IfaceConstants;
virtual void writeMXP(unsigned char reg_index, unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readMXP(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tAO(const tAO&);
void operator=(const tAO&);
};
}
}
#endif // __nFRC_2017_17_0_2_AO_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_AO_h__
#define __nFRC_2017_17_0_2_AO_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAO
{
public:
tAO(){}
virtual ~tAO(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAO* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
kNumMXPRegisters = 2,
} tMXP_IfaceConstants;
virtual void writeMXP(unsigned char reg_index, unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readMXP(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tAO(const tAO&);
void operator=(const tAO&);
};
}
}
#endif // __nFRC_2017_17_0_2_AO_h__

View File

@@ -1,102 +1,103 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Accel_h__
#define __nFRC_2017_17_0_2_Accel_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAccel
{
public:
tAccel(){}
virtual ~tAccel(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAccel* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
} tSTAT_IfaceConstants;
virtual unsigned char readSTAT(tRioStatusCode *status) = 0;
typedef enum
{
} tCNTR_IfaceConstants;
virtual void writeCNTR(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readCNTR(tRioStatusCode *status) = 0;
typedef enum
{
} tDATO_IfaceConstants;
virtual void writeDATO(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readDATO(tRioStatusCode *status) = 0;
typedef enum
{
} tCNFG_IfaceConstants;
virtual void writeCNFG(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readCNFG(tRioStatusCode *status) = 0;
typedef enum
{
} tCNTL_IfaceConstants;
virtual void writeCNTL(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readCNTL(tRioStatusCode *status) = 0;
typedef enum
{
} tDATI_IfaceConstants;
virtual unsigned char readDATI(tRioStatusCode *status) = 0;
typedef enum
{
} tGO_IfaceConstants;
virtual void strobeGO(tRioStatusCode *status) = 0;
typedef enum
{
} tADDR_IfaceConstants;
virtual void writeADDR(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readADDR(tRioStatusCode *status) = 0;
private:
tAccel(const tAccel&);
void operator=(const tAccel&);
};
}
}
#endif // __nFRC_2017_17_0_2_Accel_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Accel_h__
#define __nFRC_2017_17_0_2_Accel_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAccel
{
public:
tAccel(){}
virtual ~tAccel(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAccel* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
} tSTAT_IfaceConstants;
virtual unsigned char readSTAT(tRioStatusCode *status) = 0;
typedef enum
{
} tCNTR_IfaceConstants;
virtual void writeCNTR(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readCNTR(tRioStatusCode *status) = 0;
typedef enum
{
} tDATO_IfaceConstants;
virtual void writeDATO(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readDATO(tRioStatusCode *status) = 0;
typedef enum
{
} tCNFG_IfaceConstants;
virtual void writeCNFG(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readCNFG(tRioStatusCode *status) = 0;
typedef enum
{
} tCNTL_IfaceConstants;
virtual void writeCNTL(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readCNTL(tRioStatusCode *status) = 0;
typedef enum
{
} tDATI_IfaceConstants;
virtual unsigned char readDATI(tRioStatusCode *status) = 0;
typedef enum
{
} tGO_IfaceConstants;
virtual void strobeGO(tRioStatusCode *status) = 0;
typedef enum
{
} tADDR_IfaceConstants;
virtual void writeADDR(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readADDR(tRioStatusCode *status) = 0;
private:
tAccel(const tAccel&);
void operator=(const tAccel&);
};
}
}
#endif // __nFRC_2017_17_0_2_Accel_h__

View File

@@ -1,87 +1,88 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Accumulator_h__
#define __nFRC_2017_17_0_2_Accumulator_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAccumulator
{
public:
tAccumulator(){}
virtual ~tAccumulator(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAccumulator* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 2,
} tIfaceConstants;
typedef
union{
struct{
signed long long Value;
unsigned Count : 32;
};
struct{
unsigned value : 32;
unsigned value2 : 32;
unsigned value3 : 32;
};
} tOutput;
typedef enum
{
} tOutput_IfaceConstants;
virtual tOutput readOutput(tRioStatusCode *status) = 0;
virtual signed long long readOutput_Value(tRioStatusCode *status) = 0;
virtual unsigned int readOutput_Count(tRioStatusCode *status) = 0;
typedef enum
{
} tCenter_IfaceConstants;
virtual void writeCenter(signed int value, tRioStatusCode *status) = 0;
virtual signed int readCenter(tRioStatusCode *status) = 0;
typedef enum
{
} tDeadband_IfaceConstants;
virtual void writeDeadband(signed int value, tRioStatusCode *status) = 0;
virtual signed int readDeadband(tRioStatusCode *status) = 0;
typedef enum
{
} tReset_IfaceConstants;
virtual void strobeReset(tRioStatusCode *status) = 0;
private:
tAccumulator(const tAccumulator&);
void operator=(const tAccumulator&);
};
}
}
#endif // __nFRC_2017_17_0_2_Accumulator_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Accumulator_h__
#define __nFRC_2017_17_0_2_Accumulator_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAccumulator
{
public:
tAccumulator(){}
virtual ~tAccumulator(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAccumulator* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 2,
} tIfaceConstants;
typedef
union{
struct{
signed long long Value;
unsigned Count : 32;
};
struct{
unsigned value : 32;
unsigned value2 : 32;
unsigned value3 : 32;
};
} tOutput;
typedef enum
{
} tOutput_IfaceConstants;
virtual tOutput readOutput(tRioStatusCode *status) = 0;
virtual signed long long readOutput_Value(tRioStatusCode *status) = 0;
virtual unsigned int readOutput_Count(tRioStatusCode *status) = 0;
typedef enum
{
} tCenter_IfaceConstants;
virtual void writeCenter(signed int value, tRioStatusCode *status) = 0;
virtual signed int readCenter(tRioStatusCode *status) = 0;
typedef enum
{
} tDeadband_IfaceConstants;
virtual void writeDeadband(signed int value, tRioStatusCode *status) = 0;
virtual signed int readDeadband(tRioStatusCode *status) = 0;
typedef enum
{
} tReset_IfaceConstants;
virtual void strobeReset(tRioStatusCode *status) = 0;
private:
tAccumulator(const tAccumulator&);
void operator=(const tAccumulator&);
};
}
}
#endif // __nFRC_2017_17_0_2_Accumulator_h__

View File

@@ -1,57 +1,58 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Alarm_h__
#define __nFRC_2017_17_0_2_Alarm_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAlarm
{
public:
tAlarm(){}
virtual ~tAlarm(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAlarm* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
} tEnable_IfaceConstants;
virtual void writeEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tTriggerTime_IfaceConstants;
virtual void writeTriggerTime(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readTriggerTime(tRioStatusCode *status) = 0;
private:
tAlarm(const tAlarm&);
void operator=(const tAlarm&);
};
}
}
#endif // __nFRC_2017_17_0_2_Alarm_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Alarm_h__
#define __nFRC_2017_17_0_2_Alarm_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAlarm
{
public:
tAlarm(){}
virtual ~tAlarm(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAlarm* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
} tEnable_IfaceConstants;
virtual void writeEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tTriggerTime_IfaceConstants;
virtual void writeTriggerTime(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readTriggerTime(tRioStatusCode *status) = 0;
private:
tAlarm(const tAlarm&);
void operator=(const tAlarm&);
};
}
}
#endif // __nFRC_2017_17_0_2_Alarm_h__

View File

@@ -1,129 +1,130 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_AnalogTrigger_h__
#define __nFRC_2017_17_0_2_AnalogTrigger_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAnalogTrigger
{
public:
tAnalogTrigger(){}
virtual ~tAnalogTrigger(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAnalogTrigger* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned InHysteresis : 1;
unsigned OverLimit : 1;
unsigned Rising : 1;
unsigned Falling : 1;
#else
unsigned Falling : 1;
unsigned Rising : 1;
unsigned OverLimit : 1;
unsigned InHysteresis : 1;
#endif
};
struct{
unsigned value : 4;
};
} tOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned Channel : 3;
unsigned Averaged : 1;
unsigned Filter : 1;
unsigned FloatingRollover : 1;
signed RolloverLimit : 8;
#else
signed RolloverLimit : 8;
unsigned FloatingRollover : 1;
unsigned Filter : 1;
unsigned Averaged : 1;
unsigned Channel : 3;
#endif
};
struct{
unsigned value : 14;
};
} tSourceSelect;
typedef enum
{
} tSourceSelect_IfaceConstants;
virtual void writeSourceSelect(tSourceSelect value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_Averaged(bool value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_Filter(bool value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_FloatingRollover(bool value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_RolloverLimit(signed short value, tRioStatusCode *status) = 0;
virtual tSourceSelect readSourceSelect(tRioStatusCode *status) = 0;
virtual unsigned char readSourceSelect_Channel(tRioStatusCode *status) = 0;
virtual bool readSourceSelect_Averaged(tRioStatusCode *status) = 0;
virtual bool readSourceSelect_Filter(tRioStatusCode *status) = 0;
virtual bool readSourceSelect_FloatingRollover(tRioStatusCode *status) = 0;
virtual signed short readSourceSelect_RolloverLimit(tRioStatusCode *status) = 0;
typedef enum
{
} tUpperLimit_IfaceConstants;
virtual void writeUpperLimit(signed int value, tRioStatusCode *status) = 0;
virtual signed int readUpperLimit(tRioStatusCode *status) = 0;
typedef enum
{
} tLowerLimit_IfaceConstants;
virtual void writeLowerLimit(signed int value, tRioStatusCode *status) = 0;
virtual signed int readLowerLimit(tRioStatusCode *status) = 0;
typedef enum
{
kNumOutputElements = 8,
} tOutput_IfaceConstants;
virtual tOutput readOutput(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_InHysteresis(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_OverLimit(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_Rising(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_Falling(unsigned char bitfield_index, tRioStatusCode *status) = 0;
private:
tAnalogTrigger(const tAnalogTrigger&);
void operator=(const tAnalogTrigger&);
};
}
}
#endif // __nFRC_2017_17_0_2_AnalogTrigger_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_AnalogTrigger_h__
#define __nFRC_2017_17_0_2_AnalogTrigger_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tAnalogTrigger
{
public:
tAnalogTrigger(){}
virtual ~tAnalogTrigger(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tAnalogTrigger* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned InHysteresis : 1;
unsigned OverLimit : 1;
unsigned Rising : 1;
unsigned Falling : 1;
#else
unsigned Falling : 1;
unsigned Rising : 1;
unsigned OverLimit : 1;
unsigned InHysteresis : 1;
#endif
};
struct{
unsigned value : 4;
};
} tOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned Channel : 3;
unsigned Averaged : 1;
unsigned Filter : 1;
unsigned FloatingRollover : 1;
signed RolloverLimit : 8;
#else
signed RolloverLimit : 8;
unsigned FloatingRollover : 1;
unsigned Filter : 1;
unsigned Averaged : 1;
unsigned Channel : 3;
#endif
};
struct{
unsigned value : 14;
};
} tSourceSelect;
typedef enum
{
} tSourceSelect_IfaceConstants;
virtual void writeSourceSelect(tSourceSelect value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_Averaged(bool value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_Filter(bool value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_FloatingRollover(bool value, tRioStatusCode *status) = 0;
virtual void writeSourceSelect_RolloverLimit(signed short value, tRioStatusCode *status) = 0;
virtual tSourceSelect readSourceSelect(tRioStatusCode *status) = 0;
virtual unsigned char readSourceSelect_Channel(tRioStatusCode *status) = 0;
virtual bool readSourceSelect_Averaged(tRioStatusCode *status) = 0;
virtual bool readSourceSelect_Filter(tRioStatusCode *status) = 0;
virtual bool readSourceSelect_FloatingRollover(tRioStatusCode *status) = 0;
virtual signed short readSourceSelect_RolloverLimit(tRioStatusCode *status) = 0;
typedef enum
{
} tUpperLimit_IfaceConstants;
virtual void writeUpperLimit(signed int value, tRioStatusCode *status) = 0;
virtual signed int readUpperLimit(tRioStatusCode *status) = 0;
typedef enum
{
} tLowerLimit_IfaceConstants;
virtual void writeLowerLimit(signed int value, tRioStatusCode *status) = 0;
virtual signed int readLowerLimit(tRioStatusCode *status) = 0;
typedef enum
{
kNumOutputElements = 8,
} tOutput_IfaceConstants;
virtual tOutput readOutput(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_InHysteresis(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_OverLimit(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_Rising(unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readOutput_Falling(unsigned char bitfield_index, tRioStatusCode *status) = 0;
private:
tAnalogTrigger(const tAnalogTrigger&);
void operator=(const tAnalogTrigger&);
};
}
}
#endif // __nFRC_2017_17_0_2_AnalogTrigger_h__

View File

@@ -1,90 +1,91 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_BIST_h__
#define __nFRC_2017_17_0_2_BIST_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tBIST
{
public:
tBIST(){}
virtual ~tBIST(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tBIST* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
} tDO0SquareTicks_IfaceConstants;
virtual void writeDO0SquareTicks(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readDO0SquareTicks(tRioStatusCode *status) = 0;
typedef enum
{
} tEnable_IfaceConstants;
virtual void writeEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tDO1SquareEnable_IfaceConstants;
virtual void writeDO1SquareEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readDO1SquareEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tDO0SquareEnable_IfaceConstants;
virtual void writeDO0SquareEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readDO0SquareEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tDO1SquareTicks_IfaceConstants;
virtual void writeDO1SquareTicks(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readDO1SquareTicks(tRioStatusCode *status) = 0;
typedef enum
{
kNumDORegisters = 2,
} tDO_IfaceConstants;
virtual void writeDO(unsigned char reg_index, bool value, tRioStatusCode *status) = 0;
virtual bool readDO(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tBIST(const tBIST&);
void operator=(const tBIST&);
};
}
}
#endif // __nFRC_2017_17_0_2_BIST_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_BIST_h__
#define __nFRC_2017_17_0_2_BIST_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tBIST
{
public:
tBIST(){}
virtual ~tBIST(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tBIST* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef enum
{
} tDO0SquareTicks_IfaceConstants;
virtual void writeDO0SquareTicks(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readDO0SquareTicks(tRioStatusCode *status) = 0;
typedef enum
{
} tEnable_IfaceConstants;
virtual void writeEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tDO1SquareEnable_IfaceConstants;
virtual void writeDO1SquareEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readDO1SquareEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tDO0SquareEnable_IfaceConstants;
virtual void writeDO0SquareEnable(bool value, tRioStatusCode *status) = 0;
virtual bool readDO0SquareEnable(tRioStatusCode *status) = 0;
typedef enum
{
} tDO1SquareTicks_IfaceConstants;
virtual void writeDO1SquareTicks(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readDO1SquareTicks(tRioStatusCode *status) = 0;
typedef enum
{
kNumDORegisters = 2,
} tDO_IfaceConstants;
virtual void writeDO(unsigned char reg_index, bool value, tRioStatusCode *status) = 0;
virtual bool readDO(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tBIST(const tBIST&);
void operator=(const tBIST&);
};
}
}
#endif // __nFRC_2017_17_0_2_BIST_h__

View File

@@ -1,219 +1,220 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Counter_h__
#define __nFRC_2017_17_0_2_Counter_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tCounter
{
public:
tCounter(){}
virtual ~tCounter(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tCounter* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Direction : 1;
signed Value : 31;
#else
signed Value : 31;
unsigned Direction : 1;
#endif
};
struct{
unsigned value : 32;
};
} tOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned UpSource_Channel : 4;
unsigned UpSource_Module : 1;
unsigned UpSource_AnalogTrigger : 1;
unsigned DownSource_Channel : 4;
unsigned DownSource_Module : 1;
unsigned DownSource_AnalogTrigger : 1;
unsigned IndexSource_Channel : 4;
unsigned IndexSource_Module : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexEdgeSensitive : 1;
unsigned UpRisingEdge : 1;
unsigned UpFallingEdge : 1;
unsigned DownRisingEdge : 1;
unsigned DownFallingEdge : 1;
unsigned Mode : 2;
unsigned PulseLengthThreshold : 6;
#else
unsigned PulseLengthThreshold : 6;
unsigned Mode : 2;
unsigned DownFallingEdge : 1;
unsigned DownRisingEdge : 1;
unsigned UpFallingEdge : 1;
unsigned UpRisingEdge : 1;
unsigned IndexEdgeSensitive : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexSource_Module : 1;
unsigned IndexSource_Channel : 4;
unsigned DownSource_AnalogTrigger : 1;
unsigned DownSource_Module : 1;
unsigned DownSource_Channel : 4;
unsigned UpSource_AnalogTrigger : 1;
unsigned UpSource_Module : 1;
unsigned UpSource_Channel : 4;
#endif
};
struct{
unsigned value : 32;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned Period : 23;
signed Count : 8;
unsigned Stalled : 1;
#else
unsigned Stalled : 1;
signed Count : 8;
unsigned Period : 23;
#endif
};
struct{
unsigned value : 32;
};
} tTimerOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned StallPeriod : 24;
unsigned AverageSize : 7;
unsigned UpdateWhenEmpty : 1;
#else
unsigned UpdateWhenEmpty : 1;
unsigned AverageSize : 7;
unsigned StallPeriod : 24;
#endif
};
struct{
unsigned value : 32;
};
} tTimerConfig;
typedef enum
{
} tOutput_IfaceConstants;
virtual tOutput readOutput(tRioStatusCode *status) = 0;
virtual bool readOutput_Direction(tRioStatusCode *status) = 0;
virtual signed int readOutput_Value(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexActiveHigh(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexEdgeSensitive(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpRisingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpFallingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownRisingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownFallingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Mode(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_PulseLengthThreshold(unsigned short value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_UpSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_UpSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_UpSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_DownSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_DownSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_DownSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexActiveHigh(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexEdgeSensitive(tRioStatusCode *status) = 0;
virtual bool readConfig_UpRisingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_UpFallingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_DownRisingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_DownFallingEdge(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_Mode(tRioStatusCode *status) = 0;
virtual unsigned short readConfig_PulseLengthThreshold(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerOutput_IfaceConstants;
virtual tTimerOutput readTimerOutput(tRioStatusCode *status) = 0;
virtual unsigned int readTimerOutput_Period(tRioStatusCode *status) = 0;
virtual signed char readTimerOutput_Count(tRioStatusCode *status) = 0;
virtual bool readTimerOutput_Stalled(tRioStatusCode *status) = 0;
typedef enum
{
} tReset_IfaceConstants;
virtual void strobeReset(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerConfig_IfaceConstants;
virtual void writeTimerConfig(tTimerConfig value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_StallPeriod(unsigned int value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_AverageSize(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_UpdateWhenEmpty(bool value, tRioStatusCode *status) = 0;
virtual tTimerConfig readTimerConfig(tRioStatusCode *status) = 0;
virtual unsigned int readTimerConfig_StallPeriod(tRioStatusCode *status) = 0;
virtual unsigned char readTimerConfig_AverageSize(tRioStatusCode *status) = 0;
virtual bool readTimerConfig_UpdateWhenEmpty(tRioStatusCode *status) = 0;
private:
tCounter(const tCounter&);
void operator=(const tCounter&);
};
}
}
#endif // __nFRC_2017_17_0_2_Counter_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Counter_h__
#define __nFRC_2017_17_0_2_Counter_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tCounter
{
public:
tCounter(){}
virtual ~tCounter(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tCounter* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Direction : 1;
signed Value : 31;
#else
signed Value : 31;
unsigned Direction : 1;
#endif
};
struct{
unsigned value : 32;
};
} tOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned UpSource_Channel : 4;
unsigned UpSource_Module : 1;
unsigned UpSource_AnalogTrigger : 1;
unsigned DownSource_Channel : 4;
unsigned DownSource_Module : 1;
unsigned DownSource_AnalogTrigger : 1;
unsigned IndexSource_Channel : 4;
unsigned IndexSource_Module : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexEdgeSensitive : 1;
unsigned UpRisingEdge : 1;
unsigned UpFallingEdge : 1;
unsigned DownRisingEdge : 1;
unsigned DownFallingEdge : 1;
unsigned Mode : 2;
unsigned PulseLengthThreshold : 6;
#else
unsigned PulseLengthThreshold : 6;
unsigned Mode : 2;
unsigned DownFallingEdge : 1;
unsigned DownRisingEdge : 1;
unsigned UpFallingEdge : 1;
unsigned UpRisingEdge : 1;
unsigned IndexEdgeSensitive : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexSource_Module : 1;
unsigned IndexSource_Channel : 4;
unsigned DownSource_AnalogTrigger : 1;
unsigned DownSource_Module : 1;
unsigned DownSource_Channel : 4;
unsigned UpSource_AnalogTrigger : 1;
unsigned UpSource_Module : 1;
unsigned UpSource_Channel : 4;
#endif
};
struct{
unsigned value : 32;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned Period : 23;
signed Count : 8;
unsigned Stalled : 1;
#else
unsigned Stalled : 1;
signed Count : 8;
unsigned Period : 23;
#endif
};
struct{
unsigned value : 32;
};
} tTimerOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned StallPeriod : 24;
unsigned AverageSize : 7;
unsigned UpdateWhenEmpty : 1;
#else
unsigned UpdateWhenEmpty : 1;
unsigned AverageSize : 7;
unsigned StallPeriod : 24;
#endif
};
struct{
unsigned value : 32;
};
} tTimerConfig;
typedef enum
{
} tOutput_IfaceConstants;
virtual tOutput readOutput(tRioStatusCode *status) = 0;
virtual bool readOutput_Direction(tRioStatusCode *status) = 0;
virtual signed int readOutput_Value(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexActiveHigh(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexEdgeSensitive(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpRisingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_UpFallingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownRisingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_DownFallingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Mode(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_PulseLengthThreshold(unsigned short value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_UpSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_UpSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_UpSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_DownSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_DownSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_DownSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexActiveHigh(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexEdgeSensitive(tRioStatusCode *status) = 0;
virtual bool readConfig_UpRisingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_UpFallingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_DownRisingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_DownFallingEdge(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_Mode(tRioStatusCode *status) = 0;
virtual unsigned short readConfig_PulseLengthThreshold(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerOutput_IfaceConstants;
virtual tTimerOutput readTimerOutput(tRioStatusCode *status) = 0;
virtual unsigned int readTimerOutput_Period(tRioStatusCode *status) = 0;
virtual signed char readTimerOutput_Count(tRioStatusCode *status) = 0;
virtual bool readTimerOutput_Stalled(tRioStatusCode *status) = 0;
typedef enum
{
} tReset_IfaceConstants;
virtual void strobeReset(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerConfig_IfaceConstants;
virtual void writeTimerConfig(tTimerConfig value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_StallPeriod(unsigned int value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_AverageSize(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_UpdateWhenEmpty(bool value, tRioStatusCode *status) = 0;
virtual tTimerConfig readTimerConfig(tRioStatusCode *status) = 0;
virtual unsigned int readTimerConfig_StallPeriod(tRioStatusCode *status) = 0;
virtual unsigned char readTimerConfig_AverageSize(tRioStatusCode *status) = 0;
virtual bool readTimerConfig_UpdateWhenEmpty(tRioStatusCode *status) = 0;
private:
tCounter(const tCounter&);
void operator=(const tCounter&);
};
}
}
#endif // __nFRC_2017_17_0_2_Counter_h__

View File

@@ -1,263 +1,264 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_DIO_h__
#define __nFRC_2017_17_0_2_DIO_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tDIO
{
public:
tDIO(){}
virtual ~tDIO(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tDIO* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tDO;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tOutputEnable;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tPulse;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tDI;
typedef enum
{
} tDO_IfaceConstants;
virtual void writeDO(tDO value, tRioStatusCode *status) = 0;
virtual void writeDO_Headers(unsigned short value, tRioStatusCode *status) = 0;
virtual void writeDO_SPIPort(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeDO_Reserved(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeDO_MXP(unsigned short value, tRioStatusCode *status) = 0;
virtual tDO readDO(tRioStatusCode *status) = 0;
virtual unsigned short readDO_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readDO_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readDO_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readDO_MXP(tRioStatusCode *status) = 0;
typedef enum
{
kNumPWMDutyCycleAElements = 4,
} tPWMDutyCycleA_IfaceConstants;
virtual void writePWMDutyCycleA(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPWMDutyCycleA(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumPWMDutyCycleBElements = 2,
} tPWMDutyCycleB_IfaceConstants;
virtual void writePWMDutyCycleB(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPWMDutyCycleB(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterSelectHdrElements = 16,
} tFilterSelectHdr_IfaceConstants;
virtual void writeFilterSelectHdr(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readFilterSelectHdr(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tOutputEnable_IfaceConstants;
virtual void writeOutputEnable(tOutputEnable value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_Headers(unsigned short value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_SPIPort(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_Reserved(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_MXP(unsigned short value, tRioStatusCode *status) = 0;
virtual tOutputEnable readOutputEnable(tRioStatusCode *status) = 0;
virtual unsigned short readOutputEnable_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readOutputEnable_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readOutputEnable_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readOutputEnable_MXP(tRioStatusCode *status) = 0;
typedef enum
{
kNumPWMOutputSelectElements = 6,
} tPWMOutputSelect_IfaceConstants;
virtual void writePWMOutputSelect(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPWMOutputSelect(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tPulse_IfaceConstants;
virtual void writePulse(tPulse value, tRioStatusCode *status) = 0;
virtual void writePulse_Headers(unsigned short value, tRioStatusCode *status) = 0;
virtual void writePulse_SPIPort(unsigned char value, tRioStatusCode *status) = 0;
virtual void writePulse_Reserved(unsigned char value, tRioStatusCode *status) = 0;
virtual void writePulse_MXP(unsigned short value, tRioStatusCode *status) = 0;
virtual tPulse readPulse(tRioStatusCode *status) = 0;
virtual unsigned short readPulse_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readPulse_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readPulse_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readPulse_MXP(tRioStatusCode *status) = 0;
typedef enum
{
} tDI_IfaceConstants;
virtual tDI readDI(tRioStatusCode *status) = 0;
virtual unsigned short readDI_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readDI_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readDI_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readDI_MXP(tRioStatusCode *status) = 0;
typedef enum
{
} tEnableMXPSpecialFunction_IfaceConstants;
virtual void writeEnableMXPSpecialFunction(unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readEnableMXPSpecialFunction(tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterSelectMXPElements = 16,
} tFilterSelectMXP_IfaceConstants;
virtual void writeFilterSelectMXP(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readFilterSelectMXP(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tPulseLength_IfaceConstants;
virtual void writePulseLength(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPulseLength(tRioStatusCode *status) = 0;
typedef enum
{
} tPWMPeriodPower_IfaceConstants;
virtual void writePWMPeriodPower(unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readPWMPeriodPower(tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterPeriodMXPRegisters = 3,
} tFilterPeriodMXP_IfaceConstants;
virtual void writeFilterPeriodMXP(unsigned char reg_index, unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readFilterPeriodMXP(unsigned char reg_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterPeriodHdrRegisters = 3,
} tFilterPeriodHdr_IfaceConstants;
virtual void writeFilterPeriodHdr(unsigned char reg_index, unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readFilterPeriodHdr(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tDIO(const tDIO&);
void operator=(const tDIO&);
};
}
}
#endif // __nFRC_2017_17_0_2_DIO_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_DIO_h__
#define __nFRC_2017_17_0_2_DIO_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tDIO
{
public:
tDIO(){}
virtual ~tDIO(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tDIO* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tDO;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tOutputEnable;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tPulse;
typedef
union{
struct{
#ifdef __vxworks
unsigned Headers : 10;
unsigned SPIPort : 5;
unsigned Reserved : 1;
unsigned MXP : 16;
#else
unsigned MXP : 16;
unsigned Reserved : 1;
unsigned SPIPort : 5;
unsigned Headers : 10;
#endif
};
struct{
unsigned value : 32;
};
} tDI;
typedef enum
{
} tDO_IfaceConstants;
virtual void writeDO(tDO value, tRioStatusCode *status) = 0;
virtual void writeDO_Headers(unsigned short value, tRioStatusCode *status) = 0;
virtual void writeDO_SPIPort(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeDO_Reserved(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeDO_MXP(unsigned short value, tRioStatusCode *status) = 0;
virtual tDO readDO(tRioStatusCode *status) = 0;
virtual unsigned short readDO_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readDO_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readDO_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readDO_MXP(tRioStatusCode *status) = 0;
typedef enum
{
kNumPWMDutyCycleAElements = 4,
} tPWMDutyCycleA_IfaceConstants;
virtual void writePWMDutyCycleA(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPWMDutyCycleA(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumPWMDutyCycleBElements = 2,
} tPWMDutyCycleB_IfaceConstants;
virtual void writePWMDutyCycleB(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPWMDutyCycleB(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterSelectHdrElements = 16,
} tFilterSelectHdr_IfaceConstants;
virtual void writeFilterSelectHdr(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readFilterSelectHdr(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tOutputEnable_IfaceConstants;
virtual void writeOutputEnable(tOutputEnable value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_Headers(unsigned short value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_SPIPort(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_Reserved(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeOutputEnable_MXP(unsigned short value, tRioStatusCode *status) = 0;
virtual tOutputEnable readOutputEnable(tRioStatusCode *status) = 0;
virtual unsigned short readOutputEnable_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readOutputEnable_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readOutputEnable_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readOutputEnable_MXP(tRioStatusCode *status) = 0;
typedef enum
{
kNumPWMOutputSelectElements = 6,
} tPWMOutputSelect_IfaceConstants;
virtual void writePWMOutputSelect(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPWMOutputSelect(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tPulse_IfaceConstants;
virtual void writePulse(tPulse value, tRioStatusCode *status) = 0;
virtual void writePulse_Headers(unsigned short value, tRioStatusCode *status) = 0;
virtual void writePulse_SPIPort(unsigned char value, tRioStatusCode *status) = 0;
virtual void writePulse_Reserved(unsigned char value, tRioStatusCode *status) = 0;
virtual void writePulse_MXP(unsigned short value, tRioStatusCode *status) = 0;
virtual tPulse readPulse(tRioStatusCode *status) = 0;
virtual unsigned short readPulse_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readPulse_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readPulse_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readPulse_MXP(tRioStatusCode *status) = 0;
typedef enum
{
} tDI_IfaceConstants;
virtual tDI readDI(tRioStatusCode *status) = 0;
virtual unsigned short readDI_Headers(tRioStatusCode *status) = 0;
virtual unsigned char readDI_SPIPort(tRioStatusCode *status) = 0;
virtual unsigned char readDI_Reserved(tRioStatusCode *status) = 0;
virtual unsigned short readDI_MXP(tRioStatusCode *status) = 0;
typedef enum
{
} tEnableMXPSpecialFunction_IfaceConstants;
virtual void writeEnableMXPSpecialFunction(unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readEnableMXPSpecialFunction(tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterSelectMXPElements = 16,
} tFilterSelectMXP_IfaceConstants;
virtual void writeFilterSelectMXP(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readFilterSelectMXP(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
} tPulseLength_IfaceConstants;
virtual void writePulseLength(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPulseLength(tRioStatusCode *status) = 0;
typedef enum
{
} tPWMPeriodPower_IfaceConstants;
virtual void writePWMPeriodPower(unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readPWMPeriodPower(tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterPeriodMXPRegisters = 3,
} tFilterPeriodMXP_IfaceConstants;
virtual void writeFilterPeriodMXP(unsigned char reg_index, unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readFilterPeriodMXP(unsigned char reg_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumFilterPeriodHdrRegisters = 3,
} tFilterPeriodHdr_IfaceConstants;
virtual void writeFilterPeriodHdr(unsigned char reg_index, unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readFilterPeriodHdr(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tDIO(const tDIO&);
void operator=(const tDIO&);
};
}
}
#endif // __nFRC_2017_17_0_2_DIO_h__

View File

@@ -1,197 +1,198 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_DMA_h__
#define __nFRC_2017_17_0_2_DMA_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tDMA
{
public:
tDMA(){}
virtual ~tDMA(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tDMA* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Pause : 1;
unsigned Enable_AI0_Low : 1;
unsigned Enable_AI0_High : 1;
unsigned Enable_AIAveraged0_Low : 1;
unsigned Enable_AIAveraged0_High : 1;
unsigned Enable_AI1_Low : 1;
unsigned Enable_AI1_High : 1;
unsigned Enable_AIAveraged1_Low : 1;
unsigned Enable_AIAveraged1_High : 1;
unsigned Enable_Accumulator0 : 1;
unsigned Enable_Accumulator1 : 1;
unsigned Enable_DI : 1;
unsigned Enable_AnalogTriggers : 1;
unsigned Enable_Counters_Low : 1;
unsigned Enable_Counters_High : 1;
unsigned Enable_CounterTimers_Low : 1;
unsigned Enable_CounterTimers_High : 1;
unsigned Enable_Encoders_Low : 1;
unsigned Enable_Encoders_High : 1;
unsigned Enable_EncoderTimers_Low : 1;
unsigned Enable_EncoderTimers_High : 1;
unsigned ExternalClock : 1;
#else
unsigned ExternalClock : 1;
unsigned Enable_EncoderTimers_High : 1;
unsigned Enable_EncoderTimers_Low : 1;
unsigned Enable_Encoders_High : 1;
unsigned Enable_Encoders_Low : 1;
unsigned Enable_CounterTimers_High : 1;
unsigned Enable_CounterTimers_Low : 1;
unsigned Enable_Counters_High : 1;
unsigned Enable_Counters_Low : 1;
unsigned Enable_AnalogTriggers : 1;
unsigned Enable_DI : 1;
unsigned Enable_Accumulator1 : 1;
unsigned Enable_Accumulator0 : 1;
unsigned Enable_AIAveraged1_High : 1;
unsigned Enable_AIAveraged1_Low : 1;
unsigned Enable_AI1_High : 1;
unsigned Enable_AI1_Low : 1;
unsigned Enable_AIAveraged0_High : 1;
unsigned Enable_AIAveraged0_Low : 1;
unsigned Enable_AI0_High : 1;
unsigned Enable_AI0_Low : 1;
unsigned Pause : 1;
#endif
};
struct{
unsigned value : 22;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned ExternalClockSource_Channel : 4;
unsigned ExternalClockSource_Module : 1;
unsigned ExternalClockSource_AnalogTrigger : 1;
unsigned RisingEdge : 1;
unsigned FallingEdge : 1;
#else
unsigned FallingEdge : 1;
unsigned RisingEdge : 1;
unsigned ExternalClockSource_AnalogTrigger : 1;
unsigned ExternalClockSource_Module : 1;
unsigned ExternalClockSource_Channel : 4;
#endif
};
struct{
unsigned value : 8;
};
} tExternalTriggers;
typedef enum
{
} tRate_IfaceConstants;
virtual void writeRate(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readRate(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_Pause(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI0_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI0_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged0_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged0_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI1_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI1_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged1_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged1_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Accumulator0(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Accumulator1(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_DI(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AnalogTriggers(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Counters_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Counters_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_CounterTimers_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_CounterTimers_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Encoders_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Encoders_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_EncoderTimers_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_EncoderTimers_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_ExternalClock(bool value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual bool readConfig_Pause(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI0_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI0_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged0_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged0_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI1_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI1_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged1_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged1_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Accumulator0(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Accumulator1(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_DI(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AnalogTriggers(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Counters_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Counters_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_CounterTimers_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_CounterTimers_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Encoders_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Encoders_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_EncoderTimers_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_EncoderTimers_High(tRioStatusCode *status) = 0;
virtual bool readConfig_ExternalClock(tRioStatusCode *status) = 0;
typedef enum
{
kNumExternalTriggersRegisters = 2,
kNumExternalTriggersElements = 4,
} tExternalTriggers_IfaceConstants;
virtual void writeExternalTriggers(unsigned char reg_index, unsigned char bitfield_index, tExternalTriggers value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_ExternalClockSource_Channel(unsigned char reg_index, unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_ExternalClockSource_Module(unsigned char reg_index, unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_ExternalClockSource_AnalogTrigger(unsigned char reg_index, unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_RisingEdge(unsigned char reg_index, unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_FallingEdge(unsigned char reg_index, unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual tExternalTriggers readExternalTriggers(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual unsigned char readExternalTriggers_ExternalClockSource_Channel(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual unsigned char readExternalTriggers_ExternalClockSource_Module(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readExternalTriggers_ExternalClockSource_AnalogTrigger(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readExternalTriggers_RisingEdge(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readExternalTriggers_FallingEdge(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
private:
tDMA(const tDMA&);
void operator=(const tDMA&);
};
}
}
#endif // __nFRC_2017_17_0_2_DMA_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_DMA_h__
#define __nFRC_2017_17_0_2_DMA_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tDMA
{
public:
tDMA(){}
virtual ~tDMA(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tDMA* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Pause : 1;
unsigned Enable_AI0_Low : 1;
unsigned Enable_AI0_High : 1;
unsigned Enable_AIAveraged0_Low : 1;
unsigned Enable_AIAveraged0_High : 1;
unsigned Enable_AI1_Low : 1;
unsigned Enable_AI1_High : 1;
unsigned Enable_AIAveraged1_Low : 1;
unsigned Enable_AIAveraged1_High : 1;
unsigned Enable_Accumulator0 : 1;
unsigned Enable_Accumulator1 : 1;
unsigned Enable_DI : 1;
unsigned Enable_AnalogTriggers : 1;
unsigned Enable_Counters_Low : 1;
unsigned Enable_Counters_High : 1;
unsigned Enable_CounterTimers_Low : 1;
unsigned Enable_CounterTimers_High : 1;
unsigned Enable_Encoders_Low : 1;
unsigned Enable_Encoders_High : 1;
unsigned Enable_EncoderTimers_Low : 1;
unsigned Enable_EncoderTimers_High : 1;
unsigned ExternalClock : 1;
#else
unsigned ExternalClock : 1;
unsigned Enable_EncoderTimers_High : 1;
unsigned Enable_EncoderTimers_Low : 1;
unsigned Enable_Encoders_High : 1;
unsigned Enable_Encoders_Low : 1;
unsigned Enable_CounterTimers_High : 1;
unsigned Enable_CounterTimers_Low : 1;
unsigned Enable_Counters_High : 1;
unsigned Enable_Counters_Low : 1;
unsigned Enable_AnalogTriggers : 1;
unsigned Enable_DI : 1;
unsigned Enable_Accumulator1 : 1;
unsigned Enable_Accumulator0 : 1;
unsigned Enable_AIAveraged1_High : 1;
unsigned Enable_AIAveraged1_Low : 1;
unsigned Enable_AI1_High : 1;
unsigned Enable_AI1_Low : 1;
unsigned Enable_AIAveraged0_High : 1;
unsigned Enable_AIAveraged0_Low : 1;
unsigned Enable_AI0_High : 1;
unsigned Enable_AI0_Low : 1;
unsigned Pause : 1;
#endif
};
struct{
unsigned value : 22;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned ExternalClockSource_Channel : 4;
unsigned ExternalClockSource_Module : 1;
unsigned ExternalClockSource_AnalogTrigger : 1;
unsigned RisingEdge : 1;
unsigned FallingEdge : 1;
#else
unsigned FallingEdge : 1;
unsigned RisingEdge : 1;
unsigned ExternalClockSource_AnalogTrigger : 1;
unsigned ExternalClockSource_Module : 1;
unsigned ExternalClockSource_Channel : 4;
#endif
};
struct{
unsigned value : 8;
};
} tExternalTriggers;
typedef enum
{
} tRate_IfaceConstants;
virtual void writeRate(unsigned int value, tRioStatusCode *status) = 0;
virtual unsigned int readRate(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_Pause(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI0_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI0_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged0_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged0_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI1_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AI1_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged1_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AIAveraged1_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Accumulator0(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Accumulator1(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_DI(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_AnalogTriggers(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Counters_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Counters_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_CounterTimers_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_CounterTimers_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Encoders_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_Encoders_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_EncoderTimers_Low(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Enable_EncoderTimers_High(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_ExternalClock(bool value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual bool readConfig_Pause(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI0_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI0_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged0_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged0_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI1_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AI1_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged1_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AIAveraged1_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Accumulator0(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Accumulator1(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_DI(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_AnalogTriggers(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Counters_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Counters_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_CounterTimers_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_CounterTimers_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Encoders_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_Encoders_High(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_EncoderTimers_Low(tRioStatusCode *status) = 0;
virtual bool readConfig_Enable_EncoderTimers_High(tRioStatusCode *status) = 0;
virtual bool readConfig_ExternalClock(tRioStatusCode *status) = 0;
typedef enum
{
kNumExternalTriggersRegisters = 2,
kNumExternalTriggersElements = 4,
} tExternalTriggers_IfaceConstants;
virtual void writeExternalTriggers(unsigned char reg_index, unsigned char bitfield_index, tExternalTriggers value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_ExternalClockSource_Channel(unsigned char reg_index, unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_ExternalClockSource_Module(unsigned char reg_index, unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_ExternalClockSource_AnalogTrigger(unsigned char reg_index, unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_RisingEdge(unsigned char reg_index, unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual void writeExternalTriggers_FallingEdge(unsigned char reg_index, unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual tExternalTriggers readExternalTriggers(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual unsigned char readExternalTriggers_ExternalClockSource_Channel(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual unsigned char readExternalTriggers_ExternalClockSource_Module(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readExternalTriggers_ExternalClockSource_AnalogTrigger(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readExternalTriggers_RisingEdge(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
virtual bool readExternalTriggers_FallingEdge(unsigned char reg_index, unsigned char bitfield_index, tRioStatusCode *status) = 0;
private:
tDMA(const tDMA&);
void operator=(const tDMA&);
};
}
}
#endif // __nFRC_2017_17_0_2_DMA_h__

View File

@@ -1,199 +1,200 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Encoder_h__
#define __nFRC_2017_17_0_2_Encoder_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tEncoder
{
public:
tEncoder(){}
virtual ~tEncoder(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tEncoder* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Direction : 1;
signed Value : 31;
#else
signed Value : 31;
unsigned Direction : 1;
#endif
};
struct{
unsigned value : 32;
};
} tOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned ASource_Channel : 4;
unsigned ASource_Module : 1;
unsigned ASource_AnalogTrigger : 1;
unsigned BSource_Channel : 4;
unsigned BSource_Module : 1;
unsigned BSource_AnalogTrigger : 1;
unsigned IndexSource_Channel : 4;
unsigned IndexSource_Module : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexEdgeSensitive : 1;
unsigned Reverse : 1;
#else
unsigned Reverse : 1;
unsigned IndexEdgeSensitive : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexSource_Module : 1;
unsigned IndexSource_Channel : 4;
unsigned BSource_AnalogTrigger : 1;
unsigned BSource_Module : 1;
unsigned BSource_Channel : 4;
unsigned ASource_AnalogTrigger : 1;
unsigned ASource_Module : 1;
unsigned ASource_Channel : 4;
#endif
};
struct{
unsigned value : 21;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned Period : 23;
signed Count : 8;
unsigned Stalled : 1;
#else
unsigned Stalled : 1;
signed Count : 8;
unsigned Period : 23;
#endif
};
struct{
unsigned value : 32;
};
} tTimerOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned StallPeriod : 24;
unsigned AverageSize : 7;
unsigned UpdateWhenEmpty : 1;
#else
unsigned UpdateWhenEmpty : 1;
unsigned AverageSize : 7;
unsigned StallPeriod : 24;
#endif
};
struct{
unsigned value : 32;
};
} tTimerConfig;
typedef enum
{
} tOutput_IfaceConstants;
virtual tOutput readOutput(tRioStatusCode *status) = 0;
virtual bool readOutput_Direction(tRioStatusCode *status) = 0;
virtual signed int readOutput_Value(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_ASource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_ASource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_ASource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_BSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_BSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_BSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexActiveHigh(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexEdgeSensitive(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Reverse(bool value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_ASource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_ASource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_ASource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_BSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_BSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_BSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexActiveHigh(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexEdgeSensitive(tRioStatusCode *status) = 0;
virtual bool readConfig_Reverse(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerOutput_IfaceConstants;
virtual tTimerOutput readTimerOutput(tRioStatusCode *status) = 0;
virtual unsigned int readTimerOutput_Period(tRioStatusCode *status) = 0;
virtual signed char readTimerOutput_Count(tRioStatusCode *status) = 0;
virtual bool readTimerOutput_Stalled(tRioStatusCode *status) = 0;
typedef enum
{
} tReset_IfaceConstants;
virtual void strobeReset(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerConfig_IfaceConstants;
virtual void writeTimerConfig(tTimerConfig value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_StallPeriod(unsigned int value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_AverageSize(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_UpdateWhenEmpty(bool value, tRioStatusCode *status) = 0;
virtual tTimerConfig readTimerConfig(tRioStatusCode *status) = 0;
virtual unsigned int readTimerConfig_StallPeriod(tRioStatusCode *status) = 0;
virtual unsigned char readTimerConfig_AverageSize(tRioStatusCode *status) = 0;
virtual bool readTimerConfig_UpdateWhenEmpty(tRioStatusCode *status) = 0;
private:
tEncoder(const tEncoder&);
void operator=(const tEncoder&);
};
}
}
#endif // __nFRC_2017_17_0_2_Encoder_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Encoder_h__
#define __nFRC_2017_17_0_2_Encoder_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tEncoder
{
public:
tEncoder(){}
virtual ~tEncoder(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tEncoder* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Direction : 1;
signed Value : 31;
#else
signed Value : 31;
unsigned Direction : 1;
#endif
};
struct{
unsigned value : 32;
};
} tOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned ASource_Channel : 4;
unsigned ASource_Module : 1;
unsigned ASource_AnalogTrigger : 1;
unsigned BSource_Channel : 4;
unsigned BSource_Module : 1;
unsigned BSource_AnalogTrigger : 1;
unsigned IndexSource_Channel : 4;
unsigned IndexSource_Module : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexEdgeSensitive : 1;
unsigned Reverse : 1;
#else
unsigned Reverse : 1;
unsigned IndexEdgeSensitive : 1;
unsigned IndexActiveHigh : 1;
unsigned IndexSource_AnalogTrigger : 1;
unsigned IndexSource_Module : 1;
unsigned IndexSource_Channel : 4;
unsigned BSource_AnalogTrigger : 1;
unsigned BSource_Module : 1;
unsigned BSource_Channel : 4;
unsigned ASource_AnalogTrigger : 1;
unsigned ASource_Module : 1;
unsigned ASource_Channel : 4;
#endif
};
struct{
unsigned value : 21;
};
} tConfig;
typedef
union{
struct{
#ifdef __vxworks
unsigned Period : 23;
signed Count : 8;
unsigned Stalled : 1;
#else
unsigned Stalled : 1;
signed Count : 8;
unsigned Period : 23;
#endif
};
struct{
unsigned value : 32;
};
} tTimerOutput;
typedef
union{
struct{
#ifdef __vxworks
unsigned StallPeriod : 24;
unsigned AverageSize : 7;
unsigned UpdateWhenEmpty : 1;
#else
unsigned UpdateWhenEmpty : 1;
unsigned AverageSize : 7;
unsigned StallPeriod : 24;
#endif
};
struct{
unsigned value : 32;
};
} tTimerConfig;
typedef enum
{
} tOutput_IfaceConstants;
virtual tOutput readOutput(tRioStatusCode *status) = 0;
virtual bool readOutput_Direction(tRioStatusCode *status) = 0;
virtual signed int readOutput_Value(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_ASource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_ASource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_ASource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_BSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_BSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_BSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexSource_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexActiveHigh(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_IndexEdgeSensitive(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_Reverse(bool value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_ASource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_ASource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_ASource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_BSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_BSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_BSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_IndexSource_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexSource_AnalogTrigger(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexActiveHigh(tRioStatusCode *status) = 0;
virtual bool readConfig_IndexEdgeSensitive(tRioStatusCode *status) = 0;
virtual bool readConfig_Reverse(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerOutput_IfaceConstants;
virtual tTimerOutput readTimerOutput(tRioStatusCode *status) = 0;
virtual unsigned int readTimerOutput_Period(tRioStatusCode *status) = 0;
virtual signed char readTimerOutput_Count(tRioStatusCode *status) = 0;
virtual bool readTimerOutput_Stalled(tRioStatusCode *status) = 0;
typedef enum
{
} tReset_IfaceConstants;
virtual void strobeReset(tRioStatusCode *status) = 0;
typedef enum
{
} tTimerConfig_IfaceConstants;
virtual void writeTimerConfig(tTimerConfig value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_StallPeriod(unsigned int value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_AverageSize(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeTimerConfig_UpdateWhenEmpty(bool value, tRioStatusCode *status) = 0;
virtual tTimerConfig readTimerConfig(tRioStatusCode *status) = 0;
virtual unsigned int readTimerConfig_StallPeriod(tRioStatusCode *status) = 0;
virtual unsigned char readTimerConfig_AverageSize(tRioStatusCode *status) = 0;
virtual bool readTimerConfig_UpdateWhenEmpty(tRioStatusCode *status) = 0;
private:
tEncoder(const tEncoder&);
void operator=(const tEncoder&);
};
}
}
#endif // __nFRC_2017_17_0_2_Encoder_h__

View File

@@ -1,100 +1,101 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Global_h__
#define __nFRC_2017_17_0_2_Global_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tGlobal
{
public:
tGlobal(){}
virtual ~tGlobal(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tGlobal* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Comm : 8;
unsigned Mode : 8;
unsigned RSL : 1;
#else
unsigned RSL : 1;
unsigned Mode : 8;
unsigned Comm : 8;
#endif
};
struct{
unsigned value : 17;
};
} tLEDs;
typedef enum
{
} tLEDs_IfaceConstants;
virtual void writeLEDs(tLEDs value, tRioStatusCode *status) = 0;
virtual void writeLEDs_Comm(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeLEDs_Mode(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeLEDs_RSL(bool value, tRioStatusCode *status) = 0;
virtual tLEDs readLEDs(tRioStatusCode *status) = 0;
virtual unsigned char readLEDs_Comm(tRioStatusCode *status) = 0;
virtual unsigned char readLEDs_Mode(tRioStatusCode *status) = 0;
virtual bool readLEDs_RSL(tRioStatusCode *status) = 0;
typedef enum
{
} tVersion_IfaceConstants;
virtual unsigned short readVersion(tRioStatusCode *status) = 0;
typedef enum
{
} tLocalTime_IfaceConstants;
virtual unsigned int readLocalTime(tRioStatusCode *status) = 0;
typedef enum
{
} tUserButton_IfaceConstants;
virtual bool readUserButton(tRioStatusCode *status) = 0;
typedef enum
{
} tRevision_IfaceConstants;
virtual unsigned int readRevision(tRioStatusCode *status) = 0;
private:
tGlobal(const tGlobal&);
void operator=(const tGlobal&);
};
}
}
#endif // __nFRC_2017_17_0_2_Global_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Global_h__
#define __nFRC_2017_17_0_2_Global_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tGlobal
{
public:
tGlobal(){}
virtual ~tGlobal(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tGlobal* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Comm : 8;
unsigned Mode : 8;
unsigned RSL : 1;
#else
unsigned RSL : 1;
unsigned Mode : 8;
unsigned Comm : 8;
#endif
};
struct{
unsigned value : 17;
};
} tLEDs;
typedef enum
{
} tLEDs_IfaceConstants;
virtual void writeLEDs(tLEDs value, tRioStatusCode *status) = 0;
virtual void writeLEDs_Comm(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeLEDs_Mode(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeLEDs_RSL(bool value, tRioStatusCode *status) = 0;
virtual tLEDs readLEDs(tRioStatusCode *status) = 0;
virtual unsigned char readLEDs_Comm(tRioStatusCode *status) = 0;
virtual unsigned char readLEDs_Mode(tRioStatusCode *status) = 0;
virtual bool readLEDs_RSL(tRioStatusCode *status) = 0;
typedef enum
{
} tVersion_IfaceConstants;
virtual unsigned short readVersion(tRioStatusCode *status) = 0;
typedef enum
{
} tLocalTime_IfaceConstants;
virtual unsigned int readLocalTime(tRioStatusCode *status) = 0;
typedef enum
{
} tUserButton_IfaceConstants;
virtual bool readUserButton(tRioStatusCode *status) = 0;
typedef enum
{
} tRevision_IfaceConstants;
virtual unsigned int readRevision(tRioStatusCode *status) = 0;
private:
tGlobal(const tGlobal&);
void operator=(const tGlobal&);
};
}
}
#endif // __nFRC_2017_17_0_2_Global_h__

View File

@@ -1,100 +1,101 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Interrupt_h__
#define __nFRC_2017_17_0_2_Interrupt_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tInterrupt
{
public:
tInterrupt(){}
virtual ~tInterrupt(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tInterrupt* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Source_Channel : 4;
unsigned Source_Module : 1;
unsigned Source_AnalogTrigger : 1;
unsigned RisingEdge : 1;
unsigned FallingEdge : 1;
unsigned WaitForAck : 1;
#else
unsigned WaitForAck : 1;
unsigned FallingEdge : 1;
unsigned RisingEdge : 1;
unsigned Source_AnalogTrigger : 1;
unsigned Source_Module : 1;
unsigned Source_Channel : 4;
#endif
};
struct{
unsigned value : 9;
};
} tConfig;
typedef enum
{
} tFallingTimeStamp_IfaceConstants;
virtual unsigned int readFallingTimeStamp(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_Source_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_Source_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_Source_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_RisingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_FallingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_WaitForAck(bool value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_Source_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_Source_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_Source_AnalogTrigger(tRioStatusCode *status) = 0;
virtual bool readConfig_RisingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_FallingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_WaitForAck(tRioStatusCode *status) = 0;
typedef enum
{
} tRisingTimeStamp_IfaceConstants;
virtual unsigned int readRisingTimeStamp(tRioStatusCode *status) = 0;
private:
tInterrupt(const tInterrupt&);
void operator=(const tInterrupt&);
};
}
}
#endif // __nFRC_2017_17_0_2_Interrupt_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Interrupt_h__
#define __nFRC_2017_17_0_2_Interrupt_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tInterrupt
{
public:
tInterrupt(){}
virtual ~tInterrupt(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tInterrupt* create(unsigned char sys_index, tRioStatusCode *status);
virtual unsigned char getSystemIndex() = 0;
typedef enum
{
kNumSystems = 8,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Source_Channel : 4;
unsigned Source_Module : 1;
unsigned Source_AnalogTrigger : 1;
unsigned RisingEdge : 1;
unsigned FallingEdge : 1;
unsigned WaitForAck : 1;
#else
unsigned WaitForAck : 1;
unsigned FallingEdge : 1;
unsigned RisingEdge : 1;
unsigned Source_AnalogTrigger : 1;
unsigned Source_Module : 1;
unsigned Source_Channel : 4;
#endif
};
struct{
unsigned value : 9;
};
} tConfig;
typedef enum
{
} tFallingTimeStamp_IfaceConstants;
virtual unsigned int readFallingTimeStamp(tRioStatusCode *status) = 0;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_Source_Channel(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_Source_Module(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeConfig_Source_AnalogTrigger(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_RisingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_FallingEdge(bool value, tRioStatusCode *status) = 0;
virtual void writeConfig_WaitForAck(bool value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_Source_Channel(tRioStatusCode *status) = 0;
virtual unsigned char readConfig_Source_Module(tRioStatusCode *status) = 0;
virtual bool readConfig_Source_AnalogTrigger(tRioStatusCode *status) = 0;
virtual bool readConfig_RisingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_FallingEdge(tRioStatusCode *status) = 0;
virtual bool readConfig_WaitForAck(tRioStatusCode *status) = 0;
typedef enum
{
} tRisingTimeStamp_IfaceConstants;
virtual unsigned int readRisingTimeStamp(tRioStatusCode *status) = 0;
private:
tInterrupt(const tInterrupt&);
void operator=(const tInterrupt&);
};
}
}
#endif // __nFRC_2017_17_0_2_Interrupt_h__

View File

@@ -1,120 +1,121 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_PWM_h__
#define __nFRC_2017_17_0_2_PWM_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tPWM
{
public:
tPWM(){}
virtual ~tPWM(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tPWM* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Period : 16;
unsigned MinHigh : 16;
#else
unsigned MinHigh : 16;
unsigned Period : 16;
#endif
};
struct{
unsigned value : 32;
};
} tConfig;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_Period(unsigned short value, tRioStatusCode *status) = 0;
virtual void writeConfig_MinHigh(unsigned short value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned short readConfig_Period(tRioStatusCode *status) = 0;
virtual unsigned short readConfig_MinHigh(tRioStatusCode *status) = 0;
typedef enum
{
} tLoopTiming_IfaceConstants;
virtual unsigned short readLoopTiming(tRioStatusCode *status) = 0;
typedef enum
{
kNumPeriodScaleMXPElements = 10,
} tPeriodScaleMXP_IfaceConstants;
virtual void writePeriodScaleMXP(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPeriodScaleMXP(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumPeriodScaleHdrElements = 10,
} tPeriodScaleHdr_IfaceConstants;
virtual void writePeriodScaleHdr(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPeriodScaleHdr(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumZeroLatchElements = 20,
} tZeroLatch_IfaceConstants;
virtual void writeZeroLatch(unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual bool readZeroLatch(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumHdrRegisters = 10,
} tHdr_IfaceConstants;
virtual void writeHdr(unsigned char reg_index, unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readHdr(unsigned char reg_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumMXPRegisters = 10,
} tMXP_IfaceConstants;
virtual void writeMXP(unsigned char reg_index, unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readMXP(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tPWM(const tPWM&);
void operator=(const tPWM&);
};
}
}
#endif // __nFRC_2017_17_0_2_PWM_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_PWM_h__
#define __nFRC_2017_17_0_2_PWM_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tPWM
{
public:
tPWM(){}
virtual ~tPWM(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tPWM* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Period : 16;
unsigned MinHigh : 16;
#else
unsigned MinHigh : 16;
unsigned Period : 16;
#endif
};
struct{
unsigned value : 32;
};
} tConfig;
typedef enum
{
} tConfig_IfaceConstants;
virtual void writeConfig(tConfig value, tRioStatusCode *status) = 0;
virtual void writeConfig_Period(unsigned short value, tRioStatusCode *status) = 0;
virtual void writeConfig_MinHigh(unsigned short value, tRioStatusCode *status) = 0;
virtual tConfig readConfig(tRioStatusCode *status) = 0;
virtual unsigned short readConfig_Period(tRioStatusCode *status) = 0;
virtual unsigned short readConfig_MinHigh(tRioStatusCode *status) = 0;
typedef enum
{
} tLoopTiming_IfaceConstants;
virtual unsigned short readLoopTiming(tRioStatusCode *status) = 0;
typedef enum
{
kNumPeriodScaleMXPElements = 10,
} tPeriodScaleMXP_IfaceConstants;
virtual void writePeriodScaleMXP(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPeriodScaleMXP(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumPeriodScaleHdrElements = 10,
} tPeriodScaleHdr_IfaceConstants;
virtual void writePeriodScaleHdr(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readPeriodScaleHdr(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumZeroLatchElements = 20,
} tZeroLatch_IfaceConstants;
virtual void writeZeroLatch(unsigned char bitfield_index, bool value, tRioStatusCode *status) = 0;
virtual bool readZeroLatch(unsigned char bitfield_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumHdrRegisters = 10,
} tHdr_IfaceConstants;
virtual void writeHdr(unsigned char reg_index, unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readHdr(unsigned char reg_index, tRioStatusCode *status) = 0;
typedef enum
{
kNumMXPRegisters = 10,
} tMXP_IfaceConstants;
virtual void writeMXP(unsigned char reg_index, unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readMXP(unsigned char reg_index, tRioStatusCode *status) = 0;
private:
tPWM(const tPWM&);
void operator=(const tPWM&);
};
}
}
#endif // __nFRC_2017_17_0_2_PWM_h__

View File

@@ -1,220 +1,221 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Power_h__
#define __nFRC_2017_17_0_2_Power_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tPower
{
public:
tPower(){}
virtual ~tPower(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tPower* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned User3V3 : 8;
unsigned User5V : 8;
unsigned User6V : 8;
#else
unsigned User6V : 8;
unsigned User5V : 8;
unsigned User3V3 : 8;
#endif
};
struct{
unsigned value : 24;
};
} tStatus;
typedef
union{
struct{
#ifdef __vxworks
unsigned OverCurrentFaultCount3V3 : 8;
unsigned OverCurrentFaultCount5V : 8;
unsigned OverCurrentFaultCount6V : 8;
unsigned UnderVoltageFaultCount5V : 8;
#else
unsigned UnderVoltageFaultCount5V : 8;
unsigned OverCurrentFaultCount6V : 8;
unsigned OverCurrentFaultCount5V : 8;
unsigned OverCurrentFaultCount3V3 : 8;
#endif
};
struct{
unsigned value : 32;
};
} tFaultCounts;
typedef
union{
struct{
#ifdef __vxworks
unsigned User3V3 : 1;
unsigned User5V : 1;
unsigned User6V : 1;
#else
unsigned User6V : 1;
unsigned User5V : 1;
unsigned User3V3 : 1;
#endif
};
struct{
unsigned value : 3;
};
} tDisable;
typedef enum
{
} tUserVoltage3V3_IfaceConstants;
virtual unsigned short readUserVoltage3V3(tRioStatusCode *status) = 0;
typedef enum
{
} tStatus_IfaceConstants;
virtual tStatus readStatus(tRioStatusCode *status) = 0;
virtual unsigned char readStatus_User3V3(tRioStatusCode *status) = 0;
virtual unsigned char readStatus_User5V(tRioStatusCode *status) = 0;
virtual unsigned char readStatus_User6V(tRioStatusCode *status) = 0;
typedef enum
{
} tUserVoltage6V_IfaceConstants;
virtual unsigned short readUserVoltage6V(tRioStatusCode *status) = 0;
typedef enum
{
} tOnChipTemperature_IfaceConstants;
virtual unsigned short readOnChipTemperature(tRioStatusCode *status) = 0;
typedef enum
{
} tUserVoltage5V_IfaceConstants;
virtual unsigned short readUserVoltage5V(tRioStatusCode *status) = 0;
typedef enum
{
} tResetFaultCounts_IfaceConstants;
virtual void strobeResetFaultCounts(tRioStatusCode *status) = 0;
typedef enum
{
} tIntegratedIO_IfaceConstants;
virtual unsigned short readIntegratedIO(tRioStatusCode *status) = 0;
typedef enum
{
} tMXP_DIOVoltage_IfaceConstants;
virtual unsigned short readMXP_DIOVoltage(tRioStatusCode *status) = 0;
typedef enum
{
} tUserCurrent3V3_IfaceConstants;
virtual unsigned short readUserCurrent3V3(tRioStatusCode *status) = 0;
typedef enum
{
} tVinVoltage_IfaceConstants;
virtual unsigned short readVinVoltage(tRioStatusCode *status) = 0;
typedef enum
{
} tUserCurrent6V_IfaceConstants;
virtual unsigned short readUserCurrent6V(tRioStatusCode *status) = 0;
typedef enum
{
} tUserCurrent5V_IfaceConstants;
virtual unsigned short readUserCurrent5V(tRioStatusCode *status) = 0;
typedef enum
{
} tAOVoltage_IfaceConstants;
virtual unsigned short readAOVoltage(tRioStatusCode *status) = 0;
typedef enum
{
} tFaultCounts_IfaceConstants;
virtual tFaultCounts readFaultCounts(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_OverCurrentFaultCount3V3(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_OverCurrentFaultCount5V(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_OverCurrentFaultCount6V(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_UnderVoltageFaultCount5V(tRioStatusCode *status) = 0;
typedef enum
{
} tVinCurrent_IfaceConstants;
virtual unsigned short readVinCurrent(tRioStatusCode *status) = 0;
typedef enum
{
} tDisable_IfaceConstants;
virtual void writeDisable(tDisable value, tRioStatusCode *status) = 0;
virtual void writeDisable_User3V3(bool value, tRioStatusCode *status) = 0;
virtual void writeDisable_User5V(bool value, tRioStatusCode *status) = 0;
virtual void writeDisable_User6V(bool value, tRioStatusCode *status) = 0;
virtual tDisable readDisable(tRioStatusCode *status) = 0;
virtual bool readDisable_User3V3(tRioStatusCode *status) = 0;
virtual bool readDisable_User5V(tRioStatusCode *status) = 0;
virtual bool readDisable_User6V(tRioStatusCode *status) = 0;
private:
tPower(const tPower&);
void operator=(const tPower&);
};
}
}
#endif // __nFRC_2017_17_0_2_Power_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Power_h__
#define __nFRC_2017_17_0_2_Power_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tPower
{
public:
tPower(){}
virtual ~tPower(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tPower* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned User3V3 : 8;
unsigned User5V : 8;
unsigned User6V : 8;
#else
unsigned User6V : 8;
unsigned User5V : 8;
unsigned User3V3 : 8;
#endif
};
struct{
unsigned value : 24;
};
} tStatus;
typedef
union{
struct{
#ifdef __vxworks
unsigned OverCurrentFaultCount3V3 : 8;
unsigned OverCurrentFaultCount5V : 8;
unsigned OverCurrentFaultCount6V : 8;
unsigned UnderVoltageFaultCount5V : 8;
#else
unsigned UnderVoltageFaultCount5V : 8;
unsigned OverCurrentFaultCount6V : 8;
unsigned OverCurrentFaultCount5V : 8;
unsigned OverCurrentFaultCount3V3 : 8;
#endif
};
struct{
unsigned value : 32;
};
} tFaultCounts;
typedef
union{
struct{
#ifdef __vxworks
unsigned User3V3 : 1;
unsigned User5V : 1;
unsigned User6V : 1;
#else
unsigned User6V : 1;
unsigned User5V : 1;
unsigned User3V3 : 1;
#endif
};
struct{
unsigned value : 3;
};
} tDisable;
typedef enum
{
} tUserVoltage3V3_IfaceConstants;
virtual unsigned short readUserVoltage3V3(tRioStatusCode *status) = 0;
typedef enum
{
} tStatus_IfaceConstants;
virtual tStatus readStatus(tRioStatusCode *status) = 0;
virtual unsigned char readStatus_User3V3(tRioStatusCode *status) = 0;
virtual unsigned char readStatus_User5V(tRioStatusCode *status) = 0;
virtual unsigned char readStatus_User6V(tRioStatusCode *status) = 0;
typedef enum
{
} tUserVoltage6V_IfaceConstants;
virtual unsigned short readUserVoltage6V(tRioStatusCode *status) = 0;
typedef enum
{
} tOnChipTemperature_IfaceConstants;
virtual unsigned short readOnChipTemperature(tRioStatusCode *status) = 0;
typedef enum
{
} tUserVoltage5V_IfaceConstants;
virtual unsigned short readUserVoltage5V(tRioStatusCode *status) = 0;
typedef enum
{
} tResetFaultCounts_IfaceConstants;
virtual void strobeResetFaultCounts(tRioStatusCode *status) = 0;
typedef enum
{
} tIntegratedIO_IfaceConstants;
virtual unsigned short readIntegratedIO(tRioStatusCode *status) = 0;
typedef enum
{
} tMXP_DIOVoltage_IfaceConstants;
virtual unsigned short readMXP_DIOVoltage(tRioStatusCode *status) = 0;
typedef enum
{
} tUserCurrent3V3_IfaceConstants;
virtual unsigned short readUserCurrent3V3(tRioStatusCode *status) = 0;
typedef enum
{
} tVinVoltage_IfaceConstants;
virtual unsigned short readVinVoltage(tRioStatusCode *status) = 0;
typedef enum
{
} tUserCurrent6V_IfaceConstants;
virtual unsigned short readUserCurrent6V(tRioStatusCode *status) = 0;
typedef enum
{
} tUserCurrent5V_IfaceConstants;
virtual unsigned short readUserCurrent5V(tRioStatusCode *status) = 0;
typedef enum
{
} tAOVoltage_IfaceConstants;
virtual unsigned short readAOVoltage(tRioStatusCode *status) = 0;
typedef enum
{
} tFaultCounts_IfaceConstants;
virtual tFaultCounts readFaultCounts(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_OverCurrentFaultCount3V3(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_OverCurrentFaultCount5V(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_OverCurrentFaultCount6V(tRioStatusCode *status) = 0;
virtual unsigned char readFaultCounts_UnderVoltageFaultCount5V(tRioStatusCode *status) = 0;
typedef enum
{
} tVinCurrent_IfaceConstants;
virtual unsigned short readVinCurrent(tRioStatusCode *status) = 0;
typedef enum
{
} tDisable_IfaceConstants;
virtual void writeDisable(tDisable value, tRioStatusCode *status) = 0;
virtual void writeDisable_User3V3(bool value, tRioStatusCode *status) = 0;
virtual void writeDisable_User5V(bool value, tRioStatusCode *status) = 0;
virtual void writeDisable_User6V(bool value, tRioStatusCode *status) = 0;
virtual tDisable readDisable(tRioStatusCode *status) = 0;
virtual bool readDisable_User3V3(tRioStatusCode *status) = 0;
virtual bool readDisable_User5V(tRioStatusCode *status) = 0;
virtual bool readDisable_User6V(tRioStatusCode *status) = 0;
private:
tPower(const tPower&);
void operator=(const tPower&);
};
}
}
#endif // __nFRC_2017_17_0_2_Power_h__

View File

@@ -1,68 +1,69 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Relay_h__
#define __nFRC_2017_17_0_2_Relay_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tRelay
{
public:
tRelay(){}
virtual ~tRelay(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tRelay* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Forward : 4;
unsigned Reverse : 4;
#else
unsigned Reverse : 4;
unsigned Forward : 4;
#endif
};
struct{
unsigned value : 8;
};
} tValue;
typedef enum
{
} tValue_IfaceConstants;
virtual void writeValue(tValue value, tRioStatusCode *status) = 0;
virtual void writeValue_Forward(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeValue_Reverse(unsigned char value, tRioStatusCode *status) = 0;
virtual tValue readValue(tRioStatusCode *status) = 0;
virtual unsigned char readValue_Forward(tRioStatusCode *status) = 0;
virtual unsigned char readValue_Reverse(tRioStatusCode *status) = 0;
private:
tRelay(const tRelay&);
void operator=(const tRelay&);
};
}
}
#endif // __nFRC_2017_17_0_2_Relay_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_Relay_h__
#define __nFRC_2017_17_0_2_Relay_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tRelay
{
public:
tRelay(){}
virtual ~tRelay(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tRelay* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Forward : 4;
unsigned Reverse : 4;
#else
unsigned Reverse : 4;
unsigned Forward : 4;
#endif
};
struct{
unsigned value : 8;
};
} tValue;
typedef enum
{
} tValue_IfaceConstants;
virtual void writeValue(tValue value, tRioStatusCode *status) = 0;
virtual void writeValue_Forward(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeValue_Reverse(unsigned char value, tRioStatusCode *status) = 0;
virtual tValue readValue(tRioStatusCode *status) = 0;
virtual unsigned char readValue_Forward(tRioStatusCode *status) = 0;
virtual unsigned char readValue_Reverse(tRioStatusCode *status) = 0;
private:
tRelay(const tRelay&);
void operator=(const tRelay&);
};
}
}
#endif // __nFRC_2017_17_0_2_Relay_h__

View File

@@ -1,76 +1,77 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_SPI_h__
#define __nFRC_2017_17_0_2_SPI_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tSPI
{
public:
tSPI(){}
virtual ~tSPI(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tSPI* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Hdr : 4;
unsigned MXP : 1;
#else
unsigned MXP : 1;
unsigned Hdr : 4;
#endif
};
struct{
unsigned value : 5;
};
} tChipSelectActiveHigh;
typedef enum
{
} tEnableDIO_IfaceConstants;
virtual void writeEnableDIO(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readEnableDIO(tRioStatusCode *status) = 0;
typedef enum
{
} tChipSelectActiveHigh_IfaceConstants;
virtual void writeChipSelectActiveHigh(tChipSelectActiveHigh value, tRioStatusCode *status) = 0;
virtual void writeChipSelectActiveHigh_Hdr(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeChipSelectActiveHigh_MXP(unsigned char value, tRioStatusCode *status) = 0;
virtual tChipSelectActiveHigh readChipSelectActiveHigh(tRioStatusCode *status) = 0;
virtual unsigned char readChipSelectActiveHigh_Hdr(tRioStatusCode *status) = 0;
virtual unsigned char readChipSelectActiveHigh_MXP(tRioStatusCode *status) = 0;
private:
tSPI(const tSPI&);
void operator=(const tSPI&);
};
}
}
#endif // __nFRC_2017_17_0_2_SPI_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_SPI_h__
#define __nFRC_2017_17_0_2_SPI_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tSPI
{
public:
tSPI(){}
virtual ~tSPI(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tSPI* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned Hdr : 4;
unsigned MXP : 1;
#else
unsigned MXP : 1;
unsigned Hdr : 4;
#endif
};
struct{
unsigned value : 5;
};
} tChipSelectActiveHigh;
typedef enum
{
} tEnableDIO_IfaceConstants;
virtual void writeEnableDIO(unsigned char value, tRioStatusCode *status) = 0;
virtual unsigned char readEnableDIO(tRioStatusCode *status) = 0;
typedef enum
{
} tChipSelectActiveHigh_IfaceConstants;
virtual void writeChipSelectActiveHigh(tChipSelectActiveHigh value, tRioStatusCode *status) = 0;
virtual void writeChipSelectActiveHigh_Hdr(unsigned char value, tRioStatusCode *status) = 0;
virtual void writeChipSelectActiveHigh_MXP(unsigned char value, tRioStatusCode *status) = 0;
virtual tChipSelectActiveHigh readChipSelectActiveHigh(tRioStatusCode *status) = 0;
virtual unsigned char readChipSelectActiveHigh_Hdr(tRioStatusCode *status) = 0;
virtual unsigned char readChipSelectActiveHigh_MXP(tRioStatusCode *status) = 0;
private:
tSPI(const tSPI&);
void operator=(const tSPI&);
};
}
}
#endif // __nFRC_2017_17_0_2_SPI_h__

View File

@@ -1,108 +1,109 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_SysWatchdog_h__
#define __nFRC_2017_17_0_2_SysWatchdog_h__
#include "tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tSysWatchdog
{
public:
tSysWatchdog(){}
virtual ~tSysWatchdog(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tSysWatchdog* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned SystemActive : 1;
unsigned PowerAlive : 1;
unsigned SysDisableCount : 15;
unsigned PowerDisableCount : 15;
#else
unsigned PowerDisableCount : 15;
unsigned SysDisableCount : 15;
unsigned PowerAlive : 1;
unsigned SystemActive : 1;
#endif
};
struct{
unsigned value : 32;
};
} tStatus;
typedef enum
{
} tStatus_IfaceConstants;
virtual tStatus readStatus(tRioStatusCode *status) = 0;
virtual bool readStatus_SystemActive(tRioStatusCode *status) = 0;
virtual bool readStatus_PowerAlive(tRioStatusCode *status) = 0;
virtual unsigned short readStatus_SysDisableCount(tRioStatusCode *status) = 0;
virtual unsigned short readStatus_PowerDisableCount(tRioStatusCode *status) = 0;
typedef enum
{
} tCommand_IfaceConstants;
virtual void writeCommand(unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readCommand(tRioStatusCode *status) = 0;
typedef enum
{
} tChallenge_IfaceConstants;
virtual unsigned char readChallenge(tRioStatusCode *status) = 0;
typedef enum
{
} tActive_IfaceConstants;
virtual void writeActive(bool value, tRioStatusCode *status) = 0;
virtual bool readActive(tRioStatusCode *status) = 0;
typedef enum
{
} tTimer_IfaceConstants;
virtual unsigned int readTimer(tRioStatusCode *status) = 0;
typedef enum
{
} tForcedKills_IfaceConstants;
virtual unsigned short readForcedKills(tRioStatusCode *status) = 0;
private:
tSysWatchdog(const tSysWatchdog&);
void operator=(const tSysWatchdog&);
};
}
}
#endif // __nFRC_2017_17_0_2_SysWatchdog_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
// Do Not Edit... this file is generated!
#ifndef __nFRC_2017_17_0_2_SysWatchdog_h__
#define __nFRC_2017_17_0_2_SysWatchdog_h__
#include "../tSystem.h"
#include "../tSystemInterface.h"
namespace nFPGA
{
namespace nFRC_2017_17_0_2
{
class tSysWatchdog
{
public:
tSysWatchdog(){}
virtual ~tSysWatchdog(){}
virtual tSystemInterface* getSystemInterface() = 0;
static tSysWatchdog* create(tRioStatusCode *status);
typedef enum
{
kNumSystems = 1,
} tIfaceConstants;
typedef
union{
struct{
#ifdef __vxworks
unsigned SystemActive : 1;
unsigned PowerAlive : 1;
unsigned SysDisableCount : 15;
unsigned PowerDisableCount : 15;
#else
unsigned PowerDisableCount : 15;
unsigned SysDisableCount : 15;
unsigned PowerAlive : 1;
unsigned SystemActive : 1;
#endif
};
struct{
unsigned value : 32;
};
} tStatus;
typedef enum
{
} tStatus_IfaceConstants;
virtual tStatus readStatus(tRioStatusCode *status) = 0;
virtual bool readStatus_SystemActive(tRioStatusCode *status) = 0;
virtual bool readStatus_PowerAlive(tRioStatusCode *status) = 0;
virtual unsigned short readStatus_SysDisableCount(tRioStatusCode *status) = 0;
virtual unsigned short readStatus_PowerDisableCount(tRioStatusCode *status) = 0;
typedef enum
{
} tCommand_IfaceConstants;
virtual void writeCommand(unsigned short value, tRioStatusCode *status) = 0;
virtual unsigned short readCommand(tRioStatusCode *status) = 0;
typedef enum
{
} tChallenge_IfaceConstants;
virtual unsigned char readChallenge(tRioStatusCode *status) = 0;
typedef enum
{
} tActive_IfaceConstants;
virtual void writeActive(bool value, tRioStatusCode *status) = 0;
virtual bool readActive(tRioStatusCode *status) = 0;
typedef enum
{
} tTimer_IfaceConstants;
virtual unsigned int readTimer(tRioStatusCode *status) = 0;
typedef enum
{
} tForcedKills_IfaceConstants;
virtual unsigned short readForcedKills(tRioStatusCode *status) = 0;
private:
tSysWatchdog(const tSysWatchdog&);
void operator=(const tSysWatchdog&);
};
}
}
#endif // __nFRC_2017_17_0_2_SysWatchdog_h__

View File

@@ -1,42 +1,42 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __printFPGAVersion_h__
#define __printFPGAVersion_h__
namespace nFPGA
{
template<typename ttGlobal>
inline void printFPGAVersion(ttGlobal &global)
{
tRioStatusCode cleanStatus=0;
uint32_t hardwareGuid[4];
tSystemInterface &system = *global.getSystemInterface();
system.getHardwareFpgaSignature(hardwareGuid, &cleanStatus);
const uint32_t *softwareGuid = system.getExpectedFPGASignature();
printf("FPGA Hardware GUID: 0x");
for(int i=0; i<4; i++)
{
printf("%08X", hardwareGuid[i]);
}
printf("\n");
printf("FPGA Software GUID: 0x");
for(int i=0; i<4; i++)
{
printf("%08X", softwareGuid[i]);
}
printf("\n");
uint16_t fpgaHardwareVersion = global.readVersion(&cleanStatus);
uint16_t fpgaSoftwareVersion = system.getExpectedFPGAVersion();
printf("FPGA Hardware Version: %X\n", fpgaHardwareVersion);
printf("FPGA Software Version: %X\n", fpgaSoftwareVersion);
uint32_t fpgaHardwareRevision = global.readRevision(&cleanStatus);
uint32_t fpgaSoftwareRevision = system.getExpectedFPGARevision();
printf("FPGA Hardware Revision: %X.%X.%X\n", (fpgaHardwareRevision >> 20) & 0xFFF, (fpgaHardwareRevision >> 12) & 0xFF, fpgaHardwareRevision & 0xFFF);
printf("FPGA Software Revision: %X.%X.%X\n", (fpgaSoftwareRevision >> 20) & 0xFFF, (fpgaSoftwareRevision >> 12) & 0xFF, fpgaSoftwareRevision & 0xFFF);
}
}
#endif // __printFPGAVersion_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __printFPGAVersion_h__
#define __printFPGAVersion_h__
namespace nFPGA
{
template<typename ttGlobal>
inline void printFPGAVersion(ttGlobal &global)
{
tRioStatusCode cleanStatus=0;
uint32_t hardwareGuid[4];
tSystemInterface &system = *global.getSystemInterface();
system.getHardwareFpgaSignature(hardwareGuid, &cleanStatus);
const uint32_t *softwareGuid = system.getExpectedFPGASignature();
printf("FPGA Hardware GUID: 0x");
for(int i=0; i<4; i++)
{
printf("%08X", hardwareGuid[i]);
}
printf("\n");
printf("FPGA Software GUID: 0x");
for(int i=0; i<4; i++)
{
printf("%08X", softwareGuid[i]);
}
printf("\n");
uint16_t fpgaHardwareVersion = global.readVersion(&cleanStatus);
uint16_t fpgaSoftwareVersion = system.getExpectedFPGAVersion();
printf("FPGA Hardware Version: %X\n", fpgaHardwareVersion);
printf("FPGA Software Version: %X\n", fpgaSoftwareVersion);
uint32_t fpgaHardwareRevision = global.readRevision(&cleanStatus);
uint32_t fpgaSoftwareRevision = system.getExpectedFPGARevision();
printf("FPGA Hardware Revision: %X.%X.%X\n", (fpgaHardwareRevision >> 20) & 0xFFF, (fpgaHardwareRevision >> 12) & 0xFF, fpgaHardwareRevision & 0xFFF);
printf("FPGA Software Revision: %X.%X.%X\n", (fpgaSoftwareRevision >> 20) & 0xFFF, (fpgaSoftwareRevision >> 12) & 0xFF, fpgaSoftwareRevision & 0xFFF);
}
}
#endif // __printFPGAVersion_h__

View File

@@ -1,17 +1,17 @@
// Describes the information needed to configure a DMA channel.
// Copyright (c) National Instruments 2008. All Rights Reserved.
#include <stdint.h>
#ifndef __tDMAChannelDescriptor_h__
#define __tDMAChannelDescriptor_h__
struct tDMAChannelDescriptor
{
uint32_t channel;
uint32_t baseAddress;
uint32_t depth;
bool targetToHost;
};
#endif // __tDMAChannelDescriptor_h__
// Describes the information needed to configure a DMA channel.
// Copyright (c) National Instruments 2008. All Rights Reserved.
#include <stdint.h>
#ifndef __tDMAChannelDescriptor_h__
#define __tDMAChannelDescriptor_h__
struct tDMAChannelDescriptor
{
uint32_t channel;
uint32_t baseAddress;
uint32_t depth;
bool targetToHost;
};
#endif // __tDMAChannelDescriptor_h__

View File

@@ -1,41 +1,41 @@
// Class for handling DMA transfers.
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tDMAManager_h__
#define __tDMAManager_h__
#include "tSystem.h"
#include <stdint.h>
namespace nFPGA
{
class tDMAManager : public tSystem
{
public:
tDMAManager(uint32_t dmaChannel, uint32_t hostBufferSize, tRioStatusCode *status);
~tDMAManager();
void start(tRioStatusCode *status);
void stop(tRioStatusCode *status);
bool isStarted() {return _started;}
void read(
uint32_t* buf,
size_t num,
uint32_t timeout,
size_t* remaining,
tRioStatusCode *status);
void write(
uint32_t* buf,
size_t num,
uint32_t timeout,
size_t* remaining,
tRioStatusCode *status);
private:
bool _started;
uint32_t _dmaChannel;
uint32_t _hostBufferSize;
};
}
#endif // __tDMAManager_h__
// Class for handling DMA transfers.
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tDMAManager_h__
#define __tDMAManager_h__
#include "tSystem.h"
#include <stdint.h>
namespace nFPGA
{
class tDMAManager : public tSystem
{
public:
tDMAManager(uint32_t dmaChannel, uint32_t hostBufferSize, tRioStatusCode *status);
~tDMAManager();
void start(tRioStatusCode *status);
void stop(tRioStatusCode *status);
bool isStarted() {return _started;}
void read(
uint32_t* buf,
size_t num,
uint32_t timeout,
size_t* remaining,
tRioStatusCode *status);
void write(
uint32_t* buf,
size_t num,
uint32_t timeout,
size_t* remaining,
tRioStatusCode *status);
private:
bool _started;
uint32_t _dmaChannel;
uint32_t _hostBufferSize;
};
}
#endif // __tDMAManager_h__

View File

@@ -1,61 +1,61 @@
// Class for handling interrupts.
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tInterruptManager_h__
#define __tInterruptManager_h__
#include "tSystem.h"
namespace ni
{
namespace dsc
{
namespace osdep
{
class CriticalSection;
}
}
}
namespace nFPGA
{
typedef void (*tInterruptHandler)(uint32_t interruptAssertedMask, void *param);
class tInterruptManager : public tSystem
{
public:
tInterruptManager(uint32_t interruptMask, bool watcher, tRioStatusCode *status);
~tInterruptManager();
void registerHandler(tInterruptHandler handler, void *param, tRioStatusCode *status);
uint32_t watch(int32_t timeoutInMs, bool ignorePrevious, tRioStatusCode *status);
void enable(tRioStatusCode *status);
void disable(tRioStatusCode *status);
bool isEnabled(tRioStatusCode *status);
private:
class tInterruptThread;
friend class tInterruptThread;
void handler();
static int handlerWrapper(tInterruptManager *pInterrupt);
void acknowledge(tRioStatusCode *status);
void reserve(tRioStatusCode *status);
void unreserve(tRioStatusCode *status);
tInterruptHandler _handler;
uint32_t _interruptMask;
tInterruptThread *_thread;
NiFpga_IrqContext _rioContext;
bool _watcher;
bool _enabled;
void *_userParam;
// maintain the interrupts that are already dealt with.
static uint32_t _globalInterruptMask;
static ni::dsc::osdep::CriticalSection *_globalInterruptMaskSemaphore;
};
}
#endif // __tInterruptManager_h__
// Class for handling interrupts.
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tInterruptManager_h__
#define __tInterruptManager_h__
#include "tSystem.h"
namespace ni
{
namespace dsc
{
namespace osdep
{
class CriticalSection;
}
}
}
namespace nFPGA
{
typedef void (*tInterruptHandler)(uint32_t interruptAssertedMask, void *param);
class tInterruptManager : public tSystem
{
public:
tInterruptManager(uint32_t interruptMask, bool watcher, tRioStatusCode *status);
~tInterruptManager();
void registerHandler(tInterruptHandler handler, void *param, tRioStatusCode *status);
uint32_t watch(int32_t timeoutInMs, bool ignorePrevious, tRioStatusCode *status);
void enable(tRioStatusCode *status);
void disable(tRioStatusCode *status);
bool isEnabled(tRioStatusCode *status);
private:
class tInterruptThread;
friend class tInterruptThread;
void handler();
static int handlerWrapper(tInterruptManager *pInterrupt);
void acknowledge(tRioStatusCode *status);
void reserve(tRioStatusCode *status);
void unreserve(tRioStatusCode *status);
tInterruptHandler _handler;
uint32_t _interruptMask;
tInterruptThread *_thread;
NiFpga_IrqContext _rioContext;
bool _watcher;
bool _enabled;
void *_userParam;
// maintain the interrupts that are already dealt with.
static uint32_t _globalInterruptMask;
static ni::dsc::osdep::CriticalSection *_globalInterruptMaskSemaphore;
};
}
#endif // __tInterruptManager_h__

View File

@@ -1,48 +1,48 @@
// Base class for generated chip objects
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tSystem_h__
#define __tSystem_h__
#include "fpgainterfacecapi/NiFpga.h"
typedef NiFpga_Status tRioStatusCode;
#define FRC_FPGA_PRELOAD_BITFILE
typedef uint32_t NiFpga_Session;
namespace nFPGA
{
class tSystem
{
public:
tSystem(tRioStatusCode *status);
~tSystem();
void getFpgaGuid(uint32_t *guid_ptr, tRioStatusCode *status);
void reset(tRioStatusCode *status);
protected:
static NiFpga_Session _DeviceHandle;
#ifdef FRC_FPGA_PRELOAD_BITFILE
void NiFpga_SharedOpen_common(const char* bitfile);
NiFpga_Status NiFpga_SharedOpen(const char* bitfile,
const char* signature,
const char* resource,
uint32_t attribute,
NiFpga_Session* session);
NiFpga_Status NiFpgaLv_SharedOpen(const char* const bitfile,
const char* const apiSignature,
const char* const resource,
const uint32_t attribute,
NiFpga_Session* const session);
private:
static char *_FileName;
static char *_Bitfile;
#endif
};
}
#endif // __tSystem_h__
// Base class for generated chip objects
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tSystem_h__
#define __tSystem_h__
#include "fpgainterfacecapi/NiFpga.h"
typedef NiFpga_Status tRioStatusCode;
#define FRC_FPGA_PRELOAD_BITFILE
typedef uint32_t NiFpga_Session;
namespace nFPGA
{
class tSystem
{
public:
tSystem(tRioStatusCode *status);
~tSystem();
void getFpgaGuid(uint32_t *guid_ptr, tRioStatusCode *status);
void reset(tRioStatusCode *status);
protected:
static NiFpga_Session _DeviceHandle;
#ifdef FRC_FPGA_PRELOAD_BITFILE
void NiFpga_SharedOpen_common(const char* bitfile);
NiFpga_Status NiFpga_SharedOpen(const char* bitfile,
const char* signature,
const char* resource,
uint32_t attribute,
NiFpga_Session* session);
NiFpga_Status NiFpgaLv_SharedOpen(const char* const bitfile,
const char* const apiSignature,
const char* const resource,
const uint32_t attribute,
NiFpga_Session* const session);
private:
static char *_FileName;
static char *_Bitfile;
#endif
};
}
#endif // __tSystem_h__

View File

@@ -1,27 +1,27 @@
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tSystemInterface_h__
#define __tSystemInterface_h__
namespace nFPGA
{
class tSystemInterface
{
public:
tSystemInterface(){}
virtual ~tSystemInterface(){}
virtual const uint16_t getExpectedFPGAVersion()=0;
virtual const uint32_t getExpectedFPGARevision()=0;
virtual const uint32_t * const getExpectedFPGASignature()=0;
virtual void getHardwareFpgaSignature(uint32_t *guid_ptr, tRioStatusCode *status)=0;
virtual uint32_t getLVHandle(tRioStatusCode *status)=0;
virtual uint32_t getHandle()=0;
virtual void reset(tRioStatusCode *status)=0;
};
}
#endif // __tSystemInterface_h__
// Copyright (c) National Instruments 2008. All Rights Reserved.
#ifndef __tSystemInterface_h__
#define __tSystemInterface_h__
namespace nFPGA
{
class tSystemInterface
{
public:
tSystemInterface(){}
virtual ~tSystemInterface(){}
virtual const uint16_t getExpectedFPGAVersion()=0;
virtual const uint32_t getExpectedFPGARevision()=0;
virtual const uint32_t * const getExpectedFPGASignature()=0;
virtual void getHardwareFpgaSignature(uint32_t *guid_ptr, tRioStatusCode *status)=0;
virtual uint32_t getLVHandle(tRioStatusCode *status)=0;
virtual uint32_t getHandle()=0;
virtual void reset(tRioStatusCode *status)=0;
};
}
#endif // __tSystemInterface_h__

View File

@@ -14,8 +14,8 @@
#ifndef __FRC_COMM_H__
#define __FRC_COMM_H__
#ifdef WIN32
# include <vxWorks_compat.h>
#ifdef _WIN32
# include <windows.h>
#ifdef USE_THRIFT
# define EXPORT_FUNC
# else
@@ -33,7 +33,7 @@
#define ERR_FRCSystem_NetCommNotResponding -44049
#define ERR_FRCSystem_NoDSConnection -44018
#ifdef WIN32
#ifdef _WIN32
# define __DEPRECATED__ __declspec(deprecated)
#else
# define __DEPRECATED__ __attribute__((__deprecated__))
@@ -129,7 +129,7 @@ extern "C" {
int EXPORT_FUNC FRC_NetworkCommunication_sendError(int isError, int32_t errorCode, int isLVCode,
const char *details, const char *location, const char *callStack);
#ifdef WIN32
#ifdef _WIN32
void EXPORT_FUNC setNewDataSem(HANDLE);
#elif defined (__vxworks)
void EXPORT_FUNC setNewDataSem(SEM_ID);

View File

@@ -2,7 +2,7 @@
#ifndef __LoadOut_h__
#define __LoadOut_h__
#ifdef WIN32
#ifdef _WIN32
#include <vxWorks_compat.h>
#define EXPORT_FUNC __declspec(dllexport) __cdecl
#elif defined (__vxworks)

View File

@@ -2,7 +2,7 @@
#ifndef __UsageReporting_h__
#define __UsageReporting_h__
#ifdef WIN32
#ifdef _WIN32
#include <stdint.h>
#define EXPORT_FUNC __declspec(dllexport) __cdecl
#elif defined (__vxworks)
@@ -87,6 +87,7 @@ namespace nUsageReporting
kLanguage_CPlusPlus = 2,
kLanguage_Java = 3,
kLanguage_Python = 4,
kLanguage_DotNet = 5,
kCANPlugin_BlackJagBridge = 1,
kCANPlugin_2CAN = 2,

View File

@@ -1,16 +1,16 @@
#ifndef __I2C_LIB_H__
#define __I2C_LIB_H__
#ifdef __cplusplus
extern "C" {
#endif
int i2clib_open(const char *device);
void i2clib_close(int handle);
int i2clib_read(int handle, uint8_t dev_addr, char *recv_buf, int32_t recv_size);
int i2clib_write(int handle, uint8_t dev_addr, const char *send_buf, int32_t send_size);
int i2clib_writeread(int handle, uint8_t dev_addr, const char *send_buf, int32_t send_size, char *recv_buf, int32_t recv_size);
#ifdef __cplusplus
}
#endif
#ifndef __I2C_LIB_H__
#define __I2C_LIB_H__
#ifdef __cplusplus
extern "C" {
#endif
int i2clib_open(const char *device);
void i2clib_close(int handle);
int i2clib_read(int handle, uint8_t dev_addr, char *recv_buf, int32_t recv_size);
int i2clib_write(int handle, uint8_t dev_addr, const char *send_buf, int32_t send_size);
int i2clib_writeread(int handle, uint8_t dev_addr, const char *send_buf, int32_t send_size, char *recv_buf, int32_t recv_size);
#ifdef __cplusplus
}
#endif
#endif /* __I2C_LIB_H__ */

View File

@@ -1,19 +1,19 @@
#ifndef __SPI_LIB_H__
#define __SPI_LIB_H__
#ifdef __cplusplus
extern "C" {
#endif
int spilib_open(const char *device);
void spilib_close(int handle);
int spilib_setspeed(int handle, uint32_t speed);
int spilib_setbitsperword(int handle, uint8_t bpw);
int spilib_setopts(int handle, int msb_first, int sample_on_trailing, int clk_idle_high);
int spilib_read(int handle, char *recv_buf, int32_t size);
int spilib_write(int handle, const char *send_buf, int32_t size);
int spilib_writeread(int handle, const char *send_buf, char *recv_buf, int32_t size);
#ifdef __cplusplus
}
#endif
#ifndef __SPI_LIB_H__
#define __SPI_LIB_H__
#ifdef __cplusplus
extern "C" {
#endif
int spilib_open(const char *device);
void spilib_close(int handle);
int spilib_setspeed(int handle, uint32_t speed);
int spilib_setbitsperword(int handle, uint8_t bpw);
int spilib_setopts(int handle, int msb_first, int sample_on_trailing, int clk_idle_high);
int spilib_read(int handle, char *recv_buf, int32_t size);
int spilib_write(int handle, const char *send_buf, int32_t size);
int spilib_writeread(int handle, const char *send_buf, char *recv_buf, int32_t size);
#ifdef __cplusplus
}
#endif
#endif /* __SPI_LIB_H__ */

View File

@@ -0,0 +1,24 @@
@echo off
setlocal enabledelayedexpansion
mkdir tmp
for %%F in (lib*.so.*) do IF /i "%%~xF" NEQ ".so" (
set libout=%%~nF
del !libout!
echo OUTPUT_FORMAT^(elf32-littlearm^)> tmp\!libout!
echo GROUP ^( %%F ^)>> tmp\!libout!
)
REM Do a second round from the temp folder
cd tmp
for %%F in (lib*.so.*) do IF /i "%%~xF" NEQ ".so" (
set libout=%%~nF
del !libout!
echo OUTPUT_FORMAT^(elf32-littlearm^)> !libout!
echo GROUP ^( %%F ^)>> !libout!
)
cd ..

Some files were not shown because too many files have changed in this diff Show More