Subversion Repositories HomeAutomation

Rev

Rev 577 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 577 Rev 797
Line 51... Line 51...
51
 
51
 
52
/*-------------------------------------------------------------------------
52
/*-------------------------------------------------------------------------
53
 * Global variables
53
 * Global variables
54
 * -----------------------------------------------------------------------*/
54
 * -----------------------------------------------------------------------*/
55
uint8_t relayStatus, failsafe_flag = 0;
55
uint8_t relayStatus, failsafe_flag = 0;
56
uint32_t boardTemperature = 0;
56
uint16_t boardTemperature = 0;
57
 
57
 
58
volatile Can_Message_t rxMsg; // Message storage
58
volatile Can_Message_t rxMsg; // Message storage
59
volatile uint8_t rxMsgFull;   // Synchronization flag
59
volatile uint8_t rxMsgFull;   // Synchronization flag
60
 
60
 
61
 
61
 
Line 206... Line 206...
206
    }
206
    }
207
}
207
}
208
 
208
 
209
void sendStatus()
209
void sendStatus()
210
{
210
{
211
    uint32_t temperature;
211
    uint16_t temperature;
212
    Can_Message_t statusMsg;
212
    Can_Message_t statusMsg;
213
    statusMsg.RemoteFlag = 0;
213
    statusMsg.RemoteFlag = 0;
214
    statusMsg.ExtendedFlag = 1;
214
    statusMsg.ExtendedFlag = 1;
215
    statusMsg.DataLength = 4;
215
    statusMsg.DataLength = 4;
216
    statusMsg.Id = ((CAN_SNS << CAN_SHIFT_CLASS) | (SNS_TYPE_STATUS << CAN_SHIFT_SNS_TYPE) | (SNS_ID_RELAY_STATUS << CAN_SHIFT_SNS_ID) | (NODE_ID << CAN_SHIFT_SNS_SID));
216
    statusMsg.Id = ((CAN_SNS << CAN_SHIFT_CLASS) | (SNS_TYPE_STATUS << CAN_SHIFT_SNS_TYPE) | (SNS_ID_RELAY_STATUS << CAN_SHIFT_SNS_ID) | (NODE_ID << CAN_SHIFT_SNS_SID));
217
   
217
   
218
    temperature = getTC1047temperature();
218
    temperature = getTC1047temperature(TC1047_AD);
219
    if( (int32_t)temperature >= FAILSAFE_TRESHOLD && !failsafe_flag ){
219
    if ( temperature >= FAILSAFE_TRESHOLD && !failsafe_flag ){
220
        // Goto failsafe mode
220
        // Goto failsafe mode
221
        relayFailsafe();
221
        relayFailsafe();
222
    }else{
222
    }else{
223
        // Transmitt node status
223
        // Transmitt node status
224
        statusMsg.Data.bytes[0] = temperature & 0x00FF;
224
        statusMsg.Data.bytes[0] = temperature&0xff;
225
        statusMsg.Data.bytes[1] = (temperature & 0xFF00)>>8;
225
        statusMsg.Data.bytes[1] = ((temperature>>8)&0xff);
226
        statusMsg.Data.bytes[2] = relayStatus;
226
        statusMsg.Data.bytes[2] = relayStatus;
227
        statusMsg.Data.bytes[3] = failsafe_flag;
227
        statusMsg.Data.bytes[3] = failsafe_flag;
228
 
228
 
229
        BIOS_CanSend( &statusMsg );
229
        BIOS_CanSend( &statusMsg );
230
    }
230
    }