Skip to content

Commit

Permalink
Merge pull request #12 from mac-can/development
Browse files Browse the repository at this point in the history
Release Candidate 1 for Version 0.2.5
  • Loading branch information
mac-can authored Aug 24, 2023
2 parents d42365c + 257b4aa commit fa172d5
Show file tree
Hide file tree
Showing 106 changed files with 37,431 additions and 1,970 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,15 @@ Utilities/can_moni/.objects
Utilities/can_moni/can_moni
Utilities/can_test/.objects
Utilities/can_test/can_test
Tests/CANAPI/.objects
Tests/CANAPI/pcb_testing
Deployment.pdf
checker.txt
Binaries
Includes
Debug
.objects
.vscode
.svn
null.d
*.log
50 changes: 26 additions & 24 deletions Deployment.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
### macOS® Wrapper Library for PCAN-USB Interfaces from Peak-System

_Copyright © 2005-2010, 2012-2022 Uwe Vogt, UV Software, Berlin ([email protected])_ \
_Copyright © 2005-2010, 2012-2023 Uwe Vogt, UV Software, Berlin ([email protected])_ \
_All rights reserved._

# Deployment

## Release Candidate
## Create the Release Candidate

### Precondition

- **_All changes are made exclusively on a feature branch!_**

### Preparation

1. Update the CAN API V3 sources in `$(PROJROOT)/Sources/CANAPI` from SVN repo
1. Update the PCBUSB header file in `$(PROJROOT)/Sources/PCANBasic` from MacCAN´s website
when required and commit them with commit comment:
- `Update PCBUSB header file (version `_n_`.`_n_`.`_n_`)` \
`- `_list of major changes (optional)_
2. Update the CAN API V3 sources in `$(PROJROOT)/Sources/CANAPI` from SVN repo
when required and commit them with commit comment:
- `Update CAN API V3 sources to rev. `_nnn_ \
`- `_list of major changes (optional)_
2. Update the PCANBasic header file in `$(PROJROOT)/Sources/PCANBasic` from PEAK´s website
3. Update the CAN API V3 testing sources in `$(PROJROOT)/Tests/CANAPI` from SVN repo
when required and commit them with commit comment:
- `Update PCBUSB header file (version `_n_`.`_n_`.`_n_`)` \
- `Update CAN API V3 testing sources to rev. `_nnn_ \
`- `_list of major changes (optional)_
2. Check and update the version and date information in the following files:
4. Check and update the version and date information in the following files:
- `$(PROJROOT)/Sources/PeakCAN.h`
- `$(PROJROOT)/Sources/PeakCAN.cpp`
- `$(PROJROOT)/Sources/Wrapper\can_api.cpp`
Expand Down Expand Up @@ -56,7 +60,7 @@ _All rights reserved._
6. Try out the utilities with different options.
- _**There should be no crash, hangup, or any other error.**_
- _If there is an error then fix it or create an issue in the repo._
7. Build and try out the examples (repair them when necessary);
7. Build and try out the examples (repair them if necessary);
- `$(PROJROOT)/Examples/C++`
- `$(PROJROOT)/Examples/Python`

Expand All @@ -67,52 +71,50 @@ _All rights reserved._
3. Create a pull request and name it somehow like '**Release Candidate _n_ for**...'.
4. Review the changes and merge the feature branch into the default branch.

## Release Tag
## Create the Release Tag

### Preparation

1. Pull or clone the default branch on all development systems.
2. Double check all version numbers again (see above).
3. Run the `Makefile` in the project root directory:
- `uv-pc013mac:~ eris$ cd $(PROJROOT)`
- `uv-pc013mac:PCBUSB eris$ make pristine`
- `uv-pc013mac:PCBUSB eris$ make all`
- `uv-pc013mac:PCBUSB eris$ make test`
- `uv-pc013mac:PCBUSB eris$ sudo make install`
4. Update and build the CAN API V3 Loader Library:
- `uv-pc013mac:Library eris$ make clean`
- `uv-pc013mac:Library eris$ make all`
- `uv-pc013mac:Library eris$ sudo make install`
5. Update and build the CAN API V3 GoogleTest:
- `uv-pc013mac:macOS eris$ make clean`
- `uv-pc013mac:macOS eris$ make all`
6. Run the CAN API V3 GoogleTest with two PCAN-USB devices:
- `uv-pc013mac:macOS eris$ ./can_testing --can_path=/Users/eris/Projects/CAN/API/json/ --can_dut1=PCAN-USB1 --can_dut2=PCAN-USB2 --gtest_output=xml:TestReport_PCAN-USB.xml --gtest_filter=-SmokeTest.* --sunnyday_traffic=2048` [...]
4. Build the CAN API V3 GoogleTest program:
- `uv-pc013mac:~ eris$ cd $(PROJROOT)/Tests/CANAPI`
- `uv-pc013mac:CANAPI eris$ make pristine`
- `uv-pc013mac:CANAPI eris$ make all`
5. Run the CAN API V3 GoogleTest with two PCAN-USB device:
- `uv-pc013mac:CANAPI eris$./pcb_testing --can_dut1=PCAN-USB1 --can_dut2=PCAN-USB2 --gtest_output=xml:TestReport_PCAN-USB.xml --run_all=YES --smoketest_frames=100000` [...]
- _If there is any error then **stop** here or create an issue for each error in the repo._
- Copy the test report into the binaries directory `$(PROJROOT)/Binaries`.
7. Run the CAN API V3 GoogleTest with two PCAN-USB devices FD:
- `uv-pc013mac:macOS eris$ ./can_testing --can_path=/Users/eris/Projects/CAN/API/json/ --can_dut1=PCAN-USB1 --can_dut2=PCAN-USB2 --can_mode=FDF+BRS --can_bitrate=DEFAULT --gtest_output=xml:TestReport_PCAN-USB_FD.xml --gtest_filter=-SmokeTest.* --sunnyday_traffic=2048` [...]
6. Run the CAN API V3 GoogleTest with two PCAN-USB FD device:
- `uv-pc013mac:CANAPI eris$./pcb_testing --can_dut1=PCAN-USB3 --can_dut2=PCAN-USB4 --gtest_output=xml:TestReport_PCAN-USB_FD.xml --run_all=YES --smoketest_frames=100000` [...]
- _If there is any error then **stop** here or create an issue for each error in the repo._
- Copy the test report into the binaries directory `$(PROJROOT)/Binaries`.
8. Pack the artifacts into a .zip-archive, e.g. `artifacts.zip`:
7. Pack the artifacts into a .zip-archive, e.g. `artifacts.zip`:
- `$(PROJROOT)/Binaries/*.*`
- `$(PROJROOT)/Includes/*.*`
- `$(PROJROOT)/README.md`
- `$(PROJROOT)/LICENSE`
9. Double check and update the [`README.md`](https://github.com/mac-can/PCANBasic-Wrapper/blob/main/README.md) on GitHub (or insert just a blank).
8. Double check and update the [`README.md`](https://github.com/mac-can/PCANBasic-Wrapper/blob/main/README.md) on GitHub (or insert just a blank).

### Procedure

1. Click on `Draft a new release` in the [GitHub](https://github.com/mac-can/PCANBasic-Wrapper) repo.
2. Fill out all required fields:
- Tag version: e.g `v0.2.1` (cf. semantic versioning)
- Tag version: e.g `v0.2.5` (cf. semantic versioning)
- Target: `main` (default branch)
- Release title: e.g. `Release of June 3, 2021`
- Release title: e.g. `Release of August 24, 2023`
- Change-log: list all major changes, e.g. from commit comments
- Assets: drag and drop the artifacts archive (see above)
3. Click on `Publish release`.
4. That´s all folks!

### Announcement
### Announce the new Release

1. Create a new post with the change-log in the `mac-can.github.io` repo.
2. Update the PCBUSB wrapper page in the `mac-can.github.io` repo.
Expand Down
7 changes: 5 additions & 2 deletions Libraries/CANAPI/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# CAN Interface API, Version 3 (for PEAK PCAN-USB Interfaces)
#
# Copyright (c) 2012-2022 Uwe Vogt, UV Software, Berlin ([email protected])
# Copyright (c) 2012-2023 Uwe Vogt, UV Software, Berlin ([email protected])
# All rights reserved.
#
# This library is part of PCBUSB-Wrapper.
Expand Down Expand Up @@ -65,7 +65,7 @@ LIBRARY = libUVCANPCB

MAJOR = 0
MINOR = 2
PATCH = 4
PATCH = 5

VERSION = $(MAJOR).$(MINOR).$(PATCH)
TARGET = $(LIBRARY).$(VERSION).dylib
Expand Down Expand Up @@ -146,9 +146,12 @@ bindir:
incdir:
@mkdir -p $(INCDIR)
@cp $(SOURCE_DIR)/PeakCAN_Defines.h $(INCDIR)
@cp $(SOURCE_DIR)/PeakCAN_Defaults.h $(INCDIR)
@cp $(CANAPI_DIR)/can_api.h $(INCDIR)
@cp $(CANAPI_DIR)/can_btr.h $(INCDIR)
@cp $(CANAPI_DIR)/CANAPI_Types.h $(INCDIR)
@cp $(CANAPI_DIR)/CANAPI_Defines.h $(INCDIR)
@cp $(CANAPI_DIR)/CANBTR_Defaults.h $(INCDIR)

clean:
$(RM) $(TARGET) $(STATIC) $(OUTDIR)/*.o $(OUTDIR)/*.d
Expand Down
6 changes: 4 additions & 2 deletions Libraries/PeakCAN/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# CAN Interface API, Version 3 (for PEAK PCAN-USB Interfaces)
#
# Copyright (c) 2012-2022 Uwe Vogt, UV Software, Berlin ([email protected])
# Copyright (c) 2012-2023 Uwe Vogt, UV Software, Berlin ([email protected])
# All rights reserved.
#
# This library is part of PCBUSB-Wrapper.
Expand Down Expand Up @@ -65,7 +65,7 @@ LIBRARY = libPeakCAN

MAJOR = 0
MINOR = 2
PATCH = 4
PATCH = 5

VERSION = $(MAJOR).$(MINOR).$(PATCH)
TARGET = $(LIBRARY).$(VERSION).dylib
Expand Down Expand Up @@ -147,9 +147,11 @@ incdir:
@mkdir -p $(INCDIR)
@cp $(SOURCE_DIR)/PeakCAN.h $(INCDIR)
@cp $(SOURCE_DIR)/PeakCAN_Defines.h $(INCDIR)
@cp $(SOURCE_DIR)/PeakCAN_Defaults.h $(INCDIR)
@cp $(CANAPI_DIR)/CANAPI.h $(INCDIR)
@cp $(CANAPI_DIR)/CANAPI_Types.h $(INCDIR)
@cp $(CANAPI_DIR)/CANAPI_Defines.h $(INCDIR)
@cp $(CANAPI_DIR)/CANBTR_Defaults.h $(INCDIR)

clean:
$(RM) $(TARGET) $(STATIC) $(OUTDIR)/*.o $(OUTDIR)/*.d
Expand Down
10 changes: 9 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# CAN Interface API, Version 3 (for PEAK PCAN-USB Interfaces)
#
# Copyright (c) 2012-2022 Uwe Vogt, UV Software, Berlin ([email protected])
# Copyright (c) 2012-2023 Uwe Vogt, UV Software, Berlin ([email protected])
# All rights reserved.
#
# This file is part of PCBUSB-Wrapper.
Expand Down Expand Up @@ -52,27 +52,31 @@ all:
$(MAKE) -C Libraries/PeakCAN $@
$(MAKE) -C Utilities/can_test $@
$(MAKE) -C Utilities/can_moni $@
$(MAKE) -C Tests/CANAPI $@

clean:
$(MAKE) -C Trial $@
$(MAKE) -C Libraries/CANAPI $@
$(MAKE) -C Libraries/PeakCAN $@
$(MAKE) -C Utilities/can_test $@
$(MAKE) -C Utilities/can_moni $@
$(MAKE) -C Tests/CANAPI $@

pristine:
$(MAKE) -C Trial $@
$(MAKE) -C Libraries/CANAPI $@
$(MAKE) -C Libraries/PeakCAN $@
$(MAKE) -C Utilities/can_test $@
$(MAKE) -C Utilities/can_moni $@
$(MAKE) -C Tests/CANAPI $@

install:
# $(MAKE) -C Trial $@
$(MAKE) -C Libraries/CANAPI $@
$(MAKE) -C Libraries/PeakCAN $@
# $(MAKE) -C Utilities/can_test $@
# $(MAKE) -C Utilities/can_moni $@
# $(MAKE) -C Tests/CANAPI $@

test:
$(MAKE) -C Trial $@
Expand All @@ -83,6 +87,10 @@ check:
xctest:
$(MAKE) -C Trial $@

smoketest:
$(MAKE) -C Tests/CANAPI clean all
./Tests/CANAPI/pcb_testing --gtest_filter="SmokeTest.*"

build_no:
@./build_no.sh
@cat Sources/build_no.h
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
### macOS® Wrapper Library for PCAN-USB Interfaces from Peak-System

_Copyright© 2005-2010, 2012-2022 Uwe Vogt, UV Software, Berlin ([email protected])_
_Copyright© 2005-2010, 2012-2023 Uwe Vogt, UV Software, Berlin ([email protected])_

# CAN API V3 for PCAN-USB Interfaces

Expand Down Expand Up @@ -120,15 +120,15 @@ Type `can_test --help` to display all program options.
### Development Environment
#### macOS Monterey
#### macOS Ventura
- macOS Monterey (12.5) on a Mac mini (M1, 2020)
- Apple clang version 13.1.6 (clang-1316.0.21.2.5)
- Xcode Version 13.4.1 (13F100)
- macOS Ventura (13.4.1) on a Mac mini (M1, 2020)
- Apple clang version 14.0.3 (clang-1403.0.22.14.1)
- Xcode Version 14.3.1 (14E300c)
#### macOS Big Sur
- macOS Big Sur (11.6.8) on a MacBook Pro (2019)
- macOS Big Sur (11.7.9) on a MacBook Pro (2019)
- Apple clang version 13.0.0 (clang-1300.0.29.30)
- Xcode Version 13.2.1 (13C100)
Expand All @@ -140,7 +140,7 @@ Type `can_test --help` to display all program options.
### Required PCBUSB Library
- `libPCBUSB.x.y.dylib` - Version 0.10 or later _(Latest is Greatest!)_
- `libPCBUSB.x.y.dylib` - Version 0.9 or later _(Latest is Greatest!)_
### Testing
Expand Down
2 changes: 1 addition & 1 deletion Sources/CANAPI/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
.svn/
.svn
# we don't use the JSON files yet
can_dev.?
16 changes: 8 additions & 8 deletions Sources/CANAPI/CANAPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
//
// CAN Interface API, Version 3 (Interface Definition)
//
// Copyright (c) 2004-2022 Uwe Vogt, UV Software, Berlin ([email protected])
// Copyright (c) 2004-2023 Uwe Vogt, UV Software, Berlin ([email protected])
// All rights reserved.
//
// This file is part of CAN API V3.
Expand Down Expand Up @@ -73,9 +73,9 @@
/// zero to compile your program with the CAN API source files or to
/// link your program with the static library at compile-time.
///
/// \author $Author: makemake $
/// \author $Author: haumea $
//
/// \version $Rev: 1033 $
/// \version $Rev: 1143 $
//
/// \defgroup can_api CAN Interface API, Version 3
/// \{
Expand Down Expand Up @@ -155,7 +155,7 @@ class CANCPP CCanApi {
MessageLost = CANERR_MSG_LST, ///< message lost
TransmitterBusy = CANERR_TX_BUSY, ///< transmitter busy
ReceiverEmpty = CANERR_RX_EMPTY, ///< receiver empty
ErrorFrame = CANERR_ERR_FRAME, ///< error frame
QueueOverrun = CANERR_QUE_OVR, ///< queue overrun
Timeout = CANERR_TIMEOUT, ///< timed out
ResourceError = CANERR_RESOURCE, ///< resource allocation
InvalidBaudrate = CANERR_BAUDRATE, ///< illegal baudrate
Expand Down Expand Up @@ -440,8 +440,8 @@ class CANCPP CCanApi {
/// \{
public:
static CANAPI_Return_t MapIndex2Bitrate(int32_t index, CANAPI_Bitrate_t &bitrate);
static CANAPI_Return_t MapString2Bitrate(const char *string, CANAPI_Bitrate_t &bitrate);
static CANAPI_Return_t MapBitrate2String(CANAPI_Bitrate_t bitrate, char *string, size_t length);
static CANAPI_Return_t MapString2Bitrate(const char *string, CANAPI_Bitrate_t &bitrate, bool &data, bool &sam);
static CANAPI_Return_t MapBitrate2String(CANAPI_Bitrate_t bitrate, char *string, size_t length, bool data = false, bool sam = false);
static CANAPI_Return_t MapBitrate2Speed(CANAPI_Bitrate_t bitrate, CANAPI_BusSpeed_t &speed);
/// \}

Expand All @@ -457,7 +457,7 @@ class CANCPP CCanApi {
0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 8U, 8U, 8U, 8U, 8U, 8U, 8U
#endif
};
return dlc_table[dlc & 0xFU];
return dlc_table[(dlc < 16U) ? dlc : 15U];
}
static uint8_t Len2Dlc(uint8_t len) {
#if (OPTION_CAN_2_0_ONLY == 0)
Expand All @@ -478,4 +478,4 @@ class CANCPP CCanApi {
/// \}
#endif // CANAPI_H_INCLUDED
/// \}
// $Id: CANAPI.h 1033 2022-01-11 19:58:04Z makemake $ Copyright (c) UV Software //
// $Id: CANAPI.h 1143 2023-08-13 17:50:24Z haumea $ Copyright (c) UV Software //
Loading

0 comments on commit fa172d5

Please sign in to comment.