Subversion Repositories HomeAutomation

Rev

Rev 1546 | Rev 1910 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1546 Rev 1570
Line 388... Line 388...
388
                txMsg.Header.Command = CAN_MODULE_CMD_PHYSICAL_PINSTATUS;
388
                txMsg.Header.Command = CAN_MODULE_CMD_PHYSICAL_PINSTATUS;
389
                txMsg.Length = 2;
389
                txMsg.Length = 2;
390
                /* The channel should be transmitted in byte 0 */
390
                /* The channel should be transmitted in byte 0 */
391
                txMsg.Data[0] = i;
391
                txMsg.Data[0] = i;
392
                /* If status was low but voltage is above high theshold */
392
                /* If status was low but voltage is above high theshold */
393
                if (sns_inputAnalog_Sensor[i].Status == LOW && AdValue > sns_inputAnalog_Config[i].HighTh)
393
                if (sns_inputAnalog_Sensor[i].Status != HIGH && AdValue > sns_inputAnalog_Config[i].HighTh)
394
                {
394
                {
395
                    /* Consider status to be high */
395
                    /* Consider status to be high */
396
                    sns_inputAnalog_Sensor[i].Status = HIGH;
396
                    sns_inputAnalog_Sensor[i].Status = HIGH;
397
                    txMsg.Data[1] = CAN_MODULE_ENUM_PHYSICAL_PINSTATUS_STATUS_HIGH;
397
                    txMsg.Data[1] = CAN_MODULE_ENUM_PHYSICAL_PINSTATUS_STATUS_HIGH;
398
                   
398
                   
399
                    /* send status on CAN with command CAN_MODULE_CMD_PHYSICAL_PINSTATUS */
399
                    /* send status on CAN with command CAN_MODULE_CMD_PHYSICAL_PINSTATUS */
400
                    while (StdCan_Put(&txMsg) != StdCan_Ret_OK);
400
                    while (StdCan_Put(&txMsg) != StdCan_Ret_OK);
401
                }
401
                }
402
                /* If status was high but voltage is below low theshold */
402
                /* If status was high but voltage is below low theshold */
403
                else if (sns_inputAnalog_Sensor[i].Status == HIGH && AdValue < sns_inputAnalog_Config[i].LowTh)
403
                else if (sns_inputAnalog_Sensor[i].Status != LOW && AdValue < sns_inputAnalog_Config[i].LowTh)
404
                {
404
                {
405
                    /* Consider status to be low */
405
                    /* Consider status to be low */
406
                    sns_inputAnalog_Sensor[i].Status = LOW;
406
                    sns_inputAnalog_Sensor[i].Status = LOW;
407
                    txMsg.Data[1] = CAN_MODULE_ENUM_PHYSICAL_PINSTATUS_STATUS_LOW;
407
                    txMsg.Data[1] = CAN_MODULE_ENUM_PHYSICAL_PINSTATUS_STATUS_LOW;
408
                   
408
                   
Line 440... Line 440...
440
               
440
               
441
                /* Convert voltage to AD value (0-1023) acording static config parameters */
441
                /* Convert voltage to AD value (0-1023) acording static config parameters */
442
                switch (index)
442
                switch (index)
443
                {
443
                {
444
                    case 0:
444
                    case 0:
445
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog0Scale-8);
445
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog0Scale-6);
446
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog0Factor;
446
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog0Factor;
447
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog0Scale-8);
447
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog0Scale-6);
448
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog0Factor;
448
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog0Factor;
449
                        break;
449
                        break;
450
                    case 1:
450
                    case 1:
451
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog1Scale-8);
451
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog1Scale-6);
452
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog1Factor;
452
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog1Factor;
453
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog1Scale-8);
453
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog1Scale-6);
454
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog1Factor;
454
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog1Factor;
455
                        break;
455
                        break;
456
                    case 2:
456
                    case 2:
457
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog2Scale-8);
457
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog2Scale-6);
458
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog2Factor;
458
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog2Factor;
459
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog2Scale-8);
459
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog2Scale-6);
460
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog2Factor;
460
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog2Factor;
461
                        break;
461
                        break;
462
                    case 3:
462
                    case 3:
463
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog3Scale-8);
463
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh<<(sns_inputAnalog3Scale-6);
464
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog3Factor;
464
                        sns_inputAnalog_Config[index].LowTh = sns_inputAnalog_Config[index].LowTh / sns_inputAnalog3Factor;
465
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog3Scale-8);
465
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh<<(sns_inputAnalog3Scale-6);
466
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog3Factor;
466
                        sns_inputAnalog_Config[index].HighTh = sns_inputAnalog_Config[index].HighTh / sns_inputAnalog3Factor;
467
                        break;
467
                        break;
468
                }
468
                }
469
               
469
               
470
#ifdef sns_inputAnalog_USEEEPROM
470
#ifdef sns_inputAnalog_USEEEPROM