Mercurial > public > ostc4
comparison Small_CPU/Src/scheduler.c @ 181:331882a89421 Cleanup_Compass_Wireless
Removed not suppoted wireless feature
The code contains parts of a wireless sensor feature which is not supported by the OSTC4 hardware.
author | ideenmodellierer |
---|---|
date | Wed, 13 Mar 2019 21:51:25 +0100 |
parents | c659fda83e44 |
children | f11f0bf6ef2d |
comparison
equal
deleted
inserted
replaced
180:9ecc2e60418d | 181:331882a89421 |
---|---|
38 #include "dma.h" | 38 #include "dma.h" |
39 #include "adc.h" | 39 #include "adc.h" |
40 #include "calc_crush.h" | 40 #include "calc_crush.h" |
41 #include "stm32f4xx_hal_rtc_ex.h" | 41 #include "stm32f4xx_hal_rtc_ex.h" |
42 #include "decom.h" | 42 #include "decom.h" |
43 #include "wireless.h" | |
44 #include "tm_stm32f4_otp.h" | 43 #include "tm_stm32f4_otp.h" |
45 | 44 |
46 | 45 |
47 #define INVALID_PREASURE_VALUE (100.0F) | 46 #define INVALID_PREASURE_VALUE (100.0F) |
48 | 47 |
85 //void copyBatteryData(void); now in header | 84 //void copyBatteryData(void); now in header |
86 void copyAmbientLightData(void); | 85 void copyAmbientLightData(void); |
87 void copyTissueData(void); | 86 void copyTissueData(void); |
88 void copyVpmCrushingData(void); | 87 void copyVpmCrushingData(void); |
89 void copyDeviceData(void); | 88 void copyDeviceData(void); |
90 void changeAgeWirelessData(void); | |
91 void copyWirelessData(void); | |
92 void copyPICdata(void); | 89 void copyPICdata(void); |
93 uint16_t schedule_update_timer_helper(int8_t thisSeconds); | 90 uint16_t schedule_update_timer_helper(int8_t thisSeconds); |
94 | 91 |
95 | 92 |
96 uint32_t time_elapsed_ms(uint32_t ticksstart,uint32_t ticksnow); | 93 uint32_t time_elapsed_ms(uint32_t ticksstart,uint32_t ticksnow); |
476 Scheduler.tickstart = HAL_GetTick() - 1000; | 473 Scheduler.tickstart = HAL_GetTick() - 1000; |
477 Scheduler.counterSPIdata100msec = 0; | 474 Scheduler.counterSPIdata100msec = 0; |
478 Scheduler.counterCompass100msec = 0; | 475 Scheduler.counterCompass100msec = 0; |
479 Scheduler.counterPressure100msec = 0; | 476 Scheduler.counterPressure100msec = 0; |
480 Scheduler.counterAmbientLight100msec = 0; | 477 Scheduler.counterAmbientLight100msec = 0; |
481 Scheduler.counterWireless1msec = 0; | |
482 | 478 |
483 global.deviceData.diveCycles.value_int32++; | 479 global.deviceData.diveCycles.value_int32++; |
484 scheduleSetDate(&global.deviceData.diveCycles); | 480 scheduleSetDate(&global.deviceData.diveCycles); |
485 global.lifeData.counterSecondsShallowDepth = 0; | 481 global.lifeData.counterSecondsShallowDepth = 0; |
486 | 482 |
487 while(global.mode == MODE_DIVE) | 483 while(global.mode == MODE_DIVE) |
488 { | 484 { |
489 schedule_check_resync(); | 485 schedule_check_resync(); |
490 lasttick = HAL_GetTick(); | 486 lasttick = HAL_GetTick(); |
491 ticksdiff = time_elapsed_ms(Scheduler.tickstart,lasttick); | 487 ticksdiff = time_elapsed_ms(Scheduler.tickstart,lasttick); |
492 | |
493 | |
494 //Evaluate wireless data every ms, if present | |
495 if(ticksdiff > Scheduler.counterWireless1msec) | |
496 { | |
497 Scheduler.counterWireless1msec++; | |
498 changeAgeWirelessData(); | |
499 global.wirelessReceived = wireless_evaluate(global.wirelessdata,MAX_WIRELESS_BYTES, &global.wirelessConfidenceStatus); | |
500 if((global.wirelessReceived > 0) && !wireless_evaluate_crc_error(global.wirelessdata,global.wirelessReceived)) | |
501 { | |
502 copyWirelessData(); | |
503 } | |
504 } | |
505 | 488 |
506 if(ticksdiff >= Scheduler.counterSPIdata100msec * 100 + 10) | 489 if(ticksdiff >= Scheduler.counterSPIdata100msec * 100 + 10) |
507 { | 490 { |
508 SPI_Evaluate_RX_Data(); | 491 SPI_Evaluate_RX_Data(); |
509 Scheduler.counterSPIdata100msec++; | 492 Scheduler.counterSPIdata100msec++; |
664 } | 647 } |
665 Scheduler.counterSPIdata100msec = 0; | 648 Scheduler.counterSPIdata100msec = 0; |
666 Scheduler.counterCompass100msec = 0; | 649 Scheduler.counterCompass100msec = 0; |
667 Scheduler.counterPressure100msec = 0; | 650 Scheduler.counterPressure100msec = 0; |
668 Scheduler.counterAmbientLight100msec = 0; | 651 Scheduler.counterAmbientLight100msec = 0; |
669 Scheduler.counterWireless1msec = 0; | |
670 } | 652 } |
671 } | 653 } |
672 } | 654 } |
673 | 655 |
674 | 656 |
765 Scheduler.tickstart = HAL_GetTick(); | 747 Scheduler.tickstart = HAL_GetTick(); |
766 Scheduler.counterSPIdata100msec = 0; | 748 Scheduler.counterSPIdata100msec = 0; |
767 Scheduler.counterCompass100msec = 0; | 749 Scheduler.counterCompass100msec = 0; |
768 Scheduler.counterPressure100msec = 0; | 750 Scheduler.counterPressure100msec = 0; |
769 Scheduler.counterAmbientLight100msec = 0; | 751 Scheduler.counterAmbientLight100msec = 0; |
770 Scheduler.counterWireless1msec = 0; | |
771 | 752 |
772 global.dataSendToMaster.mode = MODE_SURFACE; | 753 global.dataSendToMaster.mode = MODE_SURFACE; |
773 global.deviceDataSendToMaster.mode = MODE_SURFACE; | 754 global.deviceDataSendToMaster.mode = MODE_SURFACE; |
774 | 755 |
775 while(global.mode == MODE_SURFACE) | 756 while(global.mode == MODE_SURFACE) |
778 // SPI_Start_single_TxRx_with_Master(); | 759 // SPI_Start_single_TxRx_with_Master(); |
779 schedule_check_resync(); | 760 schedule_check_resync(); |
780 lasttick = HAL_GetTick(); | 761 lasttick = HAL_GetTick(); |
781 ticksdiff = time_elapsed_ms(Scheduler.tickstart,lasttick); | 762 ticksdiff = time_elapsed_ms(Scheduler.tickstart,lasttick); |
782 | 763 |
783 if(ticksdiff > Scheduler.counterWireless1msec) | |
784 { | |
785 Scheduler.counterWireless1msec++; | |
786 changeAgeWirelessData(); | |
787 global.wirelessReceived = wireless_evaluate(global.wirelessdata,MAX_WIRELESS_BYTES, &global.wirelessConfidenceStatus); | |
788 if((global.wirelessReceived > 0) && !wireless_evaluate_crc_error(global.wirelessdata,global.wirelessReceived)) | |
789 { | |
790 copyWirelessData(); | |
791 } | |
792 } | |
793 if(setButtonsNow == 1) | 764 if(setButtonsNow == 1) |
794 { | 765 { |
795 if(scheduleSetButtonResponsiveness()) | 766 if(scheduleSetButtonResponsiveness()) |
796 setButtonsNow = 0; | 767 setButtonsNow = 0; |
797 } | 768 } |
905 } | 876 } |
906 Scheduler.counterSPIdata100msec = 0; | 877 Scheduler.counterSPIdata100msec = 0; |
907 Scheduler.counterCompass100msec = 0; | 878 Scheduler.counterCompass100msec = 0; |
908 Scheduler.counterPressure100msec = 0; | 879 Scheduler.counterPressure100msec = 0; |
909 Scheduler.counterAmbientLight100msec = 0; | 880 Scheduler.counterAmbientLight100msec = 0; |
910 Scheduler.counterWireless1msec = 0; | |
911 } | 881 } |
912 } | 882 } |
913 } | 883 } |
914 | 884 |
915 void HardSyncToSPI() | 885 void HardSyncToSPI() |
920 Scheduler.tickstart = HAL_GetTick(); | 890 Scheduler.tickstart = HAL_GetTick(); |
921 Scheduler.counterSPIdata100msec = 0; | 891 Scheduler.counterSPIdata100msec = 0; |
922 Scheduler.counterCompass100msec = 0; | 892 Scheduler.counterCompass100msec = 0; |
923 Scheduler.counterPressure100msec = 0; | 893 Scheduler.counterPressure100msec = 0; |
924 Scheduler.counterAmbientLight100msec = 0; | 894 Scheduler.counterAmbientLight100msec = 0; |
925 Scheduler.counterWireless1msec = 0; | |
926 dohardspisync = 0; | 895 dohardspisync = 0; |
927 } | 896 } |
928 } | 897 } |
929 | 898 |
930 /** | 899 /** |
1517 memcpy(&global.deviceDataSendToMaster.VpmRepetitiveData.max_actual_gradient, &global.vpm.max_actual_gradient, sizeof(16*4)); | 1486 memcpy(&global.deviceDataSendToMaster.VpmRepetitiveData.max_actual_gradient, &global.vpm.max_actual_gradient, sizeof(16*4)); |
1518 global.deviceDataSendToMaster.VpmRepetitiveData.repetitive_variables_not_valid = global.vpm.repetitive_variables_not_valid; | 1487 global.deviceDataSendToMaster.VpmRepetitiveData.repetitive_variables_not_valid = global.vpm.repetitive_variables_not_valid; |
1519 global.deviceDataSendToMaster.boolVpmRepetitiveDataValid = 1; | 1488 global.deviceDataSendToMaster.boolVpmRepetitiveDataValid = 1; |
1520 } | 1489 } |
1521 | 1490 |
1522 void changeAgeWirelessData(void) | |
1523 { | |
1524 for(int i=0;i<4;i++) | |
1525 { | |
1526 if(global.dataSendToMaster.data[global.dataSendToMaster.boolWirelessData].wireless_data[i].ageInMilliSeconds) | |
1527 global.dataSendToMaster.data[global.dataSendToMaster.boolWirelessData].wireless_data[i].ageInMilliSeconds++; | |
1528 } | |
1529 } | |
1530 | |
1531 void copyWirelessData(void) | |
1532 { | |
1533 uint8_t boolWirelessData = !global.dataSendToMaster.boolWirelessData; | |
1534 SDataWireless *dataOld, *dataNew; | |
1535 for(int i=0;i<3;i++) | |
1536 { | |
1537 dataNew = &global.dataSendToMaster.data[boolWirelessData].wireless_data[i+1]; | |
1538 dataOld = &global.dataSendToMaster.data[!boolWirelessData].wireless_data[i]; | |
1539 dataNew->ageInMilliSeconds = dataOld->ageInMilliSeconds; | |
1540 dataNew->numberOfBytes = dataOld->numberOfBytes; | |
1541 dataNew->status = dataOld->status; | |
1542 memcpy(dataNew->data, dataOld->data,8); | |
1543 } | |
1544 | |
1545 global.dataSendToMaster.data[boolWirelessData].wireless_data[0].ageInMilliSeconds = 1; | |
1546 global.dataSendToMaster.data[boolWirelessData].wireless_data[0].numberOfBytes = global.wirelessReceived; | |
1547 global.dataSendToMaster.data[boolWirelessData].wireless_data[0].status = global.wirelessConfidenceStatus; | |
1548 for(int i=0;i<MAX_WIRELESS_BYTES;i++) | |
1549 global.dataSendToMaster.data[boolWirelessData].wireless_data[0].data[i] = global.wirelessdata[i]; | |
1550 for(int i=MAX_WIRELESS_BYTES;i<12;i++) | |
1551 global.dataSendToMaster.data[boolWirelessData].wireless_data[0].data[i] = 0xFF; | |
1552 | |
1553 global.dataSendToMaster.boolWirelessData = boolWirelessData; | |
1554 } | |
1555 | |
1556 /* copyPICdata(); is used in spi.c */ | 1491 /* copyPICdata(); is used in spi.c */ |
1557 void copyPICdata(void) | 1492 void copyPICdata(void) |
1558 { | 1493 { |
1559 uint8_t boolPICdata = !global.dataSendToMaster.boolPICdata; | 1494 uint8_t boolPICdata = !global.dataSendToMaster.boolPICdata; |
1560 for(int i = 0; i < 3; i++) | 1495 for(int i = 0; i < 3; i++) |
1561 { | 1496 { |
1562 global.dataSendToMaster.data[boolPICdata].button_setting[i] = global.ButtonPICdata[i]; | 1497 global.dataSendToMaster.data[boolPICdata].button_setting[i] = global.ButtonPICdata[i]; |
1563 } | 1498 } |
1564 global.dataSendToMaster.boolPICdata = boolPICdata; | 1499 global.dataSendToMaster.boolPICdata = boolPICdata; |
1565 } | 1500 } |
1566 | |
1567 | |
1568 | 1501 |
1569 | 1502 |
1570 typedef enum | 1503 typedef enum |
1571 { | 1504 { |
1572 SPI3_OK = 0x00, | 1505 SPI3_OK = 0x00, |