Changeset - 28d92b4af160
[Not reviewed]
Merge default
0 4 0
matthewreed - 8 years ago 2017-10-05 14:34:01

Merge
4 files changed with 9 insertions and 1 deletions:
0 comments (0 inline, 0 general)
inc/flash.h
Show inline comments
 
#ifndef _FLASH_H_
 
#define _FLASH_H_
 
 
#include "stm32f0xx_hal.h"
 
#include "stm32f0xx_hal_flash.h"
 
#include "config.h"
 
 
#define PAGE_SIZE ((uint16_t)0x400)
 
#define END_ADDR 0x08007FFF
 
 
 
typedef union
 
{
 
    struct {
 
        uint32_t can_id;
 
        uint16_t data_rate;
 
        uint8_t led_brightness;
 
        flash_user_vars_t user;
 
    } val;
 
 
    uint16_t data[128];
 
} flash_settings_t;
 
 
void flash_save(flash_settings_t* tosave);
 
void flash_restore(flash_settings_t* tosave);
 
void flash_load_defaults(flash_settings_t* torestore);
 
void flash_erase(void);
 
 
#endif /* _FLASH_H_ */
inc/protocol.h
Show inline comments
 
@@ -53,24 +53,25 @@ typedef enum {
 
    WATER_LEVEL = 0x000C,
 
    WATER_CONDUCTIVITY = 0x000D,
 
    WATER_PH = 0x000E,
 
    CAN_ID = 0x0100,
 
    DATA_RATE = 0x0101,
 
    LED_BRIGHTNESS = 0x0102,
 
    INPUT = 0x0103,
 
    OUTPUT = 0x0104,
 
} protocol_data_key_t;
 
 
void protocol_init(protocol_device_t device);
 
flash_settings_t* protocol_get_settings(void);
 
void protocol_save_settings(void);
 
bool protocol_receive_message(CanRxMsgTypeDef* can_message);
 
bool protocol_send_message(protocol_message_t* message);
 
bool protocol_process_message(protocol_message_t* message);
 
bool protocol_send_data(protocol_data_key_t key, uint8_t sensor, float data);
 
bool protocol_send_test();
 
bool _protocol_config(protocol_message_t* message);
 
 
bool protocol_estop(bool value);
 
bool protocol_set_output(protocol_message_t* message);
 
bool protocol_get_data(protocol_message_t* message);
 
bool protocol_config(protocol_message_t* message);
 
src/can_buffer.c
Show inline comments
 
@@ -11,25 +11,25 @@ CanBufferStatus can_buffer_add(volatile 
 
        buffer->data[buffer->head] = *msg;
 
        buffer->head = (buffer->head + 1) % CAN_BUFFER_SIZE;
 
        buffer->count++;
 
        return CAN_BUFFER_OK;
 
    }
 
    else {
 
        return CAN_BUFFER_FULL;
 
    }
 
}
 

	
 
volatile CanRxMsgTypeDef* can_buffer_remove(volatile CanBuffer *buffer)
 
{
 
    volatile CanRxMsgTypeDef* msg;
 
    volatile CanRxMsgTypeDef* msg = NULL;
 
    if (buffer->count > 0) {
 
        msg = &buffer->data[buffer->tail];
 
        buffer->tail = (buffer->tail + 1) % CAN_BUFFER_SIZE;
 
        buffer->count--;
 
    }
 
    return msg;
 
}
 

	
 
bool can_buffer_is_empty(volatile CanBuffer *buffer)
 
{
 
    return (buffer->count < 1);
 
}
src/protocol.c
Show inline comments
 
@@ -8,24 +8,29 @@ void protocol_init(protocol_device_t dev
 
    protocol_device = device;
 
    flash_restore(&protocol_settings);
 
    led_set_brightness(protocol_settings.val.led_brightness);
 
 
    can_init(protocol_settings.val.can_id, DEFAULT_BROADCAST_ID);
 
}
 
 
flash_settings_t* protocol_get_settings(void)
 
{
 
    return &protocol_settings;
 
}
 
 
void protocol_save_settings(void)
 
{
 
    flash_save(&protocol_settings);
 
}
 
 
bool protocol_send_test()
 
{
 
    bool result = true;
 
    can_send_test(protocol_settings.val.can_id | 0x00000001);
 
    return result;
 
}
 
 
bool protocol_receive_message(CanRxMsgTypeDef* can_message)
 
{
 
    bool result = true;
 
    
 
    protocol_message_t message;
0 comments (0 inline, 0 general)