uživatel kombik mi zapůjčil jeho druhý pendant xhc-whb04b-4 s vadným displejem. Nefunkčnost displeje nemá vliv na funkčnost zařízení.
Máme problém s tím, že nám nefunguje OPTIONS:
Možná že to funguje, ale neumím to používat. Ovšem spíše to vidím na BUG.-s Lead + jogwheel changes the spindle override speed. Each tick will increase/decrease the spindle override.
-f MPG + jogwheel changes the feed override. Each tick will increment/decrement the feed override.
Konečně bych se chtěl naučit využívat největší výhody OPEN-SOURCE projektů => když je problém, vyřešit ho.
Stáhl jsem si zdrojáky tohoto driveru:
/linuxcnc-master/src/hal/user_comps/xhc-whb04b-6/
a když jsem si je procházel, tak jsem našel část zdrojového kódu, která by měla dělat, to co potřebuji.
Kód: Vybrat vše
// ----------------------------------------------------------------------
bool Pendant::onJogDialEvent(const HandWheelCounters& counters, int8_t delta)
{
FeedRotaryButton& feedButton = mCurrentButtonsState.feedButton();
if (HandWheelCounters::CounterNameToIndex::UNDEFINED != counters.activeCounter()) // && 0 != counters.counts())
{
*mPendantCout << mPrefix << "wheel event " << counters.counts() << endl;
if (0 != delta)
{
if (counters.isLeadCounterActive() && mIsLeadModeSpindle)
{ // Spindle override mode
if (delta > 0)
{
mHal.toggleSpindleOverrideIncrease();
}
else
{
mHal.toggleSpindleOverrideDecrease();
}
}
else if (!counters.isLeadCounterActive() && mIsLeadModeFeed && feedButton.stepMode() == HandwheelStepmodes::Mode::MPG)
{ // FeedRate override mode
if (delta > 0)
{
mHal.toggleFeedrateIncrease();
}
else
{
mHal.toggleFeedrateDecrease();
}
}
else if (!counters.isLeadCounterActive() && (feedButton.stepMode() == HandwheelStepmodes::Mode::CON || feedButton.stepMode() == HandwheelStepmodes::Mode::STEP))
{ // Normal Mode
mHal.setJogCounts(counters);
}
}
mDisplay.onJogDialEvent(counters, delta);
return true;
}
return false;
}
Ovšem abych se mnohl posunout dál, tak potřebuji nejdříve umět tuto komponentu zkompilovat.
A zde jsem se již zasekl:
Kód: Vybrat vše
zdenek@CNC:~/linuxcnc/xhc-whb04b-6$ sudo halcompile --compile --userspace main.cc
Unrecognized file type for mode compile: 'main.c
Dále mi není jasné, jestli se u tohoto driveru mám zabývat Component Personality.
Když hledám nějakou chybu v Arduinu, tak si vložím do určitých míst ve zdrojovém kódu příkaz na poslání zprávy po sériové lince. Někdy si pošlu po sériové lince jen "HAF" abych věděl, zda ten program tam vůbec dojde a někdy si tam vložím nějakou proměnou, u které mě zajímá jakou má hodnotu. Jak se toto řeší zde?
Hlavním cílem není rozchodit tento ovladač, ale naučit se najít a opravit chyby v LCNC.
ZZ