fix(SF-33): Очередные правки со стенда
This commit is contained in:
parent
4273fcd70b
commit
39ef0906b7
@ -168,6 +168,10 @@ void free_rtos::Eth::link_task()
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < macPortNum_; ++i)
|
for (int i = 0; i < macPortNum_; ++i)
|
||||||
{
|
{
|
||||||
|
if(linkUp_[i] == true) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
macPort = macPort_[i];
|
macPort = macPort_[i];
|
||||||
linkUp = false;
|
linkUp = false;
|
||||||
|
|
||||||
@ -248,7 +252,7 @@ void free_rtos::Eth::link_task()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ClockP_usleep(100000); // 100ms /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10<31><30> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
ClockP_usleep(1000000); // 100ms /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10<31><30> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@ void EthEcatPdoFMMU::init(ProcessCallback callback) {
|
|||||||
bool EthEcatPdoFMMU::wait_op() {
|
bool EthEcatPdoFMMU::wait_op() {
|
||||||
free_rtos::Semaphore& init_sem = ecat_buffer_.get_ecat().get_init_sem();
|
free_rtos::Semaphore& init_sem = ecat_buffer_.get_ecat().get_init_sem();
|
||||||
free_rtos::Semaphore& process_sem = ecat_buffer_.get_ecat().get_process_sem();
|
free_rtos::Semaphore& process_sem = ecat_buffer_.get_ecat().get_process_sem();
|
||||||
|
free_rtos::Timer& ecat_timer = ecat_buffer_.get_ecat().get_ecat_timer();
|
||||||
|
|
||||||
process_sem.pend();
|
process_sem.pend();
|
||||||
|
|
||||||
@ -55,6 +56,8 @@ bool EthEcatPdoFMMU::wait_op() {
|
|||||||
process_sem.pend();
|
process_sem.pend();
|
||||||
|
|
||||||
for(uint32_t i = 0; i < 250; i++) {
|
for(uint32_t i = 0; i < 250; i++) {
|
||||||
|
ecat_timer.Wait();
|
||||||
|
|
||||||
status = read_write(0, data_tuple_read, 0, data_tuple_write);
|
status = read_write(0, data_tuple_read, 0, data_tuple_write);
|
||||||
|
|
||||||
if(status != true) {
|
if(status != true) {
|
||||||
@ -63,6 +66,7 @@ bool EthEcatPdoFMMU::wait_op() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init_sem.post();
|
init_sem.post();
|
||||||
|
process_sem.pend();
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -295,8 +295,12 @@ bool EthEcat::safeop_to_op() {
|
|||||||
uint16_t zero{0x00000000};
|
uint16_t zero{0x00000000};
|
||||||
bool status;
|
bool status;
|
||||||
|
|
||||||
|
ecat_timer_.Start();
|
||||||
|
|
||||||
process_sem_.post();
|
process_sem_.post();
|
||||||
if(init_sem_.pend(process_timeout_ticks_) != SystemP_SUCCESS) {
|
if(init_sem_.pend(process_timeout_ticks_) != SystemP_SUCCESS) {
|
||||||
|
DebugP_log((char*)"Process task timeout !\r\n");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,6 +317,8 @@ bool EthEcat::safeop_to_op() {
|
|||||||
|
|
||||||
process_sem_.post();
|
process_sem_.post();
|
||||||
if(init_sem_.pend(process_timeout_ticks_) != SystemP_SUCCESS) {
|
if(init_sem_.pend(process_timeout_ticks_) != SystemP_SUCCESS) {
|
||||||
|
DebugP_log((char*)"Process task timeout !\r\n");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,16 +332,18 @@ bool EthEcat::safeop_to_op() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//DebugP_log((char*)"stat.state = %d, stat.fault = %d\r\n", stat.state, stat.fault);
|
|
||||||
|
|
||||||
status = (stat.state == EC_STATE_OPERATIONAL) && (stat.fault == 0);
|
status = (stat.state == EC_STATE_OPERATIONAL) && (stat.fault == 0);
|
||||||
|
|
||||||
if(status == true) {
|
if(status != true) {
|
||||||
ecat_timer_.Start();
|
DebugP_log((char*)"stat.state = %d, stat.fault = %d\r\n", stat.state, stat.fault);
|
||||||
|
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
//DebugP_log((char*)"success = %d\r\n", success);
|
//DebugP_log((char*)"success = %d\r\n", success);
|
||||||
|
|
||||||
|
process_sem_.post();
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -248,7 +248,7 @@ private:
|
|||||||
e_pktTotal
|
e_pktTotal
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr uint32_t process_timeout_ticks_ = 100;
|
static constexpr uint32_t process_timeout_ticks_ = 5000;
|
||||||
|
|
||||||
free_rtos::Timer ecat_timer_;
|
free_rtos::Timer ecat_timer_;
|
||||||
|
|
||||||
|
|||||||
@ -74,7 +74,7 @@ public:
|
|||||||
bool transfer(queue::Queue<datagram::IEcatDatagram>& next);
|
bool transfer(queue::Queue<datagram::IEcatDatagram>& next);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static constexpr uint32_t connection_timeout_ticks_ = 50;
|
static constexpr uint32_t connection_timeout_ticks_ = 200;
|
||||||
static constexpr uint32_t max_transfer_attempts_ = 2;
|
static constexpr uint32_t max_transfer_attempts_ = 2;
|
||||||
|
|
||||||
Eth& eth_;
|
Eth& eth_;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user