Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modify for windows #47

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -35,7 +35,7 @@ target_include_directories(${ISO22133_TARGET} PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

target_link_libraries(${ISO22133_TARGET} m)
#target_link_libraries(${ISO22133_TARGET} m) #library not existing on windows?

set_property(TARGET ${ISO22133_TARGET} PROPERTY
PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/iso22133.h
2 changes: 1 addition & 1 deletion include/header.h
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ typedef struct {
} HeaderType;
#pragma pack(pop)

enum ISOMessageReturnValue decodeISOHeader(const char *MessageBuffer, const size_t length,
enum ISOMessageReturnValue ISO22133_API decodeISOHeader(const char *MessageBuffer, const size_t length,
HeaderType * HeaderData, const char debug);

HeaderType buildISOHeader(enum ISOMessageID id, const MessageHeaderType *input, uint32_t messageLength, const char debug);
1 change: 1 addition & 0 deletions include/osem.h
Original file line number Diff line number Diff line change
@@ -56,6 +56,7 @@ typedef struct {
/*! OSEM ID association struct */
typedef struct {
// TODO
uint32_t a; // Compiling empty struct threw an error
} OSEMIDAssociationType;

/*! OSEM message */
4 changes: 4 additions & 0 deletions include/timeconversions.h
Original file line number Diff line number Diff line change
@@ -3,7 +3,11 @@
extern "C" {
#endif
#include <stdint.h>
#if defined __linux || defined __APPLE__
#include <sys/time.h>
#else
#include "winsock.h"
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To get "timeval" structure. Note that long is likely not a good representation for portability between windows and linux

#endif

// Time functions
int8_t setToGPStime(struct timeval *time, const uint16_t GPSweek, const uint32_t GPSqmsOfWeek);
81 changes: 41 additions & 40 deletions iso22133.c
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include <time.h>

@@ -582,7 +583,7 @@ enum ISOMessageID getISOMessageType(const char *messageData, const size_t length
* \param debug Flag for enabling debugging
* \return number of bytes written to the data buffer, or -1 if an error occurred
*/
ssize_t encodeSTRTMessage(const MessageHeaderType *inputHeader, const StartMessageType* startData, char *strtDataBuffer,
size_t encodeSTRTMessage(const MessageHeaderType *inputHeader, const StartMessageType* startData, char *strtDataBuffer,
const size_t bufferLength, const char debug) {
STRTType STRTData;

@@ -644,7 +645,7 @@ ssize_t encodeSTRTMessage(const MessageHeaderType *inputHeader, const StartMessa
* \param debug Flag for enabling of debugging
* \return Number of bytes decoded, or negative value according to ::ISOMessageReturnValue
*/
ssize_t decodeSTRTMessage(
size_t decodeSTRTMessage(
const char *strtDataBuffer,
const size_t bufferLength,
const struct timeval* currentTime,
@@ -655,7 +656,7 @@ ssize_t decodeSTRTMessage(
const char *p = strtDataBuffer;
const uint16_t ExpectedSTRTStructSize = (uint16_t) (sizeof (STRTData) - sizeof (STRTData.header)
- sizeof (STRTData.footer.Crc));
ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;

if (startData == NULL || strtDataBuffer == NULL) {
errno = EINVAL;
@@ -825,7 +826,7 @@ enum ISOMessageReturnValue convertSTRTToHostRepresentation(
* \param debug Flag for enabling debugging
* \return Number of bytes written or -1 in case of an error
*/
ssize_t encodeHEABMessage(const MessageHeaderType *inputHeader, const struct timeval *heabTime, const enum ControlCenterStatusType status,
size_t encodeHEABMessage(const MessageHeaderType *inputHeader, const struct timeval *heabTime, const enum ControlCenterStatusType status,
char *heabDataBuffer, const size_t bufferLength, const char debug) {

HEABType HEABData;
@@ -889,7 +890,7 @@ ssize_t encodeHEABMessage(const MessageHeaderType *inputHeader, const struct tim
* \param debug Flag for enabling of debugging
* \return value according to ::ISOMessageReturnValue
*/
ssize_t decodeHEABMessage(const char *heabDataBuffer,
size_t decodeHEABMessage(const char *heabDataBuffer,
const size_t bufferLength,
const struct timeval currentTime,
HeabMessageDataType* heabData,
@@ -900,7 +901,7 @@ ssize_t decodeHEABMessage(const char *heabDataBuffer,
enum ISOMessageReturnValue retval = MESSAGE_OK;
uint16_t valueID = 0;
uint16_t contentLength = 0;
ssize_t expectedContentLength = 0;
size_t expectedContentLength = 0;

if (heabDataBuffer == NULL || heabData == NULL) {
errno = EINVAL;
@@ -1011,18 +1012,18 @@ enum ISOMessageReturnValue convertHEABToHostRepresentation(HEABType* HEABData,
* \param debug Flag for enabling of debugging
* \return value according to ::ISOMessageReturnValue
*/
ssize_t decodeRCMMMessage(
size_t decodeRCMMMessage(
const char *rcmmDataBuffer,
const size_t bufferLength,
RemoteControlManoeuvreMessageType* rcmmData,
const char debug) {

RCMMType RCMMData;
const char *p = rcmmDataBuffer;
ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;
uint16_t valueID = 0;
uint16_t contentLength = 0;
ssize_t expectedContentLength = 0;
size_t expectedContentLength = 0;

if (rcmmDataBuffer == NULL || rcmmData == NULL) {
errno = EINVAL;
@@ -1237,7 +1238,7 @@ enum ISOMessageReturnValue convertRCMMToHostRepresentation(RCMMType * RCMMData,
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of error
*/
ssize_t encodeRCMMMessage(const MessageHeaderType *inputHeader, const RemoteControlManoeuvreMessageType* rcmmData,
size_t encodeRCMMMessage(const MessageHeaderType *inputHeader, const RemoteControlManoeuvreMessageType* rcmmData,
char* rcmmDataBuffer,
const size_t bufferLength,
const char debug) {
@@ -1381,7 +1382,7 @@ ssize_t encodeRCMMMessage(const MessageHeaderType *inputHeader, const RemoteCont
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of an error
*/
ssize_t encodeSYPMMessage(const MessageHeaderType *inputHeader, const struct timeval synchronizationTime, const struct timeval freezeTime,
size_t encodeSYPMMessage(const MessageHeaderType *inputHeader, const struct timeval synchronizationTime, const struct timeval freezeTime,
char *sypmDataBuffer, const size_t bufferLength, const char debug) {

SYPMType SYPMData;
@@ -1441,7 +1442,7 @@ ssize_t encodeSYPMMessage(const MessageHeaderType *inputHeader, const struct tim
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of an error
*/
ssize_t encodeMTSPMessage(const MessageHeaderType *inputHeader, const struct timeval *estSyncPointTime, char *mtspDataBuffer,
size_t encodeMTSPMessage(const MessageHeaderType *inputHeader, const struct timeval *estSyncPointTime, char *mtspDataBuffer,
const size_t bufferLength, const char debug) {
MTSPType MTSPData;

@@ -1499,7 +1500,7 @@ ssize_t encodeMTSPMessage(const MessageHeaderType *inputHeader, const struct tim
* \param debug Flag for enabling debugging
* \return Number of bytes written or -1 in case of an error
*/
ssize_t encodeTRCMMessage(const MessageHeaderType *inputHeader, const uint16_t * triggerID, const enum TriggerType_t * triggerType,
size_t encodeTRCMMessage(const MessageHeaderType *inputHeader, const uint16_t * triggerID, const enum TriggerType_t * triggerType,
const enum TriggerTypeParameter_t * param1, const enum TriggerTypeParameter_t * param2,
const enum TriggerTypeParameter_t * param3, char *trcmDataBuffer,
const size_t bufferLength, const char debug) {
@@ -1599,7 +1600,7 @@ ssize_t encodeTRCMMessage(const MessageHeaderType *inputHeader, const uint16_t *
* \param debug Flag for enabling debugging
* \return Number of bytes written or -1 in case of an error
*/
ssize_t encodeACCMMessage(const MessageHeaderType *inputHeader, const uint16_t * actionID, const enum ActionType_t * actionType,
size_t encodeACCMMessage(const MessageHeaderType *inputHeader, const uint16_t * actionID, const enum ActionType_t * actionType,
const enum ActionTypeParameter_t * param1, const enum ActionTypeParameter_t * param2,
const enum ActionTypeParameter_t * param3, char *accmDataBuffer,
const size_t bufferLength, const char debug) {
@@ -1692,7 +1693,7 @@ ssize_t encodeACCMMessage(const MessageHeaderType *inputHeader, const uint16_t *
* \param debug Flag for enabling debugging
* \return Number of bytes written or -1 in case of an error
*/
ssize_t encodeEXACMessage(const MessageHeaderType *inputHeader, const uint16_t * actionID, const struct timeval *executionTime,
size_t encodeEXACMessage(const MessageHeaderType *inputHeader, const uint16_t * actionID, const struct timeval *executionTime,
char *exacDataBuffer, const size_t bufferLength, const char debug) {

EXACType EXACData;
@@ -1755,7 +1756,7 @@ ssize_t encodeEXACMessage(const MessageHeaderType *inputHeader, const uint16_t *
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of error
*/
ssize_t encodeINSUPMessage(const MessageHeaderType *inputHeader, const enum SupervisorCommandType command, char *insupDataBuffer,
size_t encodeINSUPMessage(const MessageHeaderType *inputHeader, const enum SupervisorCommandType command, char *insupDataBuffer,
const size_t bufferLength, const char debug) {
INSUPType INSUPData;

@@ -1803,7 +1804,7 @@ ssize_t encodeINSUPMessage(const MessageHeaderType *inputHeader, const enum Supe
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of error
*/
ssize_t encodePODIMessage(const MessageHeaderType *inputHeader, const PeerObjectInjectionType* peerObjectData,
size_t encodePODIMessage(const MessageHeaderType *inputHeader, const PeerObjectInjectionType* peerObjectData,
char* podiDataBuffer,
const size_t bufferLength,
const char debug) {
@@ -1920,7 +1921,7 @@ ssize_t encodePODIMessage(const MessageHeaderType *inputHeader, const PeerObject
* \param debug Flag for enabling of debugging
* \return value according to ::ISOMessageReturnValue
*/
ssize_t decodePODIMessage(
size_t decodePODIMessage(
const char *podiDataBuffer,
const size_t bufferLength,
const struct timeval currentTime,
@@ -1929,10 +1930,10 @@ ssize_t decodePODIMessage(

PODIType PODIData;
const char *p = podiDataBuffer;
ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;
uint16_t valueID = 0;
uint16_t contentLength = 0;
ssize_t expectedContentLength = 0;
size_t expectedContentLength = 0;

if (podiDataBuffer == NULL || peerData == NULL) {
errno = EINVAL;
@@ -2201,7 +2202,7 @@ enum ISOMessageReturnValue convertPODIToHostRepresentation(PODIType* PODIData,
* \param debug Parameter for enabling debugging
* \return Value according to ::ISOMessageReturnValue
*/
ssize_t decodeOPROMessage(
size_t decodeOPROMessage(
ObjectPropertiesType * objectPropertiesData,
const char *oproDataBuffer,
const size_t bufferLength,
@@ -2218,7 +2219,7 @@ ssize_t decodeOPROMessage(
return ISO_FUNCTION_ERROR;
}

ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;

memset(objectPropertiesData, 0, sizeof (*objectPropertiesData));
memset(&OPROData, 0, sizeof (OPROData));
@@ -2391,7 +2392,7 @@ ssize_t decodeOPROMessage(
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of error
*/
ssize_t encodeOPROMessage(
size_t encodeOPROMessage(
const MessageHeaderType *inputHeader,
const ObjectPropertiesType* objectPropertiesData,
char *oproDataBuffer,
@@ -2492,7 +2493,7 @@ ssize_t encodeOPROMessage(
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of error
*/
ssize_t encodeFOPRMessage(
size_t encodeFOPRMessage(
const MessageHeaderType *inputHeader,
const ForeignObjectPropertiesType* foreignObjectPropertiesData,
char *foprDataBuffer,
@@ -2689,7 +2690,7 @@ enum ISOMessageReturnValue convertFOPRToHostRepresentation(const FOPRType* FOPRD
* \param debug Parameter for enabling debugging
* \return Value according to ::ISOMessageReturnValue
*/
ssize_t decodeFOPRMessage(
size_t decodeFOPRMessage(
ForeignObjectPropertiesType * foreignObjectPropertiesData,
const char *foprDataBuffer,
const size_t bufferLength,
@@ -2713,7 +2714,7 @@ ssize_t decodeFOPRMessage(
return ISO_FUNCTION_ERROR;
}

ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;

memset(foreignObjectPropertiesData, 0, sizeof (*foreignObjectPropertiesData));
memset(&FOPRData, 0, sizeof (FOPRData));
@@ -2890,7 +2891,7 @@ ssize_t decodeFOPRMessage(
* \param debug Flag for enabling debugging
* \return number of bytes written to the data buffer, or -1 if an error occurred
*/
ssize_t encodeGDRMMessage(const MessageHeaderType *inputHeader, const GdrmMessageDataType *gdrmData, char *gdrmDataBuffer, const size_t bufferLength,
size_t encodeGDRMMessage(const MessageHeaderType *inputHeader, const GdrmMessageDataType *gdrmData, char *gdrmDataBuffer, const size_t bufferLength,
const char debug) {

GDRMType GDRMData;
@@ -2969,7 +2970,7 @@ ssize_t encodeGDRMMessage(const MessageHeaderType *inputHeader, const GdrmMessag
enum ISOMessageReturnValue retval = MESSAGE_OK;
uint16_t valueID = 0;
uint16_t contentLength = 0;
ssize_t expectedContentLength = 0;
size_t expectedContentLength = 0;

if (gdrmDataBuffer == NULL || gdrmData == NULL) {
errno = EINVAL;
@@ -3055,7 +3056,7 @@ ssize_t encodeGDRMMessage(const MessageHeaderType *inputHeader, const GdrmMessag
* \param debug Flag for enabling debugging
* \return number of bytes written to the data buffer, or -1 if an error occurred
*/
ssize_t encodeDCTIMessage(const MessageHeaderType *inputHeader, const DctiMessageDataType *dctiData,
size_t encodeDCTIMessage(const MessageHeaderType *inputHeader, const DctiMessageDataType *dctiData,
char *dctiDataBuffer, const size_t bufferLength, const char debug) {

DCTIType DCTIData;
@@ -3136,10 +3137,10 @@ enum ISOMessageReturnValue decodeDCTIMessage(
const char debug) {
DCTIType DCTIData;
const char *p = dctiDataBuffer;
ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;
uint16_t valueID = 0;
uint16_t contentLength = 0;
ssize_t expectedContentLength = 0;
size_t expectedContentLength = 0;

if (dctiDataBuffer == NULL || dctiData == NULL) {
errno = EINVAL;
@@ -3272,7 +3273,7 @@ enum ISOMessageReturnValue convertDCTIToHostRepresentation(DCTIType* DCTIData,
* \param debug Flag for enabling debugging
* \return number of bytes written to the data buffer, or -1 if an error occurred
*/
ssize_t encodeRDCAMessage(const MessageHeaderType *inputHeader,
size_t encodeRDCAMessage(const MessageHeaderType *inputHeader,
const RequestControlActionType *rdcaData,
char *rdcaDataBuffer,
const size_t bufferLength,
@@ -3400,7 +3401,7 @@ ssize_t encodeRDCAMessage(const MessageHeaderType *inputHeader,
* \param debug Flag for enabling of debugging
* \return value according to ::ISOMessageReturnValue
*/
ssize_t decodeRDCAMessage(
size_t decodeRDCAMessage(
const char *rdcaDataBuffer,
RequestControlActionType *rdcaData,
const size_t bufferLength,
@@ -3409,10 +3410,10 @@ ssize_t decodeRDCAMessage(

RDCAType RDCAData;
const char *p = rdcaDataBuffer;
ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;
uint16_t valueID = 0;
uint16_t contentLength = 0;
ssize_t expectedContentLength = 0;
size_t expectedContentLength = 0;

if (rdcaDataBuffer == NULL || rdcaData == NULL) {
errno = EINVAL;
@@ -3694,7 +3695,7 @@ double_t mapHostHeadingToISOHeading(const double_t hostHeading_rad) {
* \param debug Flag for enabling debugging
* \return Number of bytes written to buffer, or -1 in case of error
*/
ssize_t encodeDCMMMessage(const MessageHeaderType *inputHeader,
size_t encodeDCMMMessage(const MessageHeaderType *inputHeader,
const RemoteControlManoeuvreMessageType* command,
char* dcmmDataBuffer,
const size_t bufferLength,
@@ -3706,7 +3707,7 @@ ssize_t encodeDCMMMessage(const MessageHeaderType *inputHeader,

DCMMHeader = buildISOHeader(MESSAGE_ID_VENDOR_SPECIFIC_ASTAZERO_DCMM, inputHeader, sizeof (DCMMData), debug);

ssize_t retval = encodeRCMMMessage(inputHeader, command, dcmmDataBuffer, bufferLength, debug);
size_t retval = encodeRCMMMessage(inputHeader, command, dcmmDataBuffer, bufferLength, debug);
if (retval < 0) {
fprintf(stderr, "DCMM wrapper error\n");
return retval;
@@ -3728,18 +3729,18 @@ ssize_t encodeDCMMMessage(const MessageHeaderType *inputHeader,
* @param debug Flag for enabling debugging
* @return Number of bytes written to buffer, or -1 in case of error
*/
ssize_t decodeDCMMMessage(
size_t decodeDCMMMessage(
const char * dcmmDataBuffer,
const size_t bufferLength,
RemoteControlManoeuvreMessageType* dcmmData,
const char debug) {

RCMMType DCMMData;
const char *p = dcmmDataBuffer;
ssize_t retval = MESSAGE_OK;
size_t retval = MESSAGE_OK;
uint16_t valueID = 0;
uint16_t contentLength = 0;
ssize_t expectedContentLength = 0;
size_t expectedContentLength = 0;

if (dcmmDataBuffer == NULL || dcmmData == NULL) {
errno = EINVAL;
Loading