亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? simport.cpp

?? 用于開發(fā)Modbus工業(yè)級通信
?? CPP
字號:
/////////////////////////////////////////////////////////////////////////////
//
// FILE: simport.cpp : implementation file
//
// See _README.CPP
//
// Implementation of the SimulationSerialPort wrapper class for CRS232Port.
//
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SimPort.h"
#include "abcommsprocessor.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

IMPLEMENT_DYNAMIC( SimulationSerialPort, CRS232Port);

//constructor
SimulationSerialPort::SimulationSerialPort()
{

}


#ifdef _DEBUG
void SimulationSerialPort::Dump(CDumpContext& dc) const
{
   // call the base class first
   CObject::Dump(dc);

   // dump our object to the debuggers output
   // all important members can be dumped at this stage.
   dc << "Simulator 232 Port: " << "\n";
} // Dump
#endif // _DEBUG

// ----------------------------- CalculateReadAheadLength ---------------------
// Calculates amount of bytes to read int order to recieve a full modbus message, 
// based on the 1st 6 bytes. if less than 6 bytes have been read, the function 
// returns the difference.
//
LONG SimulationSerialPort::CalculateReadAheadLength(const BYTE* rxBuffer, DWORD rxBufferIndex)
{
LONG raLength=0;  // read-ahead length
DWORD numItems;   // Modbus command length

   if (pGlobalDialog->m_selectedProtocol == PROTOCOL_SELMOD232)
   {
      if (rxBufferIndex ==0)
         return(MODBUS_HEADDER_LEN);
      else
      {
         if (rxBufferIndex<MODBUS_HEADDER_LEN)
            return(MODBUS_HEADDER_LEN - rxBufferIndex); // read at least 6 bytes before we continue
         else
         {
            // OK we have at least 6 bytes of data in our buffer.

            // Get clever, and look at the command we think we may have gotten
            // remember to do range-checking all of the time
            // This only works under normal comms situations, so give 
            // me a break on the optimisation side.
            raLength = MAX_MODBUS_MESSAGELEN;
            switch (rxBuffer[1])
            {
               case MOD_READ_COILS:
               case MOD_READ_DIGITALS:
                  raLength = MODBUS_CRC_LEN;   //just the CRC follows on this one
                  break;
               case MOD_WRITE_MULTIPLE_COILS:
                  //numItems = rxBuffer[5] + (rxBuffer[6]<<8);
                  numItems = rxBuffer[5] + (rxBuffer[4]<<8);
                  raLength = MODBUS_CRC_LEN + numItems/8 + 1;   // X-data bytes + CRC + 1 length 
                  break;
               case MOD_WRITE_SINGLE_COIL:
                  //numItems = rxBuffer[5] + rxBuffer[6]<<8;
                  raLength = MODBUS_CRC_LEN + 2;   // CRC + 2 data bytes 
                  break;
               case MOD_READ_REGISTERS:
               case MOD_READ_HOLDING:  //analogs are also 16-bit
               case MOD_READ_EXTENDED:
                  raLength = MODBUS_CRC_LEN;   //just the CRC follows on this one
                  break;
               case MOD_WRITE_HOLDING:
               case MOD_WRITE_EXTENDED:
                  //numItems = rxBuffer[5] + (rxBuffer[6]<<8);
                  numItems = rxBuffer[5] + (rxBuffer[4]<<8);
                  raLength = MODBUS_CRC_LEN + 1 + (numItems*2);   // CRC + 2 data bytes 
                  break;
               case MOD_WRITE_SINGLEHOLDING:
                  numItems = 1;  // writes 1 register
                  raLength = MODBUS_CRC_LEN + 1 + (numItems*2);   // CRC + 2 data bytes 
                  break;
               default:
                  break;
            }
            if (raLength >= MAX_MODBUS_MESSAGELEN)
            {
               raLength = MAX_MODBUS_MESSAGELEN;
               //error occured. maybe we should spit out an exception response further along?
            }
         }
         return (raLength);
      }
      return (MODBUS_HEADDER_LEN);  // we should never get here
   }
   else
   {
      // Allen-Bradley DF1 (and JOY)
      CABCommsProcessor *pAB;
      if (pGlobalDialog->m_pServerRS232Array->GetUpperBound() == -1)
         return(1);
      pAB = (CABCommsProcessor *)(pGlobalDialog->m_pServerRS232Array->GetAt(0));
      if (pAB->IsKindOf(RUNTIME_CLASS(CABCommsProcessor)))
      {
         return(pAB->GetRALength());
      }
      return(18);
   }
   return(1);
} // CalculateReadAheadLength

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区久久久久久| 日韩毛片一二三区| 亚洲国产另类av| 不卡av在线网| 久久久久9999亚洲精品| 日韩电影在线免费| 欧美日韩一级片在线观看| 综合欧美一区二区三区| 国产成人在线影院| 精品粉嫩超白一线天av| 日产精品久久久久久久性色| 日韩欧美国产一区二区在线播放| 不卡一区二区在线| 久久久国产精华| 国内一区二区视频| 精品欧美黑人一区二区三区| 日韩国产成人精品| 欧美日韩一级视频| 亚洲成人自拍网| 欧美亚洲综合久久| 亚洲自拍偷拍综合| 欧美亚洲综合在线| 一级做a爱片久久| 色猫猫国产区一区二在线视频| 国产精品成人免费在线| 成人一区二区在线观看| 国产亚洲综合在线| 国产成人综合网| 欧美国产日产图区| 国产大陆亚洲精品国产| 国产欧美日韩不卡| 成人国产精品免费观看动漫| 亚洲国产精品t66y| 成人aa视频在线观看| 自拍视频在线观看一区二区| av色综合久久天堂av综合| 亚洲天堂网中文字| 色综合天天综合在线视频| 亚洲精品国产a| 欧美无人高清视频在线观看| 午夜欧美一区二区三区在线播放| 欧美日韩成人综合天天影院| 日本伊人色综合网| 精品久久五月天| 国产成人在线看| 亚洲色图第一区| 在线视频综合导航| 三级在线观看一区二区 | 不卡一二三区首页| 中文字幕日韩一区| 在线一区二区三区四区五区| 亚洲va中文字幕| 日韩视频一区二区三区在线播放 | 亚洲一区中文日韩| 制服视频三区第一页精品| 精品在线视频一区| 日本一区二区不卡视频| 91麻豆精品秘密| 成人网页在线观看| 亚洲三级视频在线观看| 欧美性大战久久久久久久| 日韩成人一区二区三区在线观看| 久久久久久夜精品精品免费| av激情成人网| 亚洲高清免费视频| 26uuu欧美日本| 91免费版pro下载短视频| 亚洲成人1区2区| 精品久久人人做人人爰| 不卡一卡二卡三乱码免费网站| 一区二区国产视频| 欧美大白屁股肥臀xxxxxx| 成人午夜伦理影院| 亚洲成人黄色影院| 久久女同性恋中文字幕| 色综合天天天天做夜夜夜夜做| 天使萌一区二区三区免费观看| 久久你懂得1024| 色婷婷av一区| 九九精品一区二区| 一区二区在线观看不卡| 精品国产伦一区二区三区观看体验 | 亚洲第一搞黄网站| 久久色视频免费观看| 91麻豆123| 久久99久久久欧美国产| 亚洲精品国产无天堂网2021| 精品欧美一区二区三区精品久久| 91蜜桃视频在线| 精品在线播放午夜| 亚洲欧美日本韩国| 精品国产91乱码一区二区三区| 91在线观看一区二区| 久久99这里只有精品| 亚洲欧美日韩人成在线播放| 欧美刺激午夜性久久久久久久| 色婷婷激情综合| 国产中文一区二区三区| 亚洲福利一二三区| 国产精品成人免费| 久久日韩精品一区二区五区| 在线看一区二区| 国产成人啪免费观看软件| 日本伊人精品一区二区三区观看方式| 国产精品二区一区二区aⅴ污介绍| 欧美一级片免费看| 欧美亚洲一区二区在线| 成人av资源站| 激情偷乱视频一区二区三区| 性感美女久久精品| 亚洲天堂a在线| 久久精品欧美日韩精品| 日韩一二三区视频| 欧美色区777第一页| 99久久伊人久久99| 国产suv精品一区二区6| 久久99精品国产麻豆婷婷| 五月婷婷综合网| 樱花草国产18久久久久| 国产亚洲美州欧州综合国| 欧美一区二区三区爱爱| 欧美视频精品在线观看| 91网上在线视频| 不卡视频一二三| 国产乱码精品一区二区三区av| 日韩电影在线一区二区三区| 亚洲国产wwwccc36天堂| 亚洲精品视频免费观看| 国产精品第四页| 久久精品一区四区| 久久在线观看免费| 欧美成人精品福利| 日韩视频一区二区三区在线播放| 欧美日韩电影在线播放| 欧美色倩网站大全免费| 欧美在线观看禁18| 欧美亚洲综合久久| 在线观看亚洲专区| 91老司机福利 在线| 91麻豆国产精品久久| av不卡免费电影| 99麻豆久久久国产精品免费优播| 成人av在线看| 不卡av免费在线观看| 99久久伊人精品| 99re热视频精品| 91偷拍与自偷拍精品| 97精品久久久久中文字幕| av在线播放一区二区三区| heyzo一本久久综合| 97se亚洲国产综合自在线不卡| av中文字幕在线不卡| 91麻豆国产福利在线观看| 在线国产亚洲欧美| 欧美色涩在线第一页| 欧美久久久久久久久| 91精品国产综合久久国产大片| 在线综合视频播放| 日韩欧美色电影| 精品久久99ma| 国产视频一区二区在线观看| 中文字幕欧美日韩一区| 国产精品女同互慰在线看| 最新国产成人在线观看| 亚洲欧美日韩精品久久久久| 伊人开心综合网| 亚洲不卡一区二区三区| 奇米777欧美一区二区| 激情综合一区二区三区| 国产高清在线观看免费不卡| 成人免费视频视频| 99久久免费视频.com| 在线看国产一区| 91精品国产91久久久久久最新毛片| 欧美一区二区播放| 26uuu成人网一区二区三区| 国产视频一区二区在线| 亚洲狼人国产精品| 性做久久久久久久免费看| 久久成人18免费观看| 波多野结衣中文字幕一区二区三区| 91丨九色丨蝌蚪富婆spa| 欧美日韩一区二区在线观看视频| 日韩一二在线观看| 国产蜜臀97一区二区三区| 亚洲视频一二三| 午夜一区二区三区在线观看| 九色综合国产一区二区三区| 国产成人精品免费| 色噜噜狠狠成人网p站| 日韩视频在线永久播放| 久久精品亚洲精品国产欧美 | 亚洲国产精品人人做人人爽| 美女视频黄a大片欧美| 国产成人8x视频一区二区| 在线观看欧美日本| 久久久午夜电影| 亚洲精品菠萝久久久久久久| 青青草97国产精品免费观看无弹窗版| 国产成人在线看|