Fix structs for FIRE 2 settings

pull/4/head
Paul Hollinsky 2018-09-25 18:41:05 -04:00
parent 126c8efd2a
commit 650b46fad2
6 changed files with 88 additions and 6 deletions

View File

@ -9,8 +9,7 @@
#include <vector>
#include <memory>
#pragma pack(push)
#pragma pack(1)
#pragma pack(push, 1)
namespace icsneo {

View File

@ -4,8 +4,7 @@
#include <stdint.h>
#include <stddef.h>
#pragma pack(push)
#pragma pack(1)
#pragma pack(push, 1)
typedef struct {
uint64_t timestamp;

View File

@ -26,6 +26,8 @@ protected:
#endif
#pragma pack(push, 2)
/* SetBaudrate in CAN_SETTINGS */
enum
{
@ -106,6 +108,77 @@ typedef struct _CANFD_SETTINGS
} CANFD_SETTINGS;
#define CANFD_SETTINGS_SIZE 10
typedef struct ETHERNET_SETTINGS_t
{
uint8_t duplex; /* 0 = half, 1 = full */
uint8_t link_speed;
uint8_t auto_neg;
uint8_t led_mode;
uint8_t rsvd[4];
} ETHERNET_SETTINGS;
#define ETHERNET_SETTINGS_SIZE 8
typedef struct
{
uint8_t MasterEnable;
uint8_t SlaveEnable;
uint8_t MasterNetwork;
uint8_t SlaveNetwork;
} TIMESYNC_ICSHARDWARE_SETTINGS;
#define TIMESYNC_ICSHARDWARE_SETTINGS_SIZE 4
typedef struct _STextAPISettings
{
uint32_t can1_tx_id;
uint32_t can1_rx_id;
union {
struct sCAN1Options
{
unsigned bExtended : 1;
unsigned : 15;
};
uint32_t DWord;
} can1_options;
uint32_t can2_tx_id;
uint32_t can2_rx_id;
union {
struct sCAN2Options
{
unsigned bExtended : 1;
unsigned : 15;
};
uint32_t DWord;
} can2_options;
uint32_t network_enables;
uint32_t can3_tx_id;
uint32_t can3_rx_id;
union {
struct sCAN3Options
{
unsigned bExtended : 1;
unsigned : 15;
};
uint32_t DWord;
} can3_options;
uint32_t can4_tx_id;
uint32_t can4_rx_id;
union {
struct sCAN4Options
{
unsigned bExtended : 1;
unsigned : 15;
};
uint32_t DWord;
} can4_options;
uint32_t reserved[5];
} STextAPISettings;
#define STextAPISettings_SIZE 72
/* high_speed_auto_switch in SWCAN_SETTINGS */
enum
{
@ -218,6 +291,8 @@ typedef struct _UART_SETTINGS
} UART_SETTINGS;
#define UART_SETTINGS_SIZE 16
#pragma pack(pop)
#ifdef __cplusplus
} // End of the namespace
#endif

View File

@ -3,6 +3,7 @@
#include "device/neovifire2/include/neovifire2.h"
#include "platform/include/pcap.h"
#include "device/neovifire2/include/neovifire2settings.h"
#include <memory>
namespace icsneo {
@ -15,6 +16,7 @@ public:
auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder);
settings = std::make_shared<NeoVIFIRE2Settings>(com);
productId = PRODUCT_ID;
}

View File

@ -4,6 +4,12 @@
#include <stdint.h>
#include "device/include/idevicesettings.h"
#ifdef __cplusplus
namespace icsneo {
#endif
#pragma pack(push, 2)
typedef struct {
uint16_t perf_en;
@ -105,10 +111,9 @@ typedef struct {
#include <iostream>
namespace icsneo {
class NeoVIFIRE2Settings : public IDeviceSettings {
public:
NeoVIFIRE2Settings(std::shared_ptr<Communication> com) : IDeviceSettings(com) {}
void refresh() {
IDeviceSettings::refresh();
if(settingsLoaded) {

View File

@ -3,6 +3,7 @@
#include "device/neovifire2/include/neovifire2.h"
#include "platform/include/ftdi.h"
#include "device/neovifire2/include/neovifire2settings.h"
namespace icsneo {
@ -14,6 +15,7 @@ public:
auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder);
settings = std::make_shared<NeoVIFIRE2Settings>(com);
productId = PRODUCT_ID;
}