/*-------------------------------------------------------------------------*/ long _CALLSTYLE_ SM32Post( tSM32Motor* M, long Cmd, long Data ) { WORD16 MyOffset; if( M_BASEPORT==mhSoftwareTest ) return mcrOk; /* M valid ? */ if( (M_BASEPORT < 0x100) || (M_BASEPORT & 3 ) || (((BYTE8)(M_NUMBER-1)) >2) ) return mcrNotInitialised; /* Calc channel offset */ MyOffset = oChannel[ M_NUMBER-1 ]; /* Previous command not processed yet? */ if( GetByte(M_BASEPORT, MyOffset+oFlags) & cWFlag ) return mcrBusy; /* Put Data and Command. */ PutLong( M_BASEPORT, MyOffset+oData, Data ); PutByte( M_BASEPORT, MyOffset+oWCmd, Cmd ); return mcrOk; }
bool AddDigRecord(event ev) { if (IsRecordDisabled(ev)) return true; uint i = OpenRecord2(AUX_RECORD, cdwAuxRecord); reCurr.ti = *GetCurrTimeDate(); reCurr.cdwRecord = cdwAuxRecord++; SaveCache(&chAuxRecord); reCurr.ev = ev; PutChar(0, ibDig); switch (ev) { case EVE_PROFILEOPEN: case EVE_SPECIALOPEN: Put(1, (uchar *)&mpdiDigital[ibDig], sizeof(digital)); break; // case EVE_PROFILE: memcpy(&reCurr.mpbBuff+1, &mpcwStopCan[ibDig], sizeof(uint)); break; case EVE_PROFILE2: PutInt(0, mpcwStopCan[ibDig]); PutInt(2, mpcwStopAuxCan[ibDig]); break; // case EVE_PROFILE_OK: memcpy(&reCurr.mpbBuff+1, &cwHouRead, sizeof(uint)); // memcpy(&reCurr.mpbBuff+3, &mpcwStopCan[ibDig], sizeof(uint)); break; case EVE_PROFILE_OK2: PutInt(0, cwHouRead); PutInt(2, mpcwStopCan[ibDig]); PutInt(4, mpcwStopAuxCan[ibDig]); break; case EVE_PROFILE_ERROR2:PutInt(1, GetCurr()); PutInt(3, mpSerial[ibPort]); break; case EVE_PROFILECLOSE2: PutInt(1, cwHouLength); break; case EVE_REFILL1: PutInt(1, iwHardHou); PutInt(3, iwBmin); PutInt(5, iwBmax); break; case EVE_PREVIOUS_TOP: PutInt(0, iwMajor); break; case EVE_CURRENT2_CANALS: Put(0, (uchar *)&mpbCurrent2Buff, 8); break; case EVE_CURRENT2_VALUE: PutLong(1, dwRecord); PutInt(5, wRecord); break; // case EVE_CHECKUP_START: memcpy(&reCurr.mpbBuff+0, &boCheckupReadonly, sizeof(uchar)); // memcpy(&reCurr.mpbBuff+1, &mpbCheckupLimitD[ibDig], sizeof(uchar)); // memcpy(&reCurr.mpbBuff+2, &mpbCheckupLimitM[ibDig], sizeof(uchar)); break; // // case EVE_CHECKUP_NEXT: memcpy(&reCurr.mpbBuff+0, &cwHouRead, sizeof(uint)); break; // // case EVE_CHECKUP_VALUE: memcpy(&reCurr.mpbBuff+0, &dwBuffC, sizeof(ulong)); // memcpy(&reCurr.mpbBuff+4, &mpdwChannelsA[diPrev.ibLine], sizeof(ulong)); break; // // case EVE_CHECKUP_DAY_SKIP: // case EVE_CHECKUP_MON_SKIP: // case EVE_CHECKUP_DAY_FAIL: // case EVE_CHECKUP_MON_FAIL: // case EVE_CHECKUP_DAY: // case EVE_CHECKUP_MON: memcpy(&reCurr.mpbBuff+0, &daAlt, sizeof(date)); break; // // case EVE_CHECKUP_CANAL: memcpy(&reCurr.mpbBuff+0, &ibCan, sizeof(uchar)); // memcpy(&reCurr.mpbBuff+1, &diPrev, sizeof(digital)); break; // // case EVE_CHECKUP_DAY_NEXT: // case EVE_CHECKUP_MON_NEXT: memcpy(&reCurr.mpbBuff+0, &daAlt, sizeof(date)); // memcpy(&reCurr.mpbBuff+6, &ibGrp, sizeof(uchar)); break; // // case EVE_CHECKUP_INFO: memcpy(&reCurr.mpbBuff+0, &cbCheckupDays, sizeof(uchar)); // memcpy(&reCurr.mpbBuff+1, &cbCheckupErrorDay, sizeof(uchar)); // memcpy(&reCurr.mpbBuff+2, &cbCheckupErrorMon, sizeof(uchar)); break; // // case EVE_DEVICE_P_DEFECT: memcpy(&reCurr.mpbBuff+0, &tiDig, sizeof(time)); break; case EVE_EXTENDED_0_ERROR: PutChar(0, bRecord); PutChar(1, bExt0Counter); PutChar(2, bExt0Limit); break; } CloseRecord(AUX_RECORD, i); return CloseOut(); }
static void writeU4 (u4 const v) { file_offset += 4; PutLong(v); }