mirror of
https://github.com/preble/libpinproc
synced 2026-02-24 18:25:23 +01:00
Merge branch 'master' of git@github.com:preble/P-ROC
This commit is contained in:
@@ -8,7 +8,8 @@ Library for Gerry Stellenberg's [P-ROC](http://pinballcontrollers.com/) (Pinball
|
|||||||
|
|
||||||
libpinproc requires:
|
libpinproc requires:
|
||||||
|
|
||||||
- [libusb-0.1.12](http://libusb.wiki.sourceforge.net/): Install with the default /usr/local prefix.
|
- [libusb-0.1.12](http://libusb.wiki.sourceforge.net/): Install with the default /usr/local prefix. Version 0.1.12 has been tested on Mac and Linux. Mac users: If you want to use libpinproc under Cocoa or pygame, you may wish to try libusb 1.0. See below.
|
||||||
|
|
||||||
- [libftdi-0.16](http://www.intra2net.com/en/developer/libftdi/): Install with the default /usr/local prefix.
|
- [libftdi-0.16](http://www.intra2net.com/en/developer/libftdi/): Install with the default /usr/local prefix.
|
||||||
|
|
||||||
The pinproctest example requires [yaml-cpp](http://code.google.com/p/yaml-cpp/). Follow the build instructions, creating the build subdirectory. After building, from the main source directory, run the following commands to manually install it:
|
The pinproctest example requires [yaml-cpp](http://code.google.com/p/yaml-cpp/). Follow the build instructions, creating the build subdirectory. After building, from the main source directory, run the following commands to manually install it:
|
||||||
@@ -17,6 +18,14 @@ The pinproctest example requires [yaml-cpp](http://code.google.com/p/yaml-cpp/).
|
|||||||
sudo mkdir /usr/local/include/yaml-cpp
|
sudo mkdir /usr/local/include/yaml-cpp
|
||||||
sudo cp include/*.h /usr/local/include/yaml-cpp/
|
sudo cp include/*.h /usr/local/include/yaml-cpp/
|
||||||
|
|
||||||
|
##### libusb-1.0 and libusb-compat
|
||||||
|
|
||||||
|
Version 1.0.2 does not work out of the box since libftdi is written against libusb-0.1. You can use the libusb-compat-0.1.2 project, however, which creates a library that provides the older libusb interface. Because Macs do not come with pkg-config, you may need to run configure for libusb-compat as follows:
|
||||||
|
|
||||||
|
./configure LIBUSB_1_0_CFLAGS=-I/usr/local/include/libusb-1.0 LIBUSB_1_0_LIBS="-L/usr/local/lib -lusb-1.0"
|
||||||
|
|
||||||
|
Note that libusb-1.0 must have been built and installed prior to this step. This also assumes that you installed libusb-1.0 with the default /usr/local prefix.
|
||||||
|
|
||||||
#### Building with CMake
|
#### Building with CMake
|
||||||
|
|
||||||
Download and install [CMake](http://www.cmake.org/cmake/resources/software.html). Then:
|
Download and install [CMake](http://www.cmake.org/cmake/resources/software.html). Then:
|
||||||
|
|||||||
@@ -11,17 +11,67 @@ PRBumpers:
|
|||||||
- slingR
|
- slingR
|
||||||
PRSwitches:
|
PRSwitches:
|
||||||
flipperLwR:
|
flipperLwR:
|
||||||
number: 1
|
number: SF2
|
||||||
flipperLwL:
|
flipperLwL:
|
||||||
number: 3
|
number: SF4
|
||||||
flipperUpR:
|
flipperUpR:
|
||||||
number: 5
|
number: SF6
|
||||||
flipperUpL:
|
flipperUpL:
|
||||||
number: 7
|
number: SF8
|
||||||
|
fireL:
|
||||||
|
number: S11
|
||||||
|
fireR:
|
||||||
|
number: S12
|
||||||
|
startButton:
|
||||||
|
number: S13
|
||||||
|
shooterL:
|
||||||
|
number: S15
|
||||||
|
subwayEnter1:
|
||||||
|
number: S37
|
||||||
|
subwayEnter2:
|
||||||
|
number: S38
|
||||||
|
shooterR:
|
||||||
|
number: S41
|
||||||
|
buyIn:
|
||||||
|
number: S31
|
||||||
|
ballShooterR:
|
||||||
|
number: S41
|
||||||
|
superGame:
|
||||||
|
number: S44
|
||||||
slingL:
|
slingL:
|
||||||
number: 96
|
number: S51
|
||||||
slingR:
|
slingR:
|
||||||
number: 97
|
number: S52
|
||||||
|
captiveBall2:
|
||||||
|
number: S53
|
||||||
|
dropTargetJ:
|
||||||
|
number: S54
|
||||||
|
dropTargetU:
|
||||||
|
number: S55
|
||||||
|
dropTargetD:
|
||||||
|
number: S56
|
||||||
|
dropTargetG:
|
||||||
|
number: S57
|
||||||
|
dropTargetE:
|
||||||
|
number: S58
|
||||||
|
popperL:
|
||||||
|
number: S73
|
||||||
|
popperR:
|
||||||
|
number: S74
|
||||||
|
trough1:
|
||||||
|
number: S81
|
||||||
|
trough2:
|
||||||
|
number: S82
|
||||||
|
trough3:
|
||||||
|
number: S83
|
||||||
|
trough4:
|
||||||
|
number: S84
|
||||||
|
trough5:
|
||||||
|
number: S85
|
||||||
|
trough6:
|
||||||
|
number: S86
|
||||||
|
troughTop:
|
||||||
|
number: S87
|
||||||
PRCoils:
|
PRCoils:
|
||||||
flipperLwRMain:
|
flipperLwRMain:
|
||||||
number: 32
|
number: 32
|
||||||
@@ -39,7 +89,46 @@ PRCoils:
|
|||||||
number: 38
|
number: 38
|
||||||
flipperUpLHold:
|
flipperUpLHold:
|
||||||
number: 39
|
number: 39
|
||||||
|
popperL:
|
||||||
|
number: C02
|
||||||
|
popperR:
|
||||||
|
number: C03
|
||||||
|
resetDropTarget:
|
||||||
|
number: C05
|
||||||
|
shooterR:
|
||||||
|
number: C08
|
||||||
|
shooterL:
|
||||||
|
number: C09
|
||||||
|
trough:
|
||||||
|
number: C13
|
||||||
slingL:
|
slingL:
|
||||||
number: 54
|
number: C15
|
||||||
slingR:
|
slingR:
|
||||||
number: 55
|
number: C16
|
||||||
|
PRLamps:
|
||||||
|
buyIn:
|
||||||
|
number: L38
|
||||||
|
dropTargetJ:
|
||||||
|
number: L71
|
||||||
|
dropTargetU:
|
||||||
|
number: L72
|
||||||
|
dropTargetD:
|
||||||
|
number: L73
|
||||||
|
dropTargetG:
|
||||||
|
number: L74
|
||||||
|
dropTargetE:
|
||||||
|
number: L75
|
||||||
|
superGame:
|
||||||
|
number: L87
|
||||||
|
startButton:
|
||||||
|
number: L88
|
||||||
|
gi01:
|
||||||
|
number: G01
|
||||||
|
gi02:
|
||||||
|
number: G02
|
||||||
|
gi03:
|
||||||
|
number: G03
|
||||||
|
gi04:
|
||||||
|
number: G04
|
||||||
|
gi05:
|
||||||
|
number: G05
|
||||||
@@ -22,6 +22,24 @@ PRSwitches:
|
|||||||
number: S34
|
number: S34
|
||||||
slingR:
|
slingR:
|
||||||
number: S35
|
number: S35
|
||||||
|
outhole:
|
||||||
|
number: S18
|
||||||
|
troughFarLeft:
|
||||||
|
number: S25
|
||||||
|
troughLeft:
|
||||||
|
number: S17
|
||||||
|
troughMiddle:
|
||||||
|
number: S16
|
||||||
|
troughRight:
|
||||||
|
number: S15
|
||||||
|
shooterLane:
|
||||||
|
number: S27
|
||||||
|
startButton:
|
||||||
|
number: S13
|
||||||
|
rocketKickout:
|
||||||
|
number: S28
|
||||||
|
slotKickout:
|
||||||
|
number: S58
|
||||||
PRCoils:
|
PRCoils:
|
||||||
flipperLwRMain:
|
flipperLwRMain:
|
||||||
number: 32
|
number: 32
|
||||||
@@ -52,5 +70,7 @@ PRCoils:
|
|||||||
ballRelease:
|
ballRelease:
|
||||||
number: C09
|
number: C09
|
||||||
PRLamps:
|
PRLamps:
|
||||||
|
startButton:
|
||||||
|
number: L88
|
||||||
doorTheCamera:
|
doorTheCamera:
|
||||||
number: L11
|
number: L11
|
||||||
@@ -770,7 +770,7 @@ PRResult PRDevice::PrepareWriteData(uint32_t * words, int32_t numWords)
|
|||||||
// words will be too many, flush the currently prepared words to the P-ROC now.
|
// words will be too many, flush the currently prepared words to the P-ROC now.
|
||||||
if (numPreparedWriteWords + numWords > maxWriteWords)
|
if (numPreparedWriteWords + numWords > maxWriteWords)
|
||||||
{
|
{
|
||||||
if (FlushWriteData() == kPRFailure);
|
if (FlushWriteData() == kPRFailure)
|
||||||
return kPRFailure;
|
return kPRFailure;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -830,13 +830,15 @@ PRResult PRDevice::WriteData(uint32_t * words, int32_t numWords)
|
|||||||
|
|
||||||
PRResult PRDevice::WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
PRResult PRDevice::WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
||||||
{
|
{
|
||||||
|
PRResult res;
|
||||||
uint32_t * buffer;
|
uint32_t * buffer;
|
||||||
|
|
||||||
buffer = (uint32_t *)malloc((numWriteWords * 4) + 1);
|
buffer = (uint32_t *)malloc((numWriteWords * 4) + 1);
|
||||||
buffer[0] = CreateBurstCommand(moduleSelect, startingAddr, numWriteWords);
|
buffer[0] = CreateBurstCommand(moduleSelect, startingAddr, numWriteWords);
|
||||||
memcpy(buffer+1, writeBuffer, numWriteWords * 4);
|
memcpy(buffer+1, writeBuffer, numWriteWords * 4);
|
||||||
WriteData(buffer, numWriteWords + 1);
|
res = WriteData(buffer, numWriteWords + 1);
|
||||||
free (buffer);
|
free (buffer);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRResult PRDevice::ReadDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer)
|
PRResult PRDevice::ReadDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer)
|
||||||
|
|||||||
Reference in New Issue
Block a user