91美女视频-亚洲免费观看视频-欧美a∨-久热在线视频-日韩黄网站-成av人片在线观看www-久操综合-超碰av在线播放-性欧美欧美巨大69-婷婷二区-av男人的天堂网-中文字幕一区在线播放-玖草在线观看-国产网址在线观看-免费在线不卡av

moecmks
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
樓主  發(fā)表于: 2017-04-24 19:39
先發(fā) FX1S數(shù)據(jù)讀報文,PLC接受到信號準備數(shù)據(jù)放到緩沖區(qū)。然后在用ReadFile從緩沖區(qū)接受一次報文。。。 30 MS左右
這時間正常嗎?還是說我設(shè)置有問題?總感覺這樣時間有點長啊。【工控菜鳥一個,放下代碼求老鳥指點一二,有無能提升效率的地方。 ^_^】

復(fù)制代碼
  1. #include <Windows.h>
  2. #include "codecb.h"
  3. #include "invariant.h"
  4. #include <assert.h>
  5. #include <tchar.h>
  6. #include "timing.h"
  7. extern HANDLE commport;
  8. _CRT_ALIGN (32)
  9. char ASCII_tonums_RVlut[0xFFFF+1];
  10. void build_ASC_RVlut (void)
  11. {
  12.   uint32_t ii;
  13.   static BOOL __init = FALSE;
  14.   if ( __init == TRUE) return;
  15.        __init  = TRUE;
  16.   ZeroMemory (ASCII_tonums_RVlut, sizeof (ASCII_tonums_RVlut));
  17.   for (ii = 0; ii != 0x10000; ii++) {
  18.    uint16_t lo = ii & 0x00FF;
  19.    uint16_t hi = ii >> 8;
  20.    if ( (( lo >= '0' && lo <= '9') || ( lo >= 'A' && lo <= 'F'))
  21.     && (( hi >= '0' && hi <= '9') || ( hi >= 'A' && hi <= 'F')))
  22.    {
  23.     if ( ( hi >= '0' && hi <= '9'))
  24.       ASCII_tonums_RVlut[ii] = hi - '0';
  25.     else if ( ( hi >= 'A' && hi <= 'F'))
  26.       ASCII_tonums_RVlut[ii] = hi - 'A' + 10;
  27.     if ( ( lo >= '0' && lo <= '9'))
  28.       ASCII_tonums_RVlut[ii] |= ( ( (unsigned) (lo - '0')) << 4);
  29.     else if ( ( lo >= 'A' && lo <= 'F'))
  30.       ASCII_tonums_RVlut[ii] |= ( ( (unsigned) (lo - 'A' + 10)) << 4);
  31.    }
  32.   }
  33. }
  34. BOOL comm_init (int comm_index)
  35. {
  36.   DCB dcbs;
  37.   COMMTIMEOUTS ct;  
  38.   BOOL success_io_;
  39.   TCHAR comm_buf0[256];
  40.   _stprintf (& comm_buf0[0], _T ("//./COM%i"), comm_index);
  41.   comm_close ();
  42.   commport = CreateFile ( & comm_buf0[0], GENERIC_READ | GENERIC_WRITE, 0,
  43.               NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
  44.   success_io_ = GetCommState (commport, & dcbs);
  45.   assert (success_io_ != FALSE);
  46.   dcbs.BaudRate = CBR_9600;
  47.   dcbs.fParity  = TRUE;
  48.   dcbs.Parity   = EVENPARITY;
  49.   dcbs.StopBits = ONESTOPBIT;
  50.   dcbs.ByteSize = 7;
  51.   dcbs.fDtrControl = DTR_CONTROL_DISABLE;
  52.   dcbs.fRtsControl = RTS_CONTROL_DISABLE;
  53.     
  54.   success_io_ = SetupComm (commport, 2048, 2048);
  55.   assert (success_io_ != FALSE);
  56.   success_io_ = SetCommState (commport, & dcbs);
  57.   assert (success_io_ != FALSE);
  58.   // SetTimeOut.
  59.   ct.ReadIntervalTimeout = 0x0000FFFF;
  60.   ct.ReadTotalTimeoutMultiplier = 0x0000FFFF;
  61.   ct.ReadTotalTimeoutConstant = 0xFFFFFFFE;
  62.   ct.WriteTotalTimeoutMultiplier = 0x0000FFFF;
  63.   ct.WriteTotalTimeoutConstant =   0xFFFFFFFE;  
  64.   
  65.   success_io_ = SetCommTimeouts (commport, &ct);  
  66.   assert (success_io_ != FALSE);
  67.   success_io_ = SetupComm (commport, 2400, 2400);  
  68.   assert (success_io_ != FALSE);
  69.   success_io_ = PurgeComm (commport, PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT);
  70.   assert (success_io_ != FALSE);
  71.   build_ASC_RVlut ();
  72.   
  73.   timing_init48 ();
  74.   INIT_WSCCRSEC__;
  75. }
  76. void comm_close (void)
  77. {
  78.   if (commport != INVALID_HANDLE_VALUE)
  79.   {
  80.     PurgeComm (commport, PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT);
  81.     CloseHandle (commport);
  82.   }
  83.   commport = INVALID_HANDLE_VALUE;
  84. }
  85. int8_t readOYB (int16_t e_addr) {
  86.   struct read_section2 rdsec;
  87.   char varsbuf[128];
  88.   int isr = 0;
  89.   int tm_numbs = 0;
  90.   uint16_t rv_numbs = 0;
  91.   BOOL io_success_;
  92.   DWORD rv_numbs2 = 0;
  93.   /* prepare Output-register read_section. */
  94.   isr = fx1s_makersecb ( & rdsec, FX1S_REGISTER_FIELD_Y_OUT,
  95.         & rv_numbs, FX1S_VERSION_30MR, e_addr);
  96.   assert (isr == FX1S_OK);
  97.   /* write Output-register read-code. */
  98.   io_success_ = WriteFile (commport, & rdsec,
  99.      sizeof(struct read_section), & tm_numbs, NULL);
  100.   assert (io_success_ != FALSE);
  101.   assert (tm_numbs == sizeof(struct read_section));
  102.   io_success_ = ReadFile  (commport, & varsbuf[0], rv_numbs, & rv_numbs2, NULL);
  103.   assert (io_success_ != FALSE);
  104.   assert (rv_numbs2 == rv_numbs);
  105.   assert (varsbuf[0] == SECTION_LINK_STX);
  106.   return ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[1]];
  107. }
  108. void setOYB (int16_t e_addr, int8_t val) {
  109.   char varsbuf[128];
  110.   int isr = 0;
  111.   int tm_numbs = 0;
  112.   uint16_t rv_numbs = 0;
  113.   BOOL io_success_;
  114.   DWORD rv_numbs2 = 0;
  115.   /* prepare Output-register write_section. */
  116.   isr = fx1s_makewsecb (& varsbuf[0], & val, FX1S_REGISTER_FIELD_Y_OUT,
  117.               & rv_numbs, FX1S_VERSION_30MR, e_addr);
  118.   assert (isr == FX1S_OK);
  119.   /* write Output-register write-code. */
  120.   io_success_ = WriteFile (commport, & varsbuf[0],
  121.      rv_numbs, & tm_numbs, NULL);
  122.   assert (io_success_ != FALSE);
  123.   assert (rv_numbs == tm_numbs);
  124.   io_success_ = ReadFile  (commport, & varsbuf[0], 1, & rv_numbs2, NULL);
  125.   assert (io_success_ != FALSE);
  126.   assert (rv_numbs2 == 1);
  127.   assert (varsbuf[0] == SECTION_LINK_ACK);
  128. }
  129. static __forceinline
  130. int8_t readRELAY_M (int16_t addr) {
  131.   struct read_section2 rdsec;
  132.   char varsbuf[128];
  133.   int isr = 0;
  134.   int tm_numbs = 0;
  135.   uint16_t rv_numbs = 0;
  136.   BOOL io_success_;
  137.   DWORD rv_numbs2;
  138.   isr = fx1s_makersecb ( & rdsec, FX1S_REGISTER_FIELD_M,
  139.         & rv_numbs, FX1S_VERSION_14MR, addr);
  140.   assert (isr == FX1S_OK);
  141.   io_success_ = WriteFile (commport, & rdsec,
  142.      sizeof(struct read_section), & tm_numbs, NULL);
  143.   assert (io_success_ != FALSE);
  144.   assert (tm_numbs == sizeof(struct read_section));
  145.   io_success_ = ReadFile  (commport, & varsbuf[0], rv_numbs, & rv_numbs2, NULL);
  146.   assert (io_success_ != FALSE);
  147.   assert (rv_numbs2 == rv_numbs);
  148.   assert (varsbuf[0] == SECTION_LINK_STX);
  149.   return ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[1]];
  150. }
  151. static  __forceinline
  152. void writeRELAY_M (uint16_t addr, int8_t val) {
  153.   char varsbuf[128];
  154.   int isr = 0;
  155.   int tm_numbs = 0;
  156.   uint16_t rv_numbs = 0;
  157.   BOOL io_success_;
  158.   DWORD rv_numbs2;
  159.   /* prepare Output-register write_section. */
  160.   isr = fx1s_makewsecb (& varsbuf[0], & val, FX1S_REGISTER_FIELD_M,
  161.               & rv_numbs, FX1S_VERSION_14MR, addr);
  162.   assert (isr == FX1S_OK);
  163.   /* write Output-register write-code. */
  164.   io_success_ = WriteFile (commport, & varsbuf[0],
  165.      rv_numbs, & tm_numbs, NULL);
  166.   assert (io_success_ != FALSE);
  167.   assert (rv_numbs == tm_numbs);
  168.   io_success_ = ReadFile  (commport, & varsbuf[0], 1, & rv_numbs2, NULL);
  169.   assert (io_success_ != FALSE);
  170.   assert (rv_numbs2 == 1);
  171.   assert (varsbuf[0] == SECTION_LINK_ACK);
  172. }
  173. void plc_force_close_ (void) {
  174.   BYTE obt;
  175.     /* force close PLC [by M8037]  **/
  176.     obt = readRELAY_M (8037);
  177.     writeRELAY_M (8037, obt | 0x20);
  178. }
  179. void plc_force_open_ (void) {
  180.   BYTE obt;
  181.   /* force open PLC [by M8035/M8036/M8037]  **/
  182.   obt = readRELAY_M (8037);
  183.   obt &= ~(1 << (8037 & 7));
  184.   writeRELAY_M (8037, obt);
  185.   obt = readRELAY_M (8035);
  186.   obt |= (11 << (8035 & 7));
  187.   writeRELAY_M (8035, obt);
  188. }
  189. void plc_set_pulse235_ (uint32_t val) {
  190.   int isr = 0;
  191.   char varsbuf[128];
  192.   uint16_t rv_numbs = 0;
  193.   DWORD rv_numbs2 = 0;
  194.   DWORD rv_numbs3 = 0;
  195.   BOOL io_success_;
  196.   isr = fx1s_makewsecb (& varsbuf[0], & val, FX1S_REGISTER_FIELD_C32,
  197.               & rv_numbs, FX1S_VERSION_14MR, PULSE_ENCODER_ADDR);
  198.   assert (isr == FX1S_OK);
  199.   rv_numbs2 = rv_numbs;
  200.   io_success_ = WriteFile (commport, & varsbuf[0], rv_numbs, & rv_numbs3, NULL);
  201.   assert (io_success_ != FALSE);
  202.   assert (rv_numbs2 == rv_numbs3);
  203.   io_success_ = ReadFile  (commport, & varsbuf[0], 1, & rv_numbs2, NULL);
  204.   assert (io_success_ != FALSE);
  205.   assert (rv_numbs2 == 1);
  206.   assert (varsbuf[0] == SECTION_LINK_ACK);
  207. }
  208. uint32_t plc_get_pulse235_ (void) {
  209.   union {
  210.     char bgroup[4];
  211.     int32_t inter;
  212.   } cc_timing;
  213.   BOOL io_success_;
  214.   DWORD rv_numbs = 0;
  215.   BYTE varsbuf[128];
  216.   io_success_ = WriteFile (commport, & g_crs2_pulse235.rsc, sizeof (struct read_section), & rv_numbs, NULL);
  217.   assert (io_success_ != FALSE);
  218.   assert (rv_numbs == sizeof (struct read_section));
  219.   io_success_ = ReadFile  (commport, & varsbuf [0], g_crs2_pulse235.rsc_cnt, & rv_numbs, NULL);
  220.   assert (io_success_ != FALSE);
  221.   assert (rv_numbs == g_crs2_pulse235.rsc_cnt);
  222.   assert (varsbuf[0] == SECTION_LINK_STX);
  223.   assert (varsbuf[9] == SECTION_LINK_ETX);
  224.   cc_timing.bgroup[0] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[1]];
  225.   cc_timing.bgroup[1] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[3]];
  226.   cc_timing.bgroup[2] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[5]];
  227.   cc_timing.bgroup[3] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[7]];
  228.   return cc_timing.inter;
  229. }


moecmks
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
1樓  發(fā)表于: 2017-04-24 19:48
FX1S 報文編解碼
復(fù)制代碼
  1. /*-
  2. * Copyright (c) 2017 moecmks
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. *    notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. *    notice, this list of conditions and the following disclaimer in the
  12. *    documentation and/or other materials provided with the distribution.
  13. *
  14. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  15. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17. * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  18. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  20. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  21. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRCMD, STRICT
  22. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  23. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  24. * SUCH DAMAGE.
  25. *
  26. */
  27. #if !defined (codec_included_MOECMKS)
  28. #define codec_included_MOECMKS
  29. /*
  30. * fx1s read/write codec.
  31. * simple, each read a current register size unit memory
  32. * more information, please refer to the PLC manual and Internet resources.
  33. */
  34. #if defined (__cplusplus)  /** __cplusplus */
  35. extern "C" {
  36. #endif  /** __cplusplus */
  37. /* Portable fixed length ***/
  38. #include "stdint.h"
  39. /*
  40. * errror code
  41. */
  42. #define FX1S_RANGE 1
  43. #define FX1S_FAIL 2
  44. #define FX1S_KFAIL 3
  45. #define FX1S_UNKN 4
  46. #define FX1S_LIMIT 5
  47. #define FX1S_NAK 6
  48. #define FX1S_ACK 7
  49. #define FX1S_PARA 8
  50. #define FX1S_INCOP 9
  51. #define FX1S_OK 0
  52. /*
  53. * version control
  54. */
  55. enum FX1S_VERSION {
  56.   FX1S_VERSION_10MR = 0,
  57.   FX1S_VERSION_14MR,
  58.   FX1S_VERSION_20MR,
  59.   FX1S_VERSION_30MR,
  60.   FX1S_VERSION_OVERFLAGS
  61. };
  62. /*
  63. * register field.
  64. * Ignore T bit register and set register.
  65. * Ignore C bit register
  66. */
  67. enum FX1S_REGISTER_FIELD {
  68.   FX1S_REGISTER_FIELD_S = 0,
  69.   FX1S_REGISTER_FIELD_X,
  70.   FX1S_REGISTER_FIELD_Y_OUT,
  71.   FX1S_REGISTER_FIELD_Y_PLS,
  72.   FX1S_REGISTER_FIELD_D,
  73.   FX1S_REGISTER_FIELD_T,
  74.   FX1S_REGISTER_FIELD_M,
  75.   FX1S_REGISTER_FIELD_C16,
  76.   FX1S_REGISTER_FIELD_C32,
  77.   FX1S_REGISTER_FIELD_CRESET
  78. };
  79. /*
  80. * section .link code
  81. */
  82. #define SECTION_LINK_STX 0x02 /* PLC info-section begin flags. */
  83. #define SECTION_LINK_ETX 0x03 /* PLC info-section end flags .***/
  84. #define SECTION_LINK_EOT 0x03 /* .***/
  85. #define SECTION_LINK_ENQ 0x05 /* PLC only test enable */
  86. #define SECTION_LINK_ACK 0x06 /* PLC reply "can do" */
  87. #define SECTION_LINK_LF 0x0A /* .***/
  88. #define SECTION_LINK_CL 0x0C /* .***/
  89. #define SECTION_LINK_CR 0x0D /* .***/
  90. #define SECTION_LINK_NAK 0x15 /* PLC reply "bad things" */
  91. /*
  92. * section cmdion.
  93. */
  94. #define SECTION_CMD_READ      '0' /* .***/
  95. #define SECTION_CMD_WRITE     '1' /* .***/
  96. #define SECTION_CMD_FORCE_ON  '7' /* .***/
  97. #define SECTION_CMD_FORCE_OFF '8' /* .***/
  98. /*
  99. * read section
  100. */
  101. struct read_section {
  102.   uint8_t stx; /* read_section's stdhead. always SECTIOM_LINK_STX */
  103.   uint8_t cmd; /* read_section's cmd  always SECTIOM_CMD_READ  */
  104.   uint8_t unit_address[4];  /* read_section's address*/
  105.   uint8_t numb[2];          /* read's byte count. simple always one */
  106.   uint8_t etx;    /* read_section's stdend.   always SECTION_LINK_ETX  */
  107.   uint8_t crc[2]; /* correcting code*/
  108. };
  109. /*
  110. * read section2
  111. */
  112. struct read_section2 {
  113.   uint8_t stx; /* read_section's stdhead. always SECTIOM_LINK_STX */
  114.   uint8_t cmd; /* read_section's cmd  always SECTIOM_CMD_READ  */
  115.   uint8_t unit_address[4];  /* read_section's address*/
  116.   uint8_t numb[2];          /* read's byte count. simple always one */
  117.   uint8_t etx;    /* read_section's stdend.   always SECTION_LINK_ETX  */
  118.   uint8_t crc[2]; /* correcting code*/
  119.   uint8_t crce; /* easy to read..**/
  120.   uint16_t opbsize; /******/
  121.   uint8_t opboff; /* for bit register(X, Y, M.) **/
  122.   uint16_t opbaddr; /* easy to read. **/
  123. };
  124. /*
  125. * write section
  126. */
  127. struct write_section {
  128.   uint8_t stx; /* write_section's stdhead.  always SECTIOM_LINK_STX */
  129.   uint8_t cmd; /* write_section's cmd  always SECTIOM_CMD_WRITE   */
  130.   uint8_t unit_address[4]; /* write_section's address*/
  131.   uint8_t numb[2]; /* write's byte count.. must <= 64  */
  132.   uint8_t etx; /* write_section's stdend. */
  133.   uint8_t crc[2]; /* correcting code*/
  134.   uint8_t crce; /* easy to read..**/
  135.   uint8_t obpoff; /* for bit register(X, Y, M.) **/
  136.   uint16_t opbaddr; /* easy to read. **/
  137. };
  138. /*
  139. * force section
  140. */
  141. struct force_section {
  142.   uint8_t stx; /* force_section's stdhead.  always SECTIOM_LINK_STX */
  143.   uint8_t cmd; /* force_section's cmd  always SECTIOM_CMD_FORCE_OFF or SECTIOM_CMD_FORCE_ON   */
  144.   uint8_t unit_address[4]; /* force_section's address*/
  145.   uint8_t etx; /* force_section's stdend. */
  146.   uint8_t crc[2]; /* correcting code*/
  147. };
  148. /*
  149. * Accept the write section is very simple,
  150. * if successful send SECTION_LINK_ACK otherwise SECTION_LINK_NAK
  151. */
  152. int fx1s_makersecb (struct read_section2 *rsec, /* write to the serial port, use the size of the read_section */
  153.                          enum FX1S_REGISTER_FIELD rf, uint16_t  *rvap_size,
  154.                          enum FX1S_VERSION ver, uint16_t address);
  155. int fx1s_makewsecb (void *wsec, /* Variable size structure, so use void *, please understand **/
  156.                    void *spval,
  157.                          enum FX1S_REGISTER_FIELD rf, uint16_t  *wsec_size,
  158.                          enum FX1S_VERSION ver, uint16_t address);
  159. int fx1s_makefsecb (struct force_section *fsec,
  160.                          enum FX1S_REGISTER_FIELD rf,
  161.                          enum FX1S_VERSION ver, uint16_t address);            
  162. #if defined (__cplusplus)  /** __cplusplus */
  163. }
  164. #endif  /** __cplusplus */
  165. #endif /* codec_included_MOECMKS */
moecmks
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
2樓  發(fā)表于: 2017-04-24 19:52
復(fù)制代碼
  1. /*-
  2. * Copyright (c) 2017 moecmks
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. *    notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. *    notice, this list of conditions and the following disclaimer in the
  12. *    documentation and/or other materials provided with the distribution.
  13. *
  14. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  15. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17. * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  18. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  20. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  21. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  22. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  23. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  24. * SUCH DAMAGE.
  25. *
  26. */
  27. #include <assert.h>
  28. #include <string.h>
  29. #include "codecb.h"
  30. /* Convert characters to specific number - noexport */
  31. static
  32. char ascii_to_num (char ch) {
  33.   /* e.g.
  34.    *  source '9' -> target 9
  35.    *  source 'A' -> target 10
  36.    *  source '1' -> target 1
  37.    *  source 'a' -> (nondone, Don't use lowercase letters in fx1s-14mr-001).
  38.    */
  39.   if (ch >= '0' && ch <= '9')
  40.     return (ch - '0');
  41.   if (ch >= 'A' && ch <= 'F')
  42.     return (ch - ('A' - 10));
  43.   else
  44.     assert (0);
  45.   return ch;
  46. }
  47. /* Convert number to specific characters - noexport */
  48. static
  49. char num_to_ascii (char ch) {
  50.   /* e.g.
  51.    *  source 9 -> target '9'
  52.    *  source A -> target '0'
  53.    *  source 1 -> target '1'
  54.    *  source a -> (nondone, Don't use lowercase letters in fx1s-14mr-001).
  55.    */
  56.   if (ch >= 0x00 && ch <= 0x09)
  57.     return (ch + '0');
  58.   if (ch >= 0x0A && ch <= 0x0F)
  59.     return (ch + ('A' - 10));
  60.   else
  61.     assert (0);
  62.   return ch;
  63. }
  64. /* XXX:L-endian.
  65. */
  66. static
  67. uint16_t vailed8 (uint16_t nums) {
  68.   
  69.   /* e.g.
  70.    * 1234 vailed.
  71.    * 9000 invailed.
  72.    * 1007 vailed.
  73.    * 1811 invailed.
  74.    * 0 ~ 65535
  75.    */
  76.    uint16_t d0 = nums % 10 >> 0;
  77.    uint16_t d1 = nums % 100 / 10;
  78.    uint16_t d2 = nums % 1000 / 100;
  79.    uint16_t d3 = nums % 10000 / 1000;
  80.   
  81.    if ( d0 > 7 || d1 > 7)
  82.      return -1;
  83.    if ( d2 > 7)
  84.      return -1;
  85.    return d0 + d1 * 8 + d2 * 8 * 8 + d3 * 8 * 8 * 8;
  86. }
  87. static
  88. uint8_t fxcrc_adjust (unsigned char *crcbuf, uint32_t num) {
  89.   
  90.   uint32_t s= 0;
  91.   uint32_t st = 0;
  92.   
  93.   for (; s != num; s++)
  94.     st += crcbuf[s];
  95.   /* we only save lowest bit's byte **/
  96.   return st & 0xFF;
  97. }
  98. static /* we not check numb cross register **.**/
  99. uint32_t fxcalc_addru (enum FXREGS_FIELD reg, uint16_t addr,
  100.                            enum FX1S_VERSION ver,
  101.                            uint16_t  *opbsize,
  102.                                 uint16_t *raddr, unsigned char *dboff) {
  103.   
  104.   static const /* XXX:enum constant dependence **/
  105.                    uint16_t xmax_tab[4] = { 6, 8, 12, 16 };
  106.   static const /* XXX:enum constant dependence **/
  107.                    uint16_t ymax_tab[4] = { 4, 6, 8, 14 };
  108.   uint16_t addr0 = 0x00A0;
  109.   uint16_t eig = vailed8 (addr);
  110.   uint8_t off = -1;
  111.   uint32_t opbsize0 = 2;
  112.   switch (reg) {
  113.     
  114.   case FX1S_REGISTER_FIELD_D:
  115.   
  116.     if (addr <= 127 && addr == addr) /* numbers: 128, normal use */
  117.       addr0 = 0x1000 + addr * 2;
  118.     else if (addr <= 255) /* numbers: 128, save use */
  119.       addr0 = 0x1000 + addr * 2;
  120.     else if (addr >= 1000 && addr <= 2499)  /* numbers: 1500, file register */
  121.       addr0 = 0x1000 + addr * 2;
  122.     else if (addr >= 8000 && addr <= 8255) /* numbers: 256, special IO port */
  123.       addr0 = 0x0E00 + (addr - 8000) * 2;
  124.     else  /* Illegal access */
  125.       return FX1S_RANGE;
  126.     break;
  127.   case FX1S_REGISTER_FIELD_X:
  128.     /*
  129.      * Check the number of available X-coils according to the PLC version
  130.      */
  131.     if ((eig = vailed8 (addr)) == -1
  132.      || (eig >= xmax_tab[ver]) )
  133.       return FX1S_PARA;
  134.       
  135.     addr0 = 0x0080 + eig / 8;
  136.     off = eig & 7;
  137.     
  138.     opbsize0 = 1;
  139.     break;
  140.     
  141.   case FX1S_REGISTER_FIELD_Y_PLS:
  142.     addr0 += 0x0200;
  143.   case FX1S_REGISTER_FIELD_Y_OUT:
  144.   
  145.     /*
  146.      * Check the number of available Y-coils according to the PLC version
  147.      */
  148.     if ((eig = vailed8 (addr)) == -1)
  149.       return FX1S_PARA;
  150.     
  151.     addr0 += eig / 8;
  152.     off = eig & 7;
  153.     
  154.     opbsize0 = 1;
  155.     break;
  156.   case FX1S_REGISTER_FIELD_S:
  157.   
  158.     if ((addr >=  128)) /* numbers:128, status register **/
  159.       return FX1S_RANGE;
  160.     addr0 = addr / 8;
  161.     off = addr & 7;
  162.     
  163.     opbsize0 = 1;
  164.     break;
  165.   
  166.   case FX1S_REGISTER_FIELD_T:
  167.   
  168.     if ( (addr <=  63)) /* numbers:64, 100ms or 10ms M8028/D8030/D8031 **/
  169.       addr0 = 0x0800 + addr * 2;
  170.     else    
  171.       return FX1S_RANGE;
  172.     break;
  173.     
  174.   case FX1S_REGISTER_FIELD_M:
  175.   
  176.     if (addr < 384) /* numbers: 384, normal use */
  177.       addr0 = 0x0100 + addr / 8;
  178.     else if (addr < 512) /* numbers: 512, save use */
  179.       addr0 = 0x0100 + addr / 8;
  180.     else if (addr >= 8000 && addr < 8256) /* numbers: 256, special IO port */
  181.       addr0 = 0x01E0 + (addr - 8000) / 8;
  182.     else /* Illegal access */
  183.       return FX1S_RANGE;
  184.     
  185.     off = addr & 7;
  186.     opbsize0 = 1;
  187.     break;
  188.   
  189.   case FX1S_REGISTER_FIELD_C16:
  190.   
  191.     if (addr < 16) /* numbers: 16, normal use */
  192.       addr0 = 0x0A00 + addr * 2;
  193.     else if (addr < 32) /* numbers: 16, save use */
  194.       addr0 = 0x0A00 + addr * 2;
  195.     else /* Illegal access */
  196.       return FX1S_RANGE;
  197.     break;
  198.     
  199.   case FX1S_REGISTER_FIELD_C32:
  200.   
  201.    /* for C32 high speed registers,
  202.     * we only perform some basic checks, please note
  203.     **/
  204.     if (addr > 200 && addr <= 255)
  205.       addr0 = 0x0C00 + (addr - 200) * 4;
  206.     else /* Illegal access */
  207.       return FX1S_RANGE;
  208.       
  209.     opbsize0 = 4;
  210.     break;
  211.   
  212.   case FX1S_REGISTER_FIELD_CRESET:
  213.   
  214.     if (addr <= 255)
  215.       addr0 = 0x03C0 + addr / 8;
  216.     else /* Illegal access */
  217.       return FX1S_RANGE;
  218.       
  219.     opbsize0 = 1;
  220.     break;
  221.     
  222.   default:
  223.       return FX1S_PARA;
  224.   }
  225.   
  226.   *raddr = addr0;
  227.   *dboff = off;
  228.   *opbsize = opbsize0;
  229.   return FX1S_OK;
  230. }
  231. int fx1s_makersecb (struct read_section2 *rsec, /* write to the serial port, use the size of the read_section */
  232.                          enum FX1S_REGISTER_FIELD rf, uint16_t  *rvap_size,
  233.                          enum FX1S_VERSION ver, uint16_t address)
  234. {
  235.   struct read_section2 sec;
  236.   uint32_t e;
  237.   
  238.   /** phase 1:fill stdhead/stdend flags and cmd, rread count,s */
  239.   sec.stx = SECTION_LINK_STX;
  240.   sec.etx = SECTION_LINK_ETX;
  241.   sec.cmd = SECTION_CMD_READ;
  242.   /** phase 2:calc address for register and current PLC version */
  243.   e = fxcalc_addru (rf, address, ver, & sec.opbsize, & sec.opbaddr, & sec.opboff);
  244.   if (e != FX1S_OK)
  245.     return e;
  246.   else
  247.    *rvap_size = sizeof (sec.stx) +
  248.                 sizeof (sec.crc)+ sizeof (sec.etx) + sec.opbsize * 2;
  249.   /** phase 3:fill numb ascii, * */
  250.   sec.numb[0] = num_to_ascii ( (sec.opbsize  & 0xF0) >>4);
  251.   sec.numb[1] = num_to_ascii ( (sec.opbsize  & 0x0F) >>0);
  252.   
  253.   /** phase 4:fill address ascii, * */
  254.   sec.unit_address[0] = num_to_ascii ( (sec.opbaddr  & 0xF000) >>12);
  255.   sec.unit_address[1] = num_to_ascii ( (sec.opbaddr  & 0x0F00) >> 8);
  256.   sec.unit_address[2] = num_to_ascii ( (sec.opbaddr  & 0x00F0) >> 4);
  257.   sec.unit_address[3] = num_to_ascii ( (sec.opbaddr  & 0x000F) >> 0);
  258.   
  259.   /** phase 5:crc adjust, fill ascii buf * */
  260.   sec.crce = fxcrc_adjust (& sec.cmd, sizeof (sec.cmd) + sizeof (sec.unit_address)
  261.                                         + sizeof (sec.numb)
  262.                                         + sizeof (sec.etx));
  263.   sec.crc[0] = num_to_ascii ( (sec.crce  & 0xF0) >> 4);
  264.   sec.crc[1] = num_to_ascii ( (sec.crce  & 0x0F) >> 0);
  265.   
  266.   memcpy (rsec, & sec, sizeof (sec));
  267.   return FX1S_OK;  
  268. }
  269. int fx1s_makewsecb (void *wsec, /* Variable size structure, so use void *, please understand **/
  270.                    void *buf, /* wsec size == sizeof(wc) * 2  **/
  271.                          enum FX1S_REGISTER_FIELD rf, uint16_t *wsec_size,
  272.                          enum FX1S_VERSION ver, uint16_t address)
  273. {
  274.   uint16_t opbsize, opbaddr;
  275.   char obpoff;
  276.   char varsbuf[256];
  277.   char *as = buf, cs;
  278.   uint32_t e;
  279.   uint32_t s = 0;
  280.   struct write_section *secp = wsec;
  281.   struct write_section *secdp = (void *)varsbuf;
  282.   /** phase 1:fill stdhead flags and cmd */
  283.   secdp->stx = SECTION_LINK_STX;
  284.   secdp->cmd = SECTION_CMD_WRITE;
  285.   /** phase 2:calc address for register and current PLC version */
  286.   e = fxcalc_addru (rf, address, ver, & opbsize, & opbaddr, & obpoff);
  287.   if (e != FX1S_OK)
  288.     return e;
  289.   else
  290.     *wsec_size = sizeof (struct write_section) + opbsize * 2;
  291.   /** phase 3:fill numb ascii, * */
  292.   secdp->numb[0] = num_to_ascii ( (opbsize  & 0xF0) >>4);
  293.   secdp->numb[1] = num_to_ascii ( (opbsize  & 0x0F) >>0);
  294.   
  295.   /** phase 4:fill address ascii, * */
  296.   secdp->unit_address[0] = num_to_ascii ( (opbaddr  & 0xF000) >>12);
  297.   secdp->unit_address[1] = num_to_ascii ( (opbaddr  & 0x0F00) >> 8);
  298.   secdp->unit_address[2] = num_to_ascii ( (opbaddr  & 0x00F0) >> 4);
  299.   secdp->unit_address[3] = num_to_ascii ( (opbaddr  & 0x000F) >> 0);
  300.   
  301.   /** phase 5:fill variable buffer, * */
  302.   for ( ; s != opbsize; s++) {
  303.     unsigned char  temp = as[s];
  304.     char  tmphi = num_to_ascii (temp >> 4);
  305.     char  tmplo = num_to_ascii (temp & 15);
  306.     
  307.     secdp->numb[2+s*2+0] = tmphi;
  308.     secdp->numb[2+s*2+1] = tmplo;
  309.   }
  310.   /** phase 6:crc adjust, fill ascii buf * */
  311.   secdp->numb[2+opbsize*2] = SECTION_LINK_ETX;
  312.   
  313.   cs = fxcrc_adjust (& secdp->cmd, opbsize * 2 + sizeof (secp->cmd) + sizeof (secp->unit_address)
  314.                                         + sizeof (secp->numb)
  315.                                         + sizeof (secp->etx));
  316.   secdp->numb[2+opbsize*2+1] = num_to_ascii ( (cs  & 0xF0) >> 4);
  317.   secdp->numb[2+opbsize*2+2] = num_to_ascii ( (cs  & 0x0F) >> 0);
  318.   
  319.   memcpy (wsec, & varsbuf, *wsec_size);
  320.   return FX1S_OK;
  321. }
  322. uint32_t fx1s_cmprvpack (void *raccbuf, /* Variable size structure, so use void *, please understand **/
  323.                          uint16_t rc, void **ascii_buf, uint16_t *opbsize
  324.                          , uint16_t *stdpos)
  325. {
  326.   char *varsbuf = raccbuf;
  327.   uint16_t c = 0;
  328.   char stx_find = 0;
  329.   uint16_t stdpos0 = -1;
  330.   
  331.   /* we find SECTION_LINK_NAK or SECTION_LINK_STX at first **/
  332.   for (; c != rc; c++)
  333.    {
  334.      if (varsbuf[c] == SECTION_LINK_NAK)
  335.        return FX1S_NAK;
  336.      if (varsbuf[c] == SECTION_LINK_STX)
  337.       {
  338.         /* second, we check SECTION_LINK_ETX in buffer **/
  339.         stx_find = 1;
  340.         stdpos0 = c + 1;
  341.       }  
  342.      if (varsbuf[c] == SECTION_LINK_ETX && stx_find == 1)
  343.       {
  344.         /* exist CRC byte ??**/
  345.         if ((c + 2) >= rc)
  346.           return FX1S_INCOP;
  347.         /* calculate, compare the CRC code **/
  348.         {
  349.       # if 0
  350.       # else
  351.           *ascii_buf = & varsbuf[stdpos0];
  352.           *opbsize = c - stdpos0;
  353.           *stdpos = stdpos0;
  354.           return FX1S_OK;
  355.       # endif    
  356.         }
  357.       }
  358.    }
  359.   
  360.    return FX1S_INCOP;
  361. }                    
  362. uint32_t fx1s_decrvsec (void *raccbuf, void *sbuf, uint16_t opbasize) {
  363.   
  364.   char *varsbuf = raccbuf;
  365.   char *ssbuf = sbuf;
  366.   uint16_t c = 0;
  367.   
  368.   if (opbasize % 2 == 1)
  369.     return FX1S_INCOP;
  370.   if (opbasize == 0)
  371.     return FX1S_PARA;
  372.   
  373.   for ( ; c != opbasize; c += 2)
  374.     {
  375.       char tmphi = ascii_to_num (varsbuf[c]) << 4;
  376.       char tmplo = ascii_to_num (varsbuf[c+1]);  
  377.       char temp  =   (tmphi & 0xF0) |    (tmplo & 0x0F);
  378.       
  379.       ssbuf[c>>1] = temp;
  380.     }
  381.     
  382.     return FX1S_OK;
  383. }

亚洲免费在线视频观看 | 免费在线成人网 | 亚洲国产精品久久精品怡红院 | 国产精品人成在线观看免费 | 老熟女一区二区三区 | 国产女人18毛片水18精品 | 成人污污视频 | 齐天大性床战铁扇公主 | 久久精品| 日日夜夜爱爱 | 亚洲专区免费 | 国产98在线 | 少女与动物高清版在线观看 | 欧美在线一二三 | 天天操天天操天天操天天操天天操 | 日韩黄色免费电影 | 久久一级黄色片 | 日韩av男人的天堂 | 91中文字幕在线播放 | 黄色免费网站视频 | 亚洲精品国产一区 | 成年人一级黄色片 | 91精品欧美 | 91精品人妻一区二区三区蜜桃2 | 女人18毛片毛片毛片毛片区二 | 欧美黄在线观看 | 97se亚洲| av免费不卡 | 日韩av在线中文字幕 | 99久久网站 | 粉嫩一区 | 暖暖日本视频 | 欧美日韩伦理片 | 欧美四区| 天天操天天草 | 爱情岛亚洲首页论坛 | 亚洲久久久久久 | 好好热视频 | 明日叶三叶 | 日本福利一区二区 | 国产欧美日韩中文字幕 | h毛片 | 免费国产精品视频 | 蜜臀av一区| 国产中文字字幕乱码无限 | 色av影院 | 手机在线看a | 欧美日在线 | 亚洲高清精品视频 | 自拍偷拍精品视频 | 麻豆疯狂做受xxxx高潮视频 | 香蕉a| 极品一区 | 欧美精品欧美极品欧美激情 | 国产wwww | 国产日韩在线一区 | 男人网站在线观看 | 欧美一级爱爱 | 涩涩爱在线 | 美女黄色免费网站 | 久草网在线 | 免费av影视| 九月丁香婷婷 | 色爱综合网 | 国产sm调教视频 | 久久亚洲av无码精品色午夜麻豆 | 日韩精品视频网站 | 香蕉综合在线 | 日韩性色 | 黄色av免费网站 | 色黄大色黄女片免费中国 | 91福利视频在线观看 | 一区二区中文字幕 | 亚洲四虎影院 | 国产自产在线 | 一本久久久 | 美女色综合 | 国产欧美一区二区三区鸳鸯浴 | 青青草手机视频在线观看 | 亚洲毛片精品 | 欧美顶级毛片在线播放 | 一区二区一级片 | 狠狠五月婷婷 | 娇喘顶撞深初h1v1 | 国产一级性生活片 | 中文字幕精品久久久 | 日本久久精品视频 | 日本在线免费看 | 精品国产一 | 日本免费久久 | 黄色日本网站 | 免费看日产一区二区三区 | 欧美日韩在线免费观看 | 亚洲三级电影网站 | 日韩av高清无码 | 美女视频黄色 | 国产伦理一区二区三区 | 国产一级久久久 | 韩国毛片网站 | 久久鲁视频| 少妇人妻偷人精品无码视频新浪 | 狠狠看 | 欧美77777| 天天干天天天天 | 性一交一乱一伧老太 | 在线 色| 91久久精品一区二区别 | 国产swag在线 | 国产在线激情视频 | 超碰在线国产97 | 欧美日韩一区二区在线 | av免费在线电影 | 亚洲欧美强伦一区二区 | 69xxx国产 | 91九色pron| 国产精品手机在线观看 | 国产巨乳在线观看 | 中文区中文字幕免费看 | 97九色| 免费不卡视频 | 成人在线视频免费看 | 亚州春色 | 一级黄色影院 | 天天操综合网 | 性――交――性――乱a | 免费91看片 | 欧美第一精品 | 免费久久视频 | 青青草原伊人网 | 一级人爱视频 | 伊人av影院| 免费在线黄色网 | 欧美疯狂做受xxxxx高潮 | 日本成人福利视频 | 天天看天天做 | 成人短视频在线观看 | 伊人久久大香线蕉综合75 | 中文字幕在线影院 | 自拍偷拍第二页 | 美国黄色a级片 | 黄色在线观看网址 | 影音先锋三级 | 1024视频污 | 交专区videossex农村 | 天堂av2021 | 欧美日韩精品久久 | 国产精品99久久久久久久久 | av国产在线观看 | 性中国xxx极品hd | 午夜日韩视频 | 国产成人超碰人人澡人人澡 | 亚洲高清一区二区三区 | 欧美日本在线观看 | 美痴女~美人上司北岛玲 | 丝袜人妖| www.啪啪.com | 无码一区二区精品 | 久久久精品综合 | 丁香婷婷综合激情五月色 | 日韩美女性生活 | 日韩aaaaa| 欧美黄视频在线观看 | 波多野结衣在线视频免费观看 | 欧美精品一区二区三区蜜臀 | 97在线免费观看 | 久草精品视频 | 天天综合网天天综合色 | 96超碰在线 | 国产一区二区高清 | 999久久久免费精品国产 | 国产黑丝在线播放 | 亚洲精品中文字幕乱码三区91 | 亚洲vs天堂 | 日韩免费毛片 | 亚洲精品aa | 日韩精品欧美在线 | 国产精品xxxx| 黄在线观看免费 | 黄色片一区二区三区 | 五月婷婷六月综合 | 女子spa高潮呻吟抽搐 | 国产精品久久久国产盗摄 | 毛片在线网站 | 日韩国产欧美一区二区三区 | 久久久看片 | 口述3p做爰全过程 | 色图综合网 | 欧美人与禽zoz0性3d | 日本蜜桃视频 | 最新黄网| 国产精品久久久久久在线观看 | 无码国产69精品久久久久网站 | 免费欧美一级 | 中文字幕av一区二区三区谷原希美 | 精品人在线二区三区 | www.久久视频 | 风流僵尸艳片a级 | 欧美久久久久久久 | 亚洲永久免费精品 | 老熟妇一区二区 | 久久成人综合 | 美女精品久久 | 午夜久久久久久噜噜噜噜 | 色视频在线看 | 精品欧美乱码久久久久久 | 国产精品污www一区二区三区 | 日韩免费片 | 国产伊人精品 | 爱看av在线 | 天堂伊人网 | 亚洲欧洲成人 | 中文字幕视频二区 | 毛片国产 | 伊人天天干 | 麻豆网站视频 | 日韩欧美国产高清91 | 国内偷拍久久 | 另类ts人妖一区二区三区 | 麻豆三级视频 | 成人小说亚洲一区二区三区 | 一区二区三区小视频 | 懂色av一区二区三区免费 | 男女草逼网站 | 91丨porny丨在线中文 | jizz免费在线观看 | 少妇又紧又色 | 怡春院视频 | 天天操狠狠干 | 老子影院午夜伦不卡大全 | 男人久久久 | 日本一区二区视频在线播放 | 日韩bbw | 人人澡超碰碰97碰碰碰 | 人妻少妇精品无码专区 | 精品午夜久久 | 亚洲男女av | 国产欧美视频在线观看 | 91超碰国产在线 | av四虎 | 久久精品视频一区二区 | 香蕉视频污在线观看 | 人人妻人人澡人人爽精品欧美一区 | 亚洲福利影院 | 日韩欧美有码 | 黄色小视频免费观看 | 91欧美亚洲 | 91日批视频 | 亚洲欧美在线免费 | 欧美男人又粗又长又大 | 深夜福利免费在线观看 | 亚洲精品综合精品自拍 | 97干在线 | 成年人在线免费 | 欧美日韩黄色大片 | 三级在线网站 | 亚洲激情图片 | 奇米第四色影视 | 爆操欧美美女 | 办公室大战高跟丝袜秘书经理ol | 国产乱叫456在线 | 国产一二区在线观看 | 四虎啪啪 | 激情aaa| 国产精品二区在线观看 | 色综合久久久久久久 | 麻豆av网站 | 亚洲男人精品 | 久久噜噜色综合一区二区 | 成年人黄色免费网站 | 亚洲视频天天射 | 女同动漫免费观看高清完整版在线观看 | 成人在线视频网 | 91视频合集| 真实人妻互换毛片视频 | 超碰色人阁 | 亚洲成人av电影 | 图片区小说区视频区 | 国产8区| 麻豆短视频 | 视频网站在线观看18 | 岛国大片在线观看 | 国产中文字幕二区 | 伊人手机在线视频 | 国产黄色大片免费看 | 三级黄片毛片 | 成年人黄色片网站 | 操女人视频网站 | 少妇高潮一区二区三区99欧美 | 影音先锋男人的天堂 | 精品成人av | 久久精品夜色噜噜亚洲a∨ 致命魔术电影高清在线观看 | www.久久久精品 | 日韩精品视频在线免费观看 | 亚洲熟妇毛茸茸 | 森泽佳奈av| 久久女同 | 久草热在线视频 | 99热日本 | 伊人春色av| 开心春色激情网 | 亚洲精品一卡 | 99资源 | 国产精品一区电影 | 玖玖色资源| 4438色| 奇米四色在线视频 | 海量av| 久久久性视频 | 69国产在线 | 狠狠地日 | 国产精品一区二区免费看 | 你懂的网站在线观看 | 欧美一级视频免费观看 | 日本一区二区三区免费视频 | 婷婷六月丁| 亚洲AV成人无码网站天堂久久 | 国产精品亚洲综合 | 夜夜操网 | 亚洲国产日韩在线 | 国产精品第8页 | 免费在线日韩 | 欧美成欧美va | 四虎免费av | 青青草原在线免费观看视频 | 国产精品久久久久久久久久久免费看 | 国产成人精品一区二区三区在线观看 | 老熟女毛茸茸 | 久久艹艹| 精品一区在线观看视频 | 99精品在线观看视频 | 国产亚洲精品精品精品 | 国产精品国产三级国产aⅴ中文 | 欧美精品另类 | 国产偷v国产偷v亚洲高清 | a级片在线 | 色香蕉av | 成人有色视频 | 久久bb| 成人小说亚洲一区二区三区 | www.久久久久 | 中文字幕一区二区三区四区视频 | 冲田杏梨一区二区三区 | 国产麻豆天美果冻无码视频 | 国产成人区 | 天堂岛av | 激烈的性高湖波多野结衣 | 综合一区 | 午夜精品国产 | 波多野结衣激情视频 | 日韩大尺度在线观看 | 亚洲熟妇色自偷自拍另类 | 99视频在线免费观看 | 久久久久久久久久一级 | 中文字幕一级片 | 欧美丝袜脚交 | 91在线| 在线播放日韩av | 天天爽天天操 | 我们俩电影网mp4动漫官网 | 成人性生交大片免费卡看 | 九色porn| 雷电将军和丘丘人繁衍后代视频 | 日日干日日爽 | 国产最爽的乱淫视频国语对白 | 成年人免费网站在线观看 | 凹凸av在线 | 91老女人| 精品一区av | 欧洲精品码一区二区三区免费看 | 国产一级久久久久毛片精品 | 超碰888| 色中文字幕在线观看 | 黄色大片免费观看 | 午夜爱爱毛片xxxx视频免费看 | 国产人人插 | 91超碰国产在线 | 欧美日韩免费一区二区 | 一本色道综合久久欧美日韩精品 | 东京av在线 | 自宅警备员在线观看 | 久草视频在线看 | 亚洲综合中文字幕在线 | 女人做爰全过程免费观看美女 | 色综合网址 | 国产三级高清 | 波多野结衣视频在线播放 | 亚洲欧美视频在线观看 | 激情视频在线观看免费 | www.在线观看av | 国产尤物在线观看 | 久久2019 | 欧美午夜精品久久久 | 不卡视频在线观看 | 久久精品一区二区三区不卡牛牛 | 警察高h荡肉呻吟男男 | 成人做爰69片免费 | 久久综合成人网 | 国产91大片| 精品影视一区二区 | 久久精品偷拍视频 | 国产在线国偷精品免费看 | 久久久美女视频 | 91美女福利视频 | 亚州综合视频 | 91精品国产成人www | 久热亚洲 | 日本免费天堂 | 久久综合影视 | 精品日韩在线观看 | 在线日本视频 | 免费看麻豆 | 国产在线观看中文字幕 | 波多野结衣一区二区三区 | 中文字幕2区 | 超碰在线人人 | 欧美一区三区二区在线观看 | 少妇激情一区二区三区视频 | 天堂国产一区二区三区 | 色偷偷av一区二区三区 | 九九热视频在线免费观看 | 91丨porny丨首页| 日本熟女一区二区 | 亚洲天堂成人在线观看 | 国产精品免费一区二区三区四区 | 超碰丝袜 | 对白刺激theporn | 国产色影院 | 特黄特色免费视频 | 精品久久久久久久无码 | 久久青草视频 | 德国艳星videos极品hd | 久久肉| 久久一区二区三区视频 | 俄罗斯porn | 美女三级黄色片 | 午夜性色| 欧美性xxxxx 亚洲狠狠 | 中文文字幕一区二区三三 | 91成人免费观看 | juliaann精品艳妇hd | 最好看的日本字幕mv视频大全 | 日韩精品在线观看一区二区 | 91成人在线视频 | 欧美性猛交ⅹxxx乱大交3 | 国产精品1区 | 男同精品 | 欧美黄色a级 | 成年人视频在线观看免费 | 国产精品国产 | 天天综合网在线 | 99欧美精品| 成年黄色网 | 国产精品海角社区 | 任你操精品视频 | 黄色免费视频观看 | 91色视频在线观看 | 国产精品天美传媒入口 | 日韩av在线资源 | 亚洲最大av| 亚洲最新视频 | 99re7| 久久国产精品系列 | 美女被艹视频网站 | 欧美成人精品在线观看 | 日本少妇久久 | 日韩人妻一区二区三区蜜桃视频 | 免费看黄色片视频 | 欧美黄色免费视频 | 韩国美女啪啪 | 这里都是精品 | 亚洲熟女一区 | 国产日韩欧美精品一区 | h片大全 | 日本xxxx高潮少妇 | 久久69 | 在线免费观看黄色 | 欧美最猛性xxxxx(亚洲精品) | a一级黄色片 | 亚洲大胆人体 | 久久精品久久精品久久 | 99久久婷婷 | 在线中文字幕av | 午夜av免费 | 一本色道久久综合 | 免费三片在线观看网站v888 | 永久免费看成人av的动态图 | 精品无码国产污污污在线观看 | 污污免费观看 | 91成人动漫 | 日日操夜夜爽 | 日本免费中文字幕 | 日韩在观看线 | 波多野结衣 在线 | 久久五月婷 | 91麻豆产精品久久久久久夏晴子 | 国产99久久久久 | 91手机视频 | xxx在线视频| 老司机精品福利导航 | 久久久久久艹 | 国产精品污www在线观看 | 欧美xxxx18 | 黄色激情网站 | 二级毛片视频 | 久久这里只有精品8 | 正在播放木下凛凛xv99 | 色欲av无码一区二区三区 | 久久久免费观看视频 | 五月天综合 | 小泽玛利亚一区二区三区 | 亚洲理论在线观看 | 久久精品超碰 | 一区二区伦理 | 性开放视频 | 99国产精品久久久久久久久久久 | 97看片网 | 久久不卡av | 国产一区二区三区影院 | 外国黄色网址 | 亚洲在线观看av | 国产欧美第一页 | 久久精品欧美一区二区三区不卡 | 日本三级韩国三级美三级91 | 又嫩又硬又黄又爽的视频 | 国产crm系统91在线 | 97香蕉久久夜色精品国产 | 久久黄色视屏 | 成人福利视频 | 亚洲免费在线观看视频 | 超碰日韩在线 | 五月天综合激情 | 久久国产一区二区 | 手机看片1024久久 | 巨胸喷奶水www久久久免费动漫 | 免费观看的av | 久久久av电影 | 精品久久久久久久久久 | 91av福利视频 | 亚洲1级片 | av中文字幕网址 | 日本电影一区 | 韩国美女视频在线观看18 | 91成人一区| 国产一二区在线 | 国产精品免费视频一区二区三区 | 国产精品亚洲无码 | 久草福利免费 | 午夜激情影院 | 影音先锋波多野结衣 | 成人综合影院 | 色姑娘天天操 | 久久国产一区二区 | 一区二区三区免费在线观看 | 九九热视频在线免费观看 | 日韩成人免费在线观看 | 色呦呦免费 | 亚洲黄色片 | 青娱乐在线免费观看 | 天天看夜夜操 | 色骚网| 九九九久久久 | 一对一色视频聊天a | 超碰999| 日韩欧美在线不卡 | 白石茉莉奈中文字幕在 | 奶水喷溅虐奶乳奴h文 | 精品动漫av | 91av视频在线播放 | 国内精品小视频 | 国产黄色自拍视频 | 久久久久久久久免费视频 | 国产黄a三级 | 精品爆乳一区二区三区无码av | 国产精品亚洲无码 | 亚洲系列在线观看 | 午夜网站在线观看 | 丰满岳妇乱一区二区三区 | 超碰在线播放97 | 无码人妻丰满熟妇精品 | 成人黄色在线观看视频 | 国产国语对白 | 明日花绮罗高潮无打码 | 国产在线激情 | 网址在线观看你懂的 | 亚洲成人生活片 | 伊人久久久久久久久久久久 | 老司机免费在线视频 | 精品一区二区三区免费看 | 亚洲一区人妻 | 一级片中文 | 国产一级片免费在线观看 | 亚洲精品偷拍视频 | 97超碰成人| 日批国产 | 岛国av在线播放 | 亚洲欧美va天堂人熟伦 | 中文字幕精品一区二区精 | 免费av动漫 | 91视频看片 | www午夜 | 人妻无码中文字幕 | 韩国bj大尺度vip福利网站 | 欧美日韩国产第一页 | 四虎最新网址在线观看 | 一级理论片 | 欧美亚洲一区二区三区四区 | 在线视频自拍 | 物业福利视频 | 国产中文久久 | 亚州久久久 | 日本毛片在线 | 插插久久 | 麻豆精品免费视频 | 六月婷婷七月丁香 | 亚洲第一看片 | 日韩美女网站 | 椎名空在线观看 | 欧美激情16p| 成人欧美精品一区二区 | 国产成人黄色 | 久久精品国产99国产 | 黄色a在线 | 很嫩很紧直喷白浆h | 亚洲自拍三区 | 欧美夜夜操 | 成人短视频在线观看 | 91免费精品视频 | 一级香蕉视频在线观看 | 亚洲一区二区三区av无码 | 岛国av毛片 | 国产人妻人伦精品1国产 | 欧美淫 | 欧美一区日韩一区 | 久久少妇av | 91国内在线 | 丰满少妇高潮在线观看 | 国产一区二区自拍视频 | 91免费视频 | 日韩一区二区三区四区 | 国产在线www | 98久久 | 国产图片一区 | 秋霞成人av | 黄色aaaaa | 99热国产在线观看 | 成人入口 | 中文久久乱码一区二区 | 久久.com| 日韩黄色免费电影 | 日本少妇网站 | 怡红院成人在线 | 波多野结衣精品在线 | 国产精品国产三级国产专区51区 | 亚洲蜜桃精久久久久久久久久久久 | 日本免费一区视频 | 亚洲黄色大片 | 久久久久久久福利 | 手机av免费在线观看 | 秋霞99 | 97综合网 | 无遮挡又爽又刺激的视频 | 久久伊人成人网 | 欧美高清二区 | 摸一摸操一操 | 好吊妞精品 | 国产一区二区视频免费观看 | 国产精品久久亚洲 | 欧美一区二区三区成人 | 大奶子av | 欧美激情一区在线 | 丁香五香天堂网 | 美国黄色a级片 | 日本黄色免费网站 | 在线观看少妇 | 摸大乳喷奶水www视频 | 秋霞午夜鲁丝一区二区老狼 | 二级毛片在线观看 | 操碰在线观看 | 美女扒开尿口给男人桶 | 青青操操 | 成人深夜福利视频 | 深田咏美中文字幕 | 在线免费观看视频网站 | 少妇无套内谢久久久久 | 中文字幕爱爱 | 成人精品一区二区三区电影 | 肉肉视频在线观看 | 精品久久一区 | 免费黄色大片网站 | www.youjizz国产 | 亚洲免费国产 | 天天射综合 | 永久免费看黄 | 久久色在线视频 | 欧美精品v国产精品v日韩精品 | 人妻精油按摩bd高清中文字幕 | 四虎免费影视 | 精品亚洲国产成人av制服丝袜 | 免费成人av片 | 亚洲人体视频 | 成人精品电影 | 亚洲视频色 | av噜噜| 欧美人与禽猛交乱配视频 | 日韩成人精品在线观看 | 欧美性做爰大片免费 | 美利坚合众国av | 亚洲精品一区二区三区在线 | 少妇粉嫩小泬白浆流出 | 精品久久影院 | 亚洲国产私拍精品国模在线观看 | 日韩精品成人免费观看视频 | 91久久精品一区二区三区 | 午夜你懂的| 大尺度av| 人人干天天操 | 在线观看免费小视频 | 韩国甜性涩爱 | 91原创视频在线观看 | 免费成人深夜小野草 | 中日韩精品视频 | 日本一区二区三区在线免费观看 | 好大好舒服视频 | 拍国产真实乱人偷精品 | 久久1024| 韩国精品av | 蜜臀久久99精品久久久久宅男 | 日韩精品――色哟哟 | 国产又黄又猛 | 中文字幕一区二区三 | 亚洲国产日韩在线观看 | 国产中文字幕在线免费观看 | 网站av在线| 人人做| www.色多多 | 日本免费网站在线观看 | 国产激情一区二区三区 | 91美女网| 激情女主播 | 亚洲精品男女 | 黄色污污网站在线观看 | 欧美蜜桃视频 | 黄色伊人网| 亚洲AV无码成人精品区东京热 | 老熟女高潮喷水了 | 亚洲色图自拍 | 日韩有码在线播放 | 四虎影院色 | 日韩免费一区二区 | 手机免费看av片 | 欧美三级黄色 | 色偷偷久久| 无码粉嫩虎白一线天在线观看 | 四虎永久网站 | 久久成人精品一区二区 | 少妇4p | 亚洲青草 | 国产精品高清无码在线观看 | 国产三级小视频 | 日韩av网址在线观看 | 色5566| 免费看污视频的网站 | 日韩美一区二区三区 | 羞羞色院91蜜桃 | 欧美亚洲天堂网 | 日本激情网站 | 欧美成人专区 | 香蕉视频网站在线观看 | 欧美久久久久久久久中文字幕 | 国产高清av | av一区在线 | 一卡二卡三卡四卡五卡 | 日韩大胆人体 | 99国产精品一区二区三区 | 日日操夜夜操视频 | 欧美激情第五页 | 777亚洲| 操操综合网 | 中文字幕2021 | 宅男的天堂 | 毛片在线免费视频 | 亚洲色在线视频 | 亚洲第一在线 | 美女黄色真播 | 中文字幕 欧美日韩 | 伊人开心网 | 国产亚洲制服 | 在线欧美 | 小柔的裸露日记h | 毛片入口 | 亚洲人交配| 99久久久国产 | 中文字幕高清在线观看 | 伊人宗合 | 蜜桃视频久久 | 激情插插 | www.青青草.com | 女同性做爰全过程 | 男生和女生一起搞鸡 | 日韩不卡在线观看 | 天堂8在线| 雪花飘电影在线观看免费高清 | 88av在线视频 | 亚洲永久免费视频 | 中文字幕一区二区三区5566 | 人人做| 黄色网址国产 | 亚洲丝袜视频 | 日韩国产欧美精品 | 男女在线观看 | 国产精品二区在线观看 | 色婷婷在线播放 | 欧美色图自拍 | 精品一区二区三区在线观看 | 国产在线中文 | 久久亚洲精品视频 | 免费三级av | 日日日人人人 | 日韩精品高清在线 | 亚洲热在线 | 亚洲精品va| 美女被娇喘流出白 | 国产一级久久 | 白嫩少妇激情无码 | 亚洲精品视频一区二区 | 本道综合精品 | 五月天狠狠操 | 欧美福利视频导航 | 亚洲美女视频一区 | 黄色91视频| caopeng视频 | 天堂va蜜桃一区二区三区 | 日本一区二区网站 | 视频一区二区欧美 | 秋葵视频成人 | 中文字幕第四页 | 欧美卡一卡二 | 国内精久久久久久久久久人 | www.天天干| 国产美女福利视频 | 亚洲欧美日韩在线 | 97人人爽人人爽人人爽人人爽 | 久久久一区二区三区 | 伦理亚洲| 最好看的中文字幕国语电影mv | 中文字幕在线观看免费 | 手机av免费| 国产精品福利导航 | 精品一区二区三区四区 | 在线观看少妇 | 欧美亚洲图片小说 | 91麻豆蜜桃 | av在线你懂的 | 人妻一区二区视频 | 国产九色91回来了 | 精品不卡一区二区 | 少妇一夜三次一区二区 | 波多野结衣视频一区 | 日韩视频免费 | 色综合色| 高潮毛片无遮挡免费看 | 青青草青娱乐 | 国产91在线视频 | 中国女人做爰视频 | 女人被灌满精子 | 就操成人网 | 欧美一区二区三区在线视频 | 色多多网站 | 小日子的在线观看免费第8集 | 十八禁一区二区三区 | 色窝窝无码一区二区三区 | 性感美女一区二区三区 | 青青成人在线 | 亚洲一二三在线 | 成人毛片在线播放 | 国产一级免费视频 | 女生毛片 | 日韩成人在线一区 | 嫩草影院一区二区 | 污网在线观看 | 伊人成人在线视频 | 日本大胆人体视频 | 日日人人 | 小伸进喷水网站 | 午夜视频在线免费观看 | 91高清免费视频 | 欧美在线免费 | 亚洲一级影院 | 曰本丰满熟妇xxxx性 | 人人妻人人做人人爽 | 毛茸茸亚洲孕妇孕交片 | 91视频亚洲 | 日韩人妻无码一区二区三区99 | 欧美一区中文字幕 | 在线观看国产亚洲 | 污污的网站在线观看 | 亚洲一区欧美二区 | 欧美色综合 | 可以在线看黄的网站 | 伊人二区 | 亚洲自拍色 | 韩国黄色网址 | 久久国产成人精品 | 日韩一级视频在线观看 | 九九精品视频在线观看 | 少妇又色又爽又高潮极品 | 在线免费观看黄色av | 欧美亚洲综合视频 | 免费看美女隐私网站 | 精品国产一区二区三区久久久狼 | 成人18视频在线观看 | 国产天天射| 国产欧美中文字幕 | av福利网站 | 欧美啪视频 | 欧美日韩亚洲天堂 | 日本高清视频一区二区三区 | 秋霞视频在线 | 欧美动态视频 | 欧美bbbbb性bbbbb视频 | 中文天堂网 | aaa黄色大片| 性av网 | 欧美经典一区二区 | 色姑娘久 | 久操国产 | 国产欧美一区二区视频 | 四虎库 | 黄a大片| 色偷偷人人澡人人爽人人模 | 老头av| 麻豆视频二区 | 国产人妖视频 | 亚洲欧美一区二区在线观看 | 日韩在线电影一区 | 在线视频二区 | 95在线视频 | 亚洲品质自拍视频 | 亚洲国产日韩在线一区 | 午夜美女网站 | 98久久| 久久精品视频18 | 91久久人澡人人添人人爽欧美 | 少妇一夜三次一区二区 | 青青精品| 日本aaaa| 亚洲精品麻豆 | 成人福利在线观看 | 日本高清xxxx | 美女免费黄色 | 91九色蝌蚪在线 | 中文字幕在线观看日本 | 国产精品99 | 国产精品久久久久久69 | 小小姑娘电影大全免费播放 | 亚洲综合干 | 国产一区二区激情 | 91最新视频| 欧美一区二区三区精品 | 日本a级黄| 黄色日韩在线 | 久草天堂 | 少妇久久久久久 | av动漫在线免费观看 | 欧美特级特黄aaaaaa在线看 | 毛片aaaaa | 国产精品探花一区二区在线观看 | 欧洲在线视频 | 狠狠躁夜夜躁人人爽天天高潮 | 制服丝袜天堂网 | 久久久久99精品国产片 | 好吊色视频一区二区三区 | 亚洲精品一级 | 在线观看网址你懂的 | 丝袜美腿中文字幕 | 免费在线观看成人av | 91麻豆精品国产91久久久久久 | 天码人妻一区二区三区在线看 | 青青青青青草 | 欢乐谷在线观看免费播放高清 | 亚洲一区二区三区在线看 | 精品久久久久久中文字幕 | 精品少妇| 久久久成人精品一区二区三区 | 国产男男gay网站 | 少妇按摩一区二区三区 | 欧美精品在欧美一区二区少妇 | 三年中文在线观看免费观看 | 欧美最黄视频 | 成人小说亚洲一区二区三区 | 日韩av成人网 | 久久看片网 | 毛片自拍 | 国产系列在线观看 | 91重口味 | 大尺度做爰呻吟62集 | 操在线视频 | 日韩在线观看一区 | 爱爱综合| 国产人妻黑人一区二区三区 | 国产主播在线播放 | 丰满少妇一区二区三区 | 麻豆www. | 亚洲精品大全 | 精品人妻一区二区三区三区四区 | 免费无码毛片一区二区app | 麻豆短视频在线观看 | 国产一区精品在线观看 | 天天操好逼 | 亚洲在线综合 | 91人妻一区二区三区 | feel性丰满白嫩嫩hd | av网站免费观看 | 农村妇女精品一区二区 | 美女爱爱视频 | 韩国一区二区三区在线观看 | 天天骑夜夜操 | 巨乳动漫美女 | 日韩av大片在线观看 | 亚洲欧美一级 | 国产999精品视频 | av看片网站| 四虎在线免费观看 | 少妇4p | 夜色视频在线观看 | 国产美女精品一区二区三区 | 91在线中文字幕 | 日日射夜夜 | 67194成人 | 久久国产精品波多野结衣 | 久久黄色影院 | 成人性生交大免费看 | 亚洲精品小说 | 亚洲欧美动漫 | 一区二区精品在线 | 蜜臀av在线免费观看 | 亚洲图片综合网 | 中文字幕精品无码一区二区 | 销魂奶水汁系列小说 | 六月综合激情 | 91操操操| 美女一区 | 嫩草一区二区三区 | 亚洲先锋影音 | 成人国产精品免费观看动漫 | 电家庭影院午夜 | 伊人黄色片 | 在线国产视频 | 男女国产视频 | 波多野结衣中文字幕在线播放 | 欧美三日本三级少妇三99 | 免费一级欧美片在线播放 | 草草影院第一页yycc.com | 天天插天天色 | 欧美自拍偷拍第一页 | 日本69视频 | 四季av在线一区二区三区 | 强乱中文字幕av一区乱码 | 性巴克成人免费网站 | 国产亚洲精品久久久久久打不开 | 福利视频91 | 久久久久久久久久久久久久av | 一个人看的www视频在线观看 | 羞羞在线观看 | 亚洲视频一区二区在线观看 | 欧美一区二区三区免费观看 | 精品动漫一区二区三区在线观看 | 毛片www | 日本成人午夜视频 | 大香蕉精品一区 | 涩久久| 欧日韩在线观看 | 免费福利在线 | 国产一区二区在线视频观看 | 丰满少妇高潮一区二区 | 在线观看不卡av | 北条麻妃av在线 | 久草美女 | 亚洲一级在线 | 岳乳丰满一区二区三区 | 国产伦精品免费视频 | 极品白嫩丰满少妇无套 | 成人免费公开视频 | 日韩一区二区三区不卡 | 福利视频三区 | 欧美亚洲久久 | 久久免费电影 | 午夜天堂影院 | 久久青青操 | 日本黄色片免费看 | 欧美成人精品一区二区 | 国产成人免费在线视频 | 精品久久久久久久久久久久久久久久久 | 欧美涩涩涩| 免费涩涩视频 | 91狠狠操 | 打开每日更新在线观看 | 亚洲图片欧美视频 | 在线能看的av | 成人两性视频 | 中文字幕伊人 | 97精品免费视频 | 欧洲亚洲一区 | 图片区亚洲色图 | 午夜精品导航 | 蜜桃精品噜噜噜成人av | 性高潮久久久久久久 | 动漫美女放屁 | 激情视频一区 | 看片网站在线观看 | 国产xxxx孕妇 | 美女啪啪av| www久久久久久| 久久影视 | 日韩性色 | 日韩超碰 | 男女午夜免费视频 | 天堂中文在线网 | 小伸进喷水网站 | 男女操操操| 欧美精品区| www.97ai.com| 在线观看欧美视频 | 青青草一区二区三区 | 欧美精品毛片 | 欧美人与性动交a欧美精品 大片av | 国产在线一二 | 91们嫩草伦理 | 日本啪啪网站 | 成人av图片| 国产成人精品片 | 一本视频 | chinese国产精品 | 麻豆精品视频 | 免费激情 | 国产不雅视频 | h在线观看视频 | 日本天堂网在线观看 | 日韩大尺度视频 | 免费观看黄色的网站 | 嫩草影院一区二区 | 国产91免费在线观看 | 91香草视频 | 欧美极度另类 | 女生喷水视频 | 午夜影院黄| 岛国av中文字幕 | 国产视频一区二区三区四区五区 | 男人天堂最新网址 | 午夜精品福利一区二区 | 色香色香欲天天天影视综合网 | 强伦人妻一区二区三区 | 色片在线播放 | 奶水旺盛的女人伦理 | 亚洲操操操 | 美女擦边视频 | 国产中文字幕一区二区 | 99热这里只有精品8 一级视频免费观看 | 自拍偷拍精品视频 | 琪琪色视频 | 不卡av免费观看 | 成人av综合网 | 日韩诱惑 | 久久99精品久久久久久园产越南 | 国产伦精品一区二区三区四区视频 | 亚av| fc2ppv在线观看 | a天堂中文在线 | 丁香花完整视频在线观看 | 婷婷成人av | 好av | 日本少妇xxxx动漫 | 超碰天堂 | 亚洲黄片一区 | 国产成人99久久亚洲综合精品 | 免费一级片 | 五十路av在线 | www中文在线 | wwwxxx日本免费 | 综合色站导航 | 性色av一区二区三区红粉影视 | 婷婷av一区二区三区 | 日韩精品视频在线观看网站 | 欧美午夜精品一区二区三区 | 国产精品久久综合青草亚洲AV | 欧美不卡一区二区 | 亚洲一区精品视频 | eeuss国产一区二区三区 | 精品一区二区三区视频 | xxxx黄色片| 美女色黄网站 | 在线免费播放av | 中文字幕免费播放 | 老熟妇一区二区三区 | 国产黄色网 | 国产18禁黄网站免费观看 | 国产一级网站 | 91最新地址永久入口 | 国产欧美a | 日本中文字幕在线看 | 免费成人深夜 | 97免费在线视频 | 欧美激情视频一区二区三区不卡 | 日日狠狠 | 国产成人高清在线 | 国产精品视频一二三区 | av免费高清 | 欧洲高潮三级做爰 | 日韩精品无码一区二区三区 | 免费网站在线观看视频 | 欧美色图自拍 | 黄色av观看 | 奇米影| 蜜臀久久精品久久久久 | 天天舔天天射 | 99精品视频免费 | 久久国产精品无码一级毛片 | 先锋影音制服丝袜 | 天天干天天操天天爽 | a在线观看 | 大奶在线观看 | 奇米第四色7777 | 国产欧美大片 | 欧美日韩偷拍视频 | 成人三级在线看 | 毛片大全在线观看 | 国产a一级| 中文字幕第一页在线视频 | 无码人妻aⅴ一区二区三区有奶水 | 97爱爱爱 | www.亚洲视频| 国产精品一二三区视频 | √天堂在线 | 日韩天天| 日韩v在线 | いいなり北条麻妃av101 | 久久男女视频 | 免费看片成人 | 亚洲美女色 | 国产美女精品视频 | 欧美日本韩国一区二区 | 在线h片| 咪咪色图 | 久草视频国产 | 国产aaaaaa| 四虎永久免费影院 | 黄色特一级| 午夜免费剧场 | 久久精品视频1 | 久久免费视频99 | 长河落日| 免费精品视频 | www.国产在线 | 91久久久久久久久久久 | 欧美野外猛男的大粗鳮 | 免费的黄色小视频 | 国产在线麻豆 | 在线播放91| 欧美一卡二卡在线 | 日本黄色片在线播放 | 在线免费观看视频网站 | 中文久久乱码一区二区 | 巨茎人妖videos另类 | 99热久| 男男大尺度 | 免费毛片一区二区三区久久久 | 欧美精品乱码视频一二专区 | 人人精品视频 | 欧美在线一区二区 | 日韩免费视频一区二区视频在线观看 | 色综合天天综合网国产成人网 | 香蕉久久夜色精品国产使用方法 | 善良的女朋友在线观看 | 成人免费视频软件网站 | a网址 | 狠狠综合 | 狠狠干狠狠搞 | 国产免费av一区二区 | 你懂的日韩 | 爆乳2把你榨干哦ova在线观看 | 看了下面会湿的视频 | 香蕉久久影院 | 欧美一区二区久久 | 丰满少妇被猛烈进入一区二区 | 色肉色伦交av色肉色伦 | 成年人网站免费在线观看 | 欧美一区精品 | 成人福利视频网 | 成人小视频免费在线观看 | 色婷婷婷婷 | 超碰一区二区 | 91涩漫成人官网入口 | 美女洗澡隐私免费网站 | 日韩av无码中文字幕 | 国产成人自拍在线 | 国产精品中文字幕在线观看 | 欧美一区二区区 | 色婷婷av一区二区三 | 国产精品美女毛片真酒店 | 国产综合av | 少妇肥臀大白屁股高清 | 国产欧美日韩在线 | 都市豪门艳霸淫美妇 | 久久国产秒| 麻豆伦理片 | 精品视频无码一区二区三区 | 美女校花脱精光 | 日本免费高清视频 | 91九色视频在线观看 | 国产手机精品视频 | 操综合| 黑人操欧美人 | 麻豆成人在线视频 | 亚洲福利精品 | 日韩二区| 小日子的在线观看免费第8集 | 精品人妻无码一区二区三区换脸 | 男插女视频在线观看 | 天天摸天天舔 | 老熟女毛茸茸 | 欧美黄色一级网站 | 中文字幕日韩电影 | 苍井空亚洲精品aa片在线播放 | 可以看污的网站 | 精品国产一区二区三区av性色 | 亚洲国产中文字幕在线观看 | 无码aⅴ精品一区二区三区浪潮 | 国产婷婷色一区二区在线观看 | 五十路毛片 | 国产视频资源 | 中文字幕亚洲欧美日韩高清 | 成人免费av| 国产a久久 | 伊人国产女 | 久久亚洲成人 | 尤物视频一区 | 爆乳2把你榨干哦ova在线观看 | 一本色道久久hezyo无码 | 免费黄色av片 | 国产又粗又黄又猛 | 黄在线免费看 | 91精品国产一区二区三竹菊影视 | 亚洲精品乱码久久久久久黑人 | 超碰网站在线 | 叶爱在线 | 麻豆久久久 | 超碰666| 91高清免费 | 波多野结衣免费在线视频 | 在线国产视频 | 在线亚洲自拍 | 亚洲一区二区三区在线视频 | 日韩一级片中文字幕 | 内射中出日韩无国产剧情 | 中文字幕日韩欧美 | 男生女生搞鸡视频 | 亚洲成人生活片 | 亚洲视频天堂 | 妞干网这里只有精品 | 亚洲网站免费 | h片免费网站 | 91精品国产综合久久香蕉922 | 亲嘴扒胸摸屁股免费视频日本网站 | 亚洲熟女综合一区二区三区 | 日日夜夜亚洲 | 亚洲免费观看高清完整版在线 | 欧美成人综合 | 成人午夜影视 | 日韩精品一级 | 国产极品久久 | 韩国三级hd中文字幕的背景音乐 | www.色国产| 国产又粗又长视频 | a级在线观看网站 | 国产精品sm | 国产精品一区二区在线免费观看 | 91精品国产综合久久福利软件 | 成人a网站| 精品国产一 | av中文字幕一区二区 | 97视频播放| 一区二区三区午夜 | 乱码一区二区三区 | 一级a性色生活片久久无 | 中文字幕视频观看 | 色哥网| 日本最新中文字幕 | 91av免费观看 | 夜夜爽夜夜 | 中文字幕欧美在线 | 中国女人黄色大片 | 久色精品 | 亚洲成人精品一区二区 | 色播在线 | 亚洲骚片 | 亚洲国产综合在线 | 韩国福利一区 | 奇米色播| 欧美人与性动交α欧美精品 | 亚洲播放器 | 毛片你懂的 | 狠狠做| 色97色 | 日本wwwxx| 国内外成人免费视频 | 国产精品一区二 | juliaann办公室丝袜大战 | 大奶子情人 | 午夜精品一区二区三区在线视频 | 国产永久在线 | 91精彩视频在线观看 | 波多野结衣家庭主妇 | 国产香蕉97碰碰碰视频在线观看 | 免费看黄20分钟 | 久久成 | 日韩天堂av | 无码无套少妇毛多18pxxxx | 欧美性猛交xxxx黑人 | 久久一区视频 | 成年人视频在线免费观看 | 亚洲国产一区二区三区a毛片 | 最新黄色网址在线观看 | 91亚洲国产成人精品一区二区三 | 麻豆国产av超爽剧情系列 | 亚洲少妇网 | 911看片| 欧美情侣性视频 | 国内精品视频在线观看 | 青青草娱乐在线 | 久久偷看各类wc女厕嘘嘘偷窃 | av网址导航 | 四虎精品 | 麻豆视频在线观看 | 91成人天堂久久成人 | 日韩在线观看视频一区二区 | 鲁丝一区二区 | 欧洲一区在线观看 | 天堂综合网 | 国产精品69毛片高清亚洲 | 国产激情91 | 呦呦视频在线观看 | 中文天堂在线播放 | 亚洲一| 日日操日日爽 | 老师上课夹震蛋高潮了 | 欧美人人爽 | 国产成人精品亚洲男人的天堂 | 久久精品在线观看 | 99riav1国产精品视频 | 色呦呦在线视频 | 久久久久99精品成人片毛片 | 永久免费,视频 | 国产精品又黄又爽又色无遮挡 | 天天射日日干 | 99热这里只有精 | 黄视频网站免费看 | 色综合天天 | 91国产大片| 中文字幕永久 | 欧美成人精品在线观看 | 国产精品成av人在线视午夜片 | 91亚洲精品国偷拍 | 日韩欧美中文在线观看 | 国产美女喷水视频 | 日本激情一区二区 | av男女| 欧美日韩片 | 中午字幕在线观看 | 在线免费播放av | 少妇一区二区三区四区 | 国产美女网站视频 | 国产孕妇孕交大片孕 | 很污很黄的网站 | 东凛在线观看 | 欧美特黄一级视频 | 国产精品手机在线观看 | 女人扒开屁股让男人桶 | xxxx国产视频 | 黄色成年人视频 | 成人在线观看一区二区 | 天天天天天天干 | 天天综合国产 | 50部乳奶水在线播放 | av福利在线 | 97麻豆视频 | 国产一区在线免费 | 男生c女生| 善良的老师伦理bd中字 | 国产成人精品一区二区三区网站观看 | 亚洲精品视频在线观看免费 | 欧洲亚洲一区二区 | 在线观看免费观看 | 久久精品99国产国产精 | 青娱乐国产 | 动漫av一区 | 欧美综合精品 | 亚洲激情成人 | 免费看国产精品 | 狠狠操天天操 | 色黄视频 | 国产一级精品视频 | 风间由美一区二区三区 | 黄色精品视频 | 男女av | 我把护士日出水了视频90分钟 | 国产成人+综合亚洲+天堂 | 国产精品主播一区二区 | 在线观看免费国产 | 男女毛片视频 | 免费操人视频 | 免播放器在线视频 | 成人动漫视频 | 亚洲aa视频 | 国模私拍在线 | 欧美1区| 狠狠影视 | 日韩1区2区3区| av少妇| 亚洲天堂视频网站 | 风间由美在线观看 | 同人动漫在线观看 | 操操操视频| 射黄视频 | 成人黄色激情网 | 90岁老太婆乱淫 | 欧美高清hd18日本 | 日韩精品久 | 性xx紧缚网站 | 亚洲视频区 | 九九色网| 成人网在线观看 | 小香蕉av| 日韩视频免费看 | 亚洲av无码一区二区乱子伦 | 国产精品无码一区二区桃花视频 | 日韩另类av| 激情网色 | 影院一区 | 白嫩白嫩国产精品 | 无码精品人妻一区二区 | 邻居少妇张开腿让我爽了在线观看 | 超碰碰碰碰 | 风流僵尸艳片a级 | 日韩av免费在线观看 | 中文字幕一区二区三区人妻在线视频 | 久久三级视频 | 天天免费视频 | 高h视频在线免费观看 | 一个人看的www视频在线观看 | 美女在线免费视频 | 午夜剧场黄色 | 天堂中文字幕 | 久久精品久久精品 | 亚洲中文字幕一区二区 | 91观看视频 | 91免费小视频 | 懂色av一区二区三区 | 中文字幕丰满人伦在线 | 国产91在线播放精品91 | 久久久久中文字幕亚洲精品 | 亚洲成人一区二区 | 欧美午夜视频在线观看 | 456av| 啦啦啦免费高清视频在线观看 | www.麻豆av | 亚洲国产精彩中文乱码av | 色xxxxx| 欧美综合国产 | 免费av导航 | 色天天天 | 日本丰满少妇 | 国产男女猛烈无遮挡免费视频动漫 | 国产精品久久久久久久久久久久久久久久 | 激情网络 | 97成人精品 | 日韩精品免费一区二区在线观看 | 久久婷婷影院 | 久久这里精品 | 特黄大片又粗又大又暴 | 天堂8中文在线 | 欧美性猛交xxxx乱大交蜜桃 | 亚洲自拍偷拍一区 | 超碰成人福利 | 涩漫天堂 | 国产视频二| 美国av大片| 91精品免费 | 亚洲乱码中文字幕 | 久久久国产一区 | 波多野结衣中文字幕久久 | 黄色片特级 | 高清欧美性猛交xxxx | 成人免费一级片 | 软萌小仙自慰喷白浆 | 毛片xxx | 亚洲综合色在线 | 黑人精品一区二区三区 | 欧美日韩亚洲第一 | 亚洲区一区 | 黄色片成人 | 裸体av淫导航 | 亚洲视频免费在线播放 | 中文字幕3区 | 黄色网免费观看 | 黄色一极片 | 久久精品国产99精品国产亚洲性色 | 日韩h在线| 美女在线网站 | 日韩中文字幕视频 | 简单av在线 | 久青草视频在线 | 欧美特级黄色大片 | 久久视频99 | 亚洲日本综合 | 亚洲福利视频网站 | 92久久| 国产做爰xxxⅹ性视频国 | 人人爱人人艹 | 精品欧美乱码久久久久久1区2区 | 美国三级视频 | 白浆影院| 1024国产在线 | 色悠悠av| 亚洲天堂2016 | 91在线看黄 | 啪啪网站免费观看 | 在线艹 | 五月婷在线视频 | 欧美人妖另类 | 久久亚洲影院 | 日本午夜免费 | 亚洲欧美一二三区 | 亚洲h动漫 | 美女被草视频 | 久久一级电影 | 凹凸日日摸日日碰夜夜 | 亚洲第一黄网 | 热久久最新网址 | 国产精品久久久久久 | 欧美日韩一级在线观看 | 婷婷五月精品中文字幕 | 男女吻胸做爰摸下身 | 日韩免费成人av | 手机av免费看 | 91在线中文字幕 | 国产成人免费观看视频 | 国产久草视频 | 麻豆传谋在线观看免费mv | 国产xxxx视频 | 首尔之春在线看 | 99re7| 免费无码毛片一区二三区 | 国产国语亲子伦亲子 | 99草 | 国产精品国产馆在线真实露脸 | 在线网站黄 | 婷婷一区二区三区 | 日韩在线91 | 超碰在线进入 | 97超级碰碰碰 | 欧美一区二区三区的 | 天天综合在线观看 | 欧美aⅴ| 日韩女优中文字幕 | 色咪咪网站| 欧美激情一区 | 日韩av中文字幕在线免费观看 | 免费看一区二区三区 | 美女上床网站 | 成人在线直播 | 日本一区二区在线播放 | 欧美综合视频 | 成人在线视频一区二区 | 天天爽夜夜操 | 伊人春色在线视频 | 精品婷婷色一区二区三区蜜桃 | 91网站观看| 欧美日韩一区二区区别是什么 | 国产在线精 | 国产福利网站 | 在线视频麻豆 | 男人日女人在线观看 | 国产小毛片 | 国产精品日韩 | 亚洲九区 | 久久久久www | 天堂影视av | 日韩欧美激情视频 | 久久久高清| 色老头一区二区 | 亚洲激情视频网站 | 亚洲永久网站 | xxx久久 | 国产乱人乱偷精品视频a人人澡 | 亚洲激情文学 | 天天综合色| 国产做受高潮漫动 | av高潮 | 成人福利视频网站 | av大片在线| 成人欧美一级特黄 | 国产精品国产三级国产aⅴ无密码 | 久久国产乱子伦精品 | 丰满岳妇乱一区二区三区 | 18岁免费观看电视连续剧 | 久久久久中文 | 激情五月婷婷综合 | 亚洲+小说+欧美+激情+另类 | 黄色片子免费看 | 日韩美女中文字幕 | 91网站免费在线观看 | 成人毛片视频免费看 | 国产丝袜一区二区 | 99热2| 亚洲精品乱码久久久久久蜜桃91 | 午夜两性视频 | 亚洲精品欧美日韩 | 四虎少妇做爰免费视频网站四 | 谁有免费的黄色网址 | 成人欧美一区二区三区黑人孕妇 | 久久观看最新视频 | 久久久久久久久久久久国产 | 亚洲色图五月天 | 欧美高清视频一区 | 日本三级久久 | 精品在线小视频 | 成人涩涩 | 欧美日韩免费网站 | 在线观看www. | 禁网站在线观看免费视频 | 久色91 | 成人免费视频国产免费网站 | 女人又爽又黄免费女仆 | 日韩资源网| 欧美黄色一级视频 | 97人人干| 超碰黑人 | 99av视频| 爱爱小视频网站 | 人人妻人人澡人人爽国产一区 | 天堂伊人 | 国产精品一区不卡 | 91精品国自产在线观看 | 九九九色| 人人澡人人澡人人 | 天天天天天操 | 成人黄色一级 | 99视频在线精品免费观看2 | 三点尽露的大尺度国产 | 一级免费观看视频 | 九九九九久久久久 | 综合五月网 | 亚洲男人的天堂网站 | 亚洲情涩| 欧美男人操女人 | 欧美日韩国产成人 | 日本福利在线 | 亚洲一区二区三区四区av | 久久久96| 污视频大全 | jlzzzjlzzz国产免费观看 | 9l视频自拍蝌蚪9l视频成人 | 久久国产a | 日韩涩| 国产精品815.cc红桃 | 在线观看污污网站 | 亚洲国产综合视频 | 成人av影视在线观看 | 在线视频 一区二区 | 久久日精品 | 性av在线 | 神马久久久久久久久 | 美女av网| 最新日韩av | 欣赏asian国模裸体pics | 欧美日韩一区视频 | 国产精品久久久久av | 伊人影院在线视频 | 国产九九精品视频 | 99re国产 | 国产日韩欧美一区二区东京热 | 欧美狂猛xxxxx乱大交3 | 这里只有精品免费视频 | 日韩一级在线播放 | 91视频在线观看免费 | 欧美黑大粗 | 国产特级黄色录像 | 久久亚洲熟女cc98cm | 超碰在线公开 | 色黄啪啪网 | 四虎av| 美女精品视频 | 国产高潮国产高潮久久久 | 天天爽天天爽天天爽 | 欧美一级在线免费观看 | 午夜av网站 | 韩国伦理av | 69性影院 | 久久裸体视频 | 国语对白做受欧美 | 中文资源在线观看 | 国产精品美女久久久久图片 | 国产蜜臀av一区二区 | www.狠狠爱| 一区三区在线观看 | 欧美一区二区三区啪啪 | 久久久99久久| 视频在线观看一区 | 精品人妻无码一区二区三区蜜桃一 | 日韩免费三级 | 手机在线免费观看av | 免费看91的网站 | 亚洲最大激情网 | 99国产精品久久久久久久成人热 | 黄wwwww| 在线免费观看日韩视频 | 国产高清不卡 | 成人午夜高清 | 午夜精品久久久久久久久久久久久蜜桃 | 美女三级视频 | 久久婷婷影院 | xxx国产| 国产成人精| 国产激情91 | 让人下面流水的视频 | 日韩一区二区三区免费视频 | 在线观看视频一区二区 | 高清视频一区 | 欧美国产日韩一区二区三区 | 成人28深夜影院 | 亚洲三级中文字幕 | 美女扒开内看个够网站 | 亚洲一区二区在线视频 | 91在线视频在线观看 | 亚洲久久一区 | 亚av在线| 午夜专区 | 狠狠躁夜夜躁 | 又爽av| 日韩中文视频 | 国产精品国产精品国产 | 饥渴放荡受np公车奶牛 | 国产精一区二区三区 | 国产视频福利在线 | 亚洲青青草原 | 国语对白在线观看 | 日韩一区二区精品视频 | 伊人青青草| 快射视频网 | 午夜影院一区二区 | 久久亚洲一区二区 | 亚洲高清资源 | 亚洲日本在线播放 | 免费成人美女女 | 国产在线不卡 | 久久毛片网站 | 日韩有码电影 | 国产精品三级在线观看无码 | 九色91popny蝌蚪 | 婷婷玖玖 | 一级做a爰片 | 4438激情网| 香蕉av网 | 国产在线观看 | 免费麻豆视频 | 久草资源站 | www.奇米.com | 嫩草精品 | 日本高清xxxx | 亚洲色图35p | 春色网站 | 99re热在线视频 | 性xxxx另类xxⅹ | 韩国美女啪啪 | 农民工hdxxxx性中国 | 就要操就要日 | 91在线视频精品 | 精品无码国产污污污免费网站 | 99国产精品99 | 久久久免费高清视频 | 天天天天天操 | 雪白的扔子视频大全在线观看 | 亚洲精品乱码久久久久久日本蜜臀 | 成人在线免费av | 91九色在线视频 | 丁香花电影免费播放电影 | 亚洲h在线观看 | 四虎精品永久在线 | 精品一区二区三区毛片 | av少妇 | 4444亚洲人成无码网在线观看 | 17c在线| 国产伦精品一区二区三区免.费 | 亚洲一区二区三区日韩 | 日韩一级免费毛片 | 男人都懂的网站 | 亚洲成av人片在线观看无 | 欧洲在线观看 | 特级毛片网站 | 久久黄色免费视频 | 在线天堂www在线国语对白 | 最新视频 - 88av | 蜜臀99久久精品久久久久小说 | 日本中文字幕成人 | 99久久99久久免费精品蜜臀 | 99精品视频一区二区三区 | 免费在线观看的av | 免费超碰在线 | 大尺度做爰呻吟舌吻情头 | 九九欧美 | 亚洲综合婷婷 | 久久久久久久国产视频 | 成人蜜桃视频 | 亚洲人掀裙打屁股网站 | 青娱乐97| 中文字幕精品亚洲 | 熟妇人妻久久中文字幕 | 日韩欧美h | 夜夜操av| 美国黄色网址 | 精品国产精品三级精品av网址 | 男操女视频网站 | 99无码熟妇丰满人妻啪啪 | 97国产在线| 黄频在线播放 | 亚洲一二三区在线观看 | 亚洲国产av一区二区 | 在线三级av | 国产图片一区 | 国产丝袜在线视频 | 自拍偷拍亚洲 | 永久福利视频 | 欧美精品乱码99久久蜜桃 | 涩婷婷 | 国产山村乱淫老妇女视频 | 少妇精品久久久一区二区三区 | 欧美三级午夜理伦三级老人 | 精品久久久av | 中文久久久 | 精品国产乱码久久久久久浪潮 | 国产综合精品在线 | 交专区videossex农村 | 精品免费在线观看 | 在线观看免费国产 | 欧美污污视频 | 一区二区三区精品在线观看 | 91精品国产综合久久久蜜臀粉嫩 | 亚洲乱论 | 久热色| 精品91久久久久久 | 色黄视频在线观看 | 98国产精品 | 蜜桃av噜噜 | 国产夫妻在线观看 | 国产小精品| 欧美日韩免费观看一区=区三区 | 美女露出粉嫩尿囗让男人桶 | 在线看成人片 | 闫嫩的18sex少妇hd | 国产精品对白 | 亚洲av无码专区在线播放中文 | 亚洲精品美女视频 | 中文字幕在线看人 | 日韩欧美在线一区二区三区 | 成人三级黄色 | 亚洲精品视频播放 | 日本大尺度做爰呻吟舌吻 | 水多多在线 |