示例#1
0
/*-------------------------------------------------------------------------*/
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;
}
示例#2
0
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();
}
示例#3
0
static void 
writeU4 (u4 const v) {
   file_offset += 4;
   PutLong(v);
}