Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync issue resulting in error 0x27 (Freerun not supported) #870

Open
hshah44 opened this issue Nov 2, 2024 · 0 comments
Open

Sync issue resulting in error 0x27 (Freerun not supported) #870

hshah44 opened this issue Nov 2, 2024 · 0 comments

Comments

@hshah44
Copy link

hshah44 commented Nov 2, 2024

I need assistance to solidify my understanding and latch sync0.

Here are the steps to orchestrate this flow:

  1. ec_init

  2. ec_config_init

  • state: EC_STATE_INIT
  1. ec_configdc
  • state: EC_STATE_PRE_OP
  1. ec_config_map
  • state: EC_STATE_PRE_OP
  1. transition to EC_STATE_SAFE_OP
  • state: EC_STATE_SAFE_OP
  1. thread1
  • cycle PDO's infinitely (ec_send_processdata, ec_receive_processdata) with usleep(100)
  • verified wc is incrementing to 2 as expected
  1. thread2
  • wait for 2s to transition to state: EC_STATE_OPERATIONAL

End result: ID: 1 (4097), Parent: 0, State: 0x14 (EC_STATE_NONE), Topology: 1, DC: 1, Delay: 0, StatusCode=0x27 (Freerun not supported)


Thread tasks (I kept it simple to understand the behavior)


void* cycle() {
    ec_send_processdata();
    printf("wc: %d\n", wc);
    
    while(1) {
        wc = ec_receive_processdata(EC_TIMEOUTRET);
        usleep(100);
        ec_send_processdata();
    }
    return NULL;
}

void* task() {
    printf("sleeping wc: %d\n", wc);
    sleep(2);
    printf("wokeup wc: %d\n", wc);
    transition(1, EC_STATE_OPERATIONAL);
    return NULL;
}

Zipped up wireshark pcap file (step 6 - 7 above)
capture.pcapng.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant