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

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

復制代碼
  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
發帖數量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
1樓  發表于: 2017-04-24 19:48
FX1S 報文編解碼
復制代碼
  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
發帖數量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
2樓  發表于: 2017-04-24 19:52
復制代碼
  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. }

国产不卡一二三 | 成人五区 | 免费成人福利视频 | 国产偷人爽久久久久久老妇app | 欧美色拍 | 伊朗做爰xxxⅹ性视频 | 丝袜一级片 | 好吊视频一区二区三区四区 | 精品国产aⅴ麻豆 | 欧美三级韩国三级日本三斤 | aaa一级片 | 日韩精品在线观看免费 | 国产成人精品av久久 | 欧亚av| 亚洲熟妇无码乱子av电影 | 久久伊人五月天 | 欧美福利第一页 | 巨茎人妖videos另类 | 乱淫的女高中暑假调教h | 午夜视频国产 | 欧美日韩视频在线播放 | 狠狠干2020 | 欧美揉bbbbb揉bbbbb | 久久午夜鲁丝 | 色男人影院 | 国产午夜视频在线观看 | 米奇av| 国际av在线 | 91视频大全 | 男女做的视频 | 欧美一性一乱一交一视频 | 中文字幕在线字幕中文 | 久草网在线 | 黄色免费一级视频 | 欧美日本免费 | 国产激情小视频 | 久久中文字幕精品 | 久久精品一区二区 | 黄色精品在线观看 | 黄色三级免费观看 | 五月激情在线 | 91视频h | 久久精品99北条麻妃 | 91中文在线观看 | 色七七视频 | 蜜臀久久99精品久久一区二区 | 日本少妇久久 | 日韩和欧美的一区二区 | 亚洲每日更新 | 手机免费在线观看av | 国产精品久久久精品 | 87福利视频 | 五月久久| 国产精品一区av | 欧美日韩一区不卡 | 日韩高清不卡一区 | av黄色在线播放 | 日本55丰满熟妇厨房伦 | 超碰2020 | 欧美国产一区二区三区 | 久久精品无码一区 | 韩国av免费观看 | 精品人妻一区二区三区蜜桃 | 国产欧美精品一区二区 | 天天色综合av | 国产精品一区在线看 | 91免费视频网 | 一区二区麻豆 | 国产免费一区二区三区免费视频 | 国产欧美日韩中文字幕 | 久久精品不卡 | 夜夜操夜夜爱 | 免费在线精品视频 | 免费a级片在线观看 | 日韩激情一区二区三区 | 成人区视频 | 天美麻花果冻视频大全英文版 | 日本女优在线看 | 天天夜夜啦啦啦 | 中文字幕日韩欧美 | 欧美视频精品在线 | 精品国产99久久久久久 | 在线观看国产网站 | 亚洲国产免费 | 白浆导航 | 国产婷婷在线观看 | 免费一级suv好看的国产网站 | 国产亚洲精品一区二区三区 | 欧美少妇一区二区三区 | 99精品久久 | 国产精品视频一区二区三区不卡 | 欧美大白屁股 | 尤物久久 | 又黄又爽一区二区三区 | 久久网站视频 | 久久黄色大片 | 制服 丝袜 激情 欧洲 亚洲 | 日韩福利视频一区 | 国产精品乱子伦 | 男女激情视频网站 | 国产精品8888 | 国产视频中文字幕 | 午夜在线观看免费视频 | 欧美一级二级在线观看 | 日本女人黄色 | 搞黄网站在线观看 | 国产精品电影网 | 91av视频| 久久久国产视频 | 精品欧美一区二区三区免费观看 | 精品黑人一区二区三区久久 | 黄瓜视频污在线观看 | 国产成人精品无码播放 | 亚洲综合在线观看视频 | av手机免费在线观看 | 天堂成人网 | 欧美性一区二区 | av网在线观看 | 四虎永久在线精品 | wwwwww国产| 亚洲精品无码一区二区 | 中文字幕日韩欧美 | 欧美三极片 | 免费在线看视频 | 国产11页| 日韩一级淫片 | 日韩欧美一区在线 | 午夜影院操 | 4色av| 免费毛片在线播放免费 | av中文资源在线 | 黄色网久久 | 黑人中文字幕一区二区三区 | 四虎伊人 | 夜夜草网站 | 国产精品熟女视频 | 雪花飘电影在线观看免费高清 | 国产精品网站在线 | 国产精品啊啊啊 | 日韩精品一区二区三区四区 | 成人免费91 | 国产成年网站 | 欧美做受高潮中文字幕 | 日本老太婆做爰视频 | 久久青青视频 | 免费av不卡 | 中文字幕在线观看日本 | 激情宗合网 | 日本中文字幕在线视频 | 久久精品国产精品亚洲毛片 | 欧美中文字幕在线观看 | 五月婷婷狠狠爱 | 婷婷色婷婷开心五月四房播播 | 黄色片网站国产 | 久久久久久无码精品大片 | 久久国产视频一区 | 天天精品| 猛男被粗大男男1069 | 国产欧美日韩综合精品一区二区 | 狠狠干2019 | 欧美大片免费 | 影音先锋国产资源 | 日韩城人免费 | chinese xxxx videos andvr | 国内自拍一区 | 色女人网| 国产日韩在线看 | 天堂男人网 | 黄色污网站在线观看 | 亚洲清色 | av成人免费| 国产专区第一页 | 欧美乱大交| 成年人视频在线 | caoporn免费在线| 国产黄 | 成人羞羞国产免费游戏 | 国产美女在线免费观看 | 免费成人黄色片 | 亚洲熟妇无码一区二区三区 | 精品国产av一区二区三区 | 自拍偷拍一区二区三区 | 麻豆精品国产精华精华液好用吗 | 91色拍| 日本免费a级片 | 尤物视频官网 | 国产视频xxxx| 亚洲精品一区二区在线观看 | 久久国产精品免费观看 | 亚洲午夜精品福利 | 女人高潮潮呻吟喷水 | 久久精品国产亚洲av无码娇色 | 草久久久久 | a国产免费 | av在线网站观看 | 久久精品国产亚洲AV无码麻豆 | 可以免费观看的毛片 | 国产视频手机在线 | 亚洲av无码一区二区三区网站 | 欧美精品久久久久久久久 | 双性人bbww欧美双性 | 欧美三级午夜理伦三级 | 日韩中文字幕一区二区 | 黑人满足娇妻6699xx | 国模精品一区二区三区 | 日韩亚洲欧美在线观看 | 美女被捅个不停 | 高清免费视频日本 | 成人性视频sm. | 毛片av免费 | aaa黄色 | 国模av在线| 中文字幕在线视频网 | 欧美精品五区 | 操操日 | 日韩专区在线观看 | 丁香色网| 中国女人做爰视频 | 免费男女视频 | 女人18毛片水真多 | 羞羞动漫免费观看 | 国产美女视频一区 | 在线观看成人av | 久久中文娱乐网 | 91精品在线免费 | 狂野欧美| 国产福利第一页 | 国产色诱视频 | 国产乱码在线 | 亚洲激情偷拍 | 97久久综合 | 别揉我奶头啊嗯一区二区 | 久久久久亚洲av无码网站 | 森泽佳奈中文字幕 | 久久人人澡 | 激情五月婷婷综合网 | 日本少妇毛茸茸 | 国产一区二区自拍 | 色图一区 | 少妇一级淫片日本 | 成年人看的免费视频 | 欧美黑人一区二区三区 | 精品三级在线观看 | 日韩一区二区三区视频在线观看 | 亚洲激情区 | 国产一区视频在线播放 | 岛国精品在线播放 | 亚洲AV无码成人精品区在线观 | 欧美精品一区二区免费 | 91精品国产电影 | 男生和女生差差视频 | 老妇裸体性激交老太视频 | 不用播放器的av网站 | 久久国产精品二区 | 这里只有精品视频 | av片网 | 日韩三级视频 | 337p亚洲欧洲色噜噜噜 | 免费动漫av | 国产真实乱在线更新 | 日韩一级黄色录像 | 日韩一区二区三区不卡 | 天堂av资源网 | 人妻中文字幕一区二区三区 | 免费中文字幕在线观看 | 仙踪林久久久久久久999 | 动漫美女被艹 | 日韩欧美一级视频 | 日本污网站 | 日本一区二区三区中文字幕 | 五月天亚洲综合 | 欧美激情国产精品 | 人人爽人人干 | 精品免费一区 | 人妻在线一区 | 美女超碰| 亚洲欧美在线看 | 意大利少妇愉情理伦片 | 国产又粗又猛 | 亚州av | 国产香蕉精品 | 快色在线观看 | 亚洲高清毛片一区二区 | 久久久国产精品无码 | 欧美久久一级 | 欧美日韩在线观看一区 | 成人性视频在线 | 你懂的在线播放 | 国产黄a三级三级三级 | 97在线免费观看视频 | 五十路在线 | 狠狠夜夜 | 精品一区二区在线播放 | 午夜精品在线播放 | 成人做爰69片免费观看 | 激情久久av | www视频在线观看免费 | 无码人妻丰满熟妇区五十路 | 一级黄色免费看 | 日韩一级 | 在线第一页 | 天堂综合网久久 | 一区二区三区中文字幕在线观看 | 午夜久久久 | 青青操av在线 | 国产jjizz一区二区三区视频 | 超碰九七| 日韩二三区| 精品国产免费一区二区三区 | 中国男女全黄大片 | 国产主播精品在线 | 涩久久| 成人影片在线免费观看 | 国产一卡二卡在线 | 成年人免费看毛片 | 四虎色网 | 日韩av在线观看免费 | 色戒电影未测减除版 | 久久久网址 | 我和我的太阳泰剧在线观看泰剧 | 先锋影音av资源在线 | 国产又爽又黄免费软件 | 91在线无精精品一区二区 | 麻豆md0049免费 | 蜜桃av色偷偷av老熟女 | 中文字幕+乱码+中文字幕一区 | 国产成人精品久久二区二区91 | 久久久精品国产 | 欧美性受xxxx| 九九视频在线播放 | 少妇脱了内裤让我添 | 在线观看av毛片 | 亚洲精品国产精品国自产在线 | 叼嘿视频在线免费观看 | 自拍偷拍20p | 东方影库av | 日韩黄色大片 | 国产ts变态重口人妖hd | 无码人妻久久一区二区三区不卡 | 欧美三级欧美一级 | 秘密基地免费观看完整版中文 | 五月激情网站 | 非洲一级片 | 国产麻豆成人传媒免费观看 | 亚洲欧美自拍一区 | 亚洲成人黄色影院 | 无遮挡又爽又刺激的视频 | 亚洲综合色成人 | 另类小说亚洲色图 | 欧美日韩大片在线观看 | 99热这| 国产视频一区二区三区在线播放 | 中文精品一区二区三区 | 欧美激情在线免费 | 亚洲一区二区三区在线 | 天天亚洲| 国产高清无遮挡 | 国产91网 | 成年人在线免费观看网站 | 欧美天天视频 | 午夜视频在线免费播放 | 国产图片一区 | 男人天堂影院 | 国产一区二区自拍视频 | 国产激情久久久久久熟女老人av | 在线小视频 | 91麻豆精品一区二区三区 | 欧美性一区 | 成人在线观看一区二区 | 色综合久久天天综合网 | 性生生活性生交a级 | 成人av手机在线观看 | 超碰国产人人 | 欧美涩色 | 日韩va | 91免费观看入口 | 欧美高清hd | 日韩在线视频网站 | 免费的黄色的视频 | 久久久久久久久久一区二区三区 | 亚洲经典三级 | 欧美久久一区 | 97视频成人 | 三级影片在线播放 | 911香蕉| 欧美三级a做爰在线观看 | 国产精品视频一区在线观看 | 亚洲特级毛片 | 国产3级在线 | 无套内谢老熟女 | 亚洲精品免费观看 | 偷拍亚洲另类 | 韩国bj大尺度vip福利网站 | 女人18毛片水真多18精品 | 香蕉久久国产av一区二区 | 国产免费黄色 | 清清草免费视频 | 天天久久综合网 | 国产电影一区二区三区爱妃记 | 中文字幕影片免费在线观看 | 日精品| 免费不卡毛片 | 三级自拍 | 九九九久久久 | 播放男人添女人下边视频 | 在线步兵区 | 九色论坛 | 国产伦精品一区二区三区免费迷 | 91精品人妻一区二区三区蜜桃欧美 | 日本欧美久久久 | 国产123区 | 国产精品v | 欧美三级三级三级爽爽爽 | 一区二区乱码 | 欧美激情天堂 | 亚洲精品亚洲人成人网 | 亚洲成人天堂 | 精品久久久无码中文字幕 | 色99999| 男人草女人 | 成人福利av| www午夜视频 | 在线黄色av| 香蕉av一区二区三区 | 91人妻一区二区三区蜜臀 | 在线国产一区二区 | 成人人伦一区二区三区 | 日本精品一区二区在线观看 | 91jk制服白丝超短裙大长腿 | 天堂va蜜桃一区二区三区 | 天天干夜夜夜 | 少妇人妻丰满做爰xxx | 日韩一区二区影视 | 亚洲图片在线视频 | 亚洲社区在线观看 | 超碰97人| 娇小tube性极品娇小 | 在线91观看 | 人人澡超碰碰97碰碰碰 | 国产一区二区三区在线视频 | 日韩男女啪啪 | 日韩一区高清 | 中文字幕精品一区二区三区精品 | 国产综合精品在线 | 黄网站在线观看 | 亚洲一二三四在线 | 欧美黄色一级生活片 | 午夜免费网站 | 8090av| 亚洲va韩国va欧美va精品 | 午夜簧片 | 婷婷精品一区二区三区 | 日韩av一二区 | 日本综合在线 | 波多野结衣 久久 | 国产精品久久久久久精 | 美脚の诱脚舐め脚视频播放 | 成人两性视频 | 久久影院国产 | 人人爽久久涩噜噜噜网站 | 日本人视频69式jzzij | 爱情岛av| 午夜极品| 在线不卡国产 | 成年人网站在线 | www亚洲| 激情小说图片视频 | 草草草在线观看 | 黄色免费小视频 | 久久综合久久鬼 | 精品久久网 | 高清二区| 久久久精品免费观看 | 日本福利在线 | 国产av无码专区亚洲av麻豆 | 97网站| 久99| 成人免费在线播放视频 | 男男免费视频 | 日韩精品网站 | 囯产精品一品二区三区 | 伊人资源 | 好吊妞视频在线观看 | 欧美日韩中文字幕一区 | 美女让男生桶 | 欧美成人精品一区二区免费看片 | 日本久久久久久 | 偷看洗澡一二三区美女 | 成年人免费黄色 | 精品乱码一区二区三区 | h片免费网站 | 欧美粗暴jizz性欧美20 | 欧美在线免费看 | 天天操女人 | 黄色在线观看av | 自拍偷拍亚洲视频 | 四虎啪啪 | 99综合在线 | 精品视频亚洲 | 国产视频一区二区在线观看 | 日韩一区二区三区av | 国产精品人妖 | 午夜av在线免费观看 | 亚洲春色一区二区三区 | 日韩精品免费一区二区三区 | 富婆如狼似虎找黑人老外 | 精品国产无码一区二区 | www.av免费| 日韩电影在线一区 | 日韩精品福利视频 | 好男人www社区在线视频夜恋 | 自拍偷拍电影 | 亚洲性网站 | 亚色91| 亚洲福利视频网站 | 波多野吉衣一区 | 国产chinesehd天美传媒 | 91新视频 | 成人一级网站 | 玉足脚交榨精h文 | 午夜精品区 | 国产精品丝袜一区二区 | 女人舌吻男人茎视频 | 欧美aⅴ| 伊人55| 俺去射 | 精品少妇av | 少妇人妻偷人精品一区二区 | 欧美激情免费视频 | 日韩黄色短视频 | 国产精品片 | 三上悠亚影音先锋 | 男女污网站 | 天天操天天射天天爱 | 99精品视频在线免费观看 | 中文在线a√在线8 | 国产黄色成人 | 韩国伦理片在线播放 | 国产精品久久久久久久久久久久久久 | 欧美高清不卡 | 国内精品在线播放 | 美女主播福利视频 | 国产精品美女高潮无套 | 久久精品10| 欧美精品午夜 | 日韩和欧美一区二区 | 国内免费av| 日韩精品一区在线观看 | av中文天堂在线 | 日本一区二区免费电影 | 久久久免费 | 国产一区二区三区在线视频 | 男人的天堂亚洲 | 国产毛片久久久久久久 | 横恋母在线观看 | av色播| 一级性生活黄色片 | 日韩一区二区三区不卡 | 欧美又粗又深又猛又爽啪啪九色 | 揄拍成人国产精品视频 | 色偷偷人人澡人人爽人人模 | 日韩少妇裸体做爰视频 | 国产精品毛片视频 | 6080电视影片在线观看 | 粉嫩av在线 | 快播日韩| 五月中文字幕 | 饥渴少妇勾引水电工av | 久久传媒 | www.国产精品| 亚洲国语 | 中文在线第一页 | a天堂视频 | 亚日韩 | 香蕉a视频 | 国产最新地址 | 国产无套免费网站69 | 日韩精品一二三四 | 一道本在线视频 | 欧美精品一区二区在线播放 | 污污的视频在线观看 | 成人免费观看网站 | 欧美视频在线观看一区 | 国产日韩欧美日韩大片 | 视频1区 | 国产a级免费 | av色噜噜 | 午夜精品国产精品大乳美女 | 日韩va在线 | 屁屁影院国产第一页 | 久久国产91 | 夜夜狠狠擅视频 | 成人黄色小视频在线观看 | 超碰资源总站 | 亚洲v欧美 | 国产精品一区二区久久 | 国产原创视频在线 | 亚洲生活片 | 在线观看91视频 | 三上悠亚一区二区 | 中文字幕亚洲图片 | 黄色网址在线免费看 | 国产伦理在线观看 | 美梦视频大全在线观看高清 | 在线观看日韩欧美 | 男人天堂a| 欧洲色播 | 一级黄色在线视频 | 那里可以看毛片 | 天天操天天撸 | 亚洲午夜精品一区二区 | 男女黄色录像 | 美女被c出白浆 | 国产色无码精品视频国产 | 成人综合在线视频 | 极品尤物在线观看 | 在线a网 | 厨房性猛交hd | 成人资源站 | www.天天操 | 法国空姐在线观看视频 | 日韩精品中文字幕一区二区三区 | 一本色道久久综合无码人妻 | 欧美视频在线播放 | 草久久| 中字幕一区二区三区乱码 | 午夜视频在线免费 | 国产精品美女一区 | 国产三级漂亮女教师 | 人操人人 | 午夜亚洲aⅴ无码高潮片苍井空 | 贝利弗山的秘密在线观看 | 色综合区| 精品一区久久久 | 一区二区三区在线播放视频 | 国内少妇精品 | 日韩在线观看网址 | 久久福利影视 | 一区二区三区在线免费观看 | 国产精品视频大全 | 成人自拍偷拍 | 日本一级三级三级三级 | 国产视频a | 四虎亚洲精品 | 欧美另类tv | 亚洲国产一区二区三区 | 精品人妻无码专区在线 | 黄色a免费| 麻豆国产在线 | 91免费看片 | 国产精品一区二区久久 | 一区二区三区av在线 | 国产精品免费av | 森泽佳奈作品在线观看 | 日本久热 | 制服丝袜国产在线 | 蜜桃91精品入口 | 91精产国品一二三 | www.国产成人 | 四虎精品欧美一区二区免费 | 肉肉av福利一精品导航 | a级片在线观看视频 | 91国视频 | 亚洲无人区码一码二码三码的含义 | 精品中文在线 | 成人欧美一区二区三区在线观看 | 国产精品一区二区三区免费视频 | 四虎影视成人永久免费观看亚洲欧美 | 婷婷日韩 | xxxx69国产| 无码国产精品高潮久久99 | 亚洲不卡影院 | 欧美自拍一区 | 亚洲柠檬福利资源导航 | 久久久www免费人成人片 | 亚洲性猛交 | 欧美高清视频一区二区三区 | 国产一级片免费看 | 性一交一乱一色一视频麻豆 | 吻胸摸激情床激烈视频大胸 | 日韩少妇一区二区 | 欧美日韩中文字幕 | 亚洲成人精品在线 | 国产高清免费在线观看 | www.嫩草.com| 精品久久久久久久久久久久久 | 国产又黄又粗 | 妖精视频在线观看 | 天天干,夜夜爽 | 黄色三极片 | 这里只有精品66 | 国产精品99久久久久久宅男 | 久久精品视频免费看 | 天堂√8在线中文 | 亚洲蜜桃精久久久久久久久久久久 | 日日干日日射 | 国产区免费 | 美女被啪羞羞粉色视频 | 精品久久久久久久久久久aⅴ | 中文字幕在线观看国产 | 欧美三极片 | www.国产精品视频 | 长河落日电视连续剧免费观看 | 天天爱天天爽 | 禁漫天堂免费网站 | 久久久久久影视 | 成av人在线| 综合 欧美 亚洲日本 | 日本人性爱视频 | 亚洲精品在线观看网站 | 日韩极品在线 | 久久黄色小视频 | 亚洲欧美一区二区三区 | 国产aaa大片 | 日本一区免费看 | av无码av天天av天天爽 | 九九精品网 | 天天艹夜夜 | 日韩精品成人免费观看视频 | 妞妞av| 欧美伦理一区二区 | 国产专区一区二区 | 国产精品高清在线观看 | 成人免费网站黄 | 国产中文字幕一区二区三区 | 国产黄色片视频 | 波多野结衣中文在线 | 性生交大片免费看女人按摩 | 中文人妻熟妇乱又伦精品 | 爽插 | 国产欧美精品一区二区色综合朱莉 | 无码人妻丰满熟妇啪啪 | 九色蝌蚪视频 | 久久亚洲激情 | 亚洲一区二区三区在线播放 | 欧洲成人午夜精品无码区久久 | 91亚洲国产成人精品一区 | 午夜在线观看视频网站 | 久草免费资源 | 欧美处女 | av黄色在线| 西比尔在线观看完整视频高清 | 狠狠躁| 奶水旺盛的少妇在线播放 | 神马久久久久久久 | 成年人在线观看视频免费 | 亚洲精品国产电影 | 久久不卡影院 | 四虎亚洲精品 | 狠狠干成人| 久久亚洲精品国产 | 久久久久久久久久成人 | 免费看亚洲 | 美女又爽又黄免费 | 免费色视频| 女仆裸体打屁屁羞羞免费 | 国精产品一区一区三区 | 色呦呦视频在线观看 | 永久免费av无码网站性色av | 激情小视频 | 美女大黄动图 | 亚洲自拍偷拍av | 青青草在线播放 | 色在线视频观看 | 国产 日韩 一区 | 91伦理视频 | 亚洲妇女无套内射精 | 男人和女人做爽爽视频 | 成人免费看| 亚洲精品久久 | 欧美看片| 婷婷丁香综合 | 中文字幕免费在线 | 99国产精品久久久久久久成人 | 午夜视频在线观看免费视频 | 欧美亚洲综合网 | 久操视频在线免费观看 | 亚洲视频手机在线观看 | 激情视频网站 | 国产影音先锋 | 麻豆91在线 | 欧美少妇一区二区 | 日日燥夜夜燥 | 福利久久久 | youjizzxxxxx | 久久国产精品波多野结衣 | 黄频在线看 | 第一章豪妇荡乳黄淑珍 | 天天做天天爱天天操 | 天堂素人约啪 | 99热网址 | 爽插 | 国产 欧美 在线 | 校园春色自拍偷拍 | 婷婷国产在线 | 国产第一页屁屁影院 | 国产丰满果冻videossex | 日韩av在线中文字幕 | 日韩精品电影一区二区 | sm捆绑调教视频 | 中文字幕一区二区三区乱码不卡 | 人人草网 | 在线看视频 | 亚洲成人999 | 国产123区 | 色噜噜一区二区三区 | 97在线观看视频 | 日本免费福利视频 | 人人射 | 粉嫩一区二区三区 | 99精品久久毛片a片 亚洲精品综合 | 成人久久久久久久 | 麻豆伦理片 | 7m精品福利视频导航 | a国产视频 | 日日精品 | 久久中文字幕一区 | 爱情岛亚洲首页论坛小巨 | 国产午夜亚洲精品午夜鲁丝片 | 永久免费在线视频 | 中文字幕一区二区三区电影 | 69国产成人精品二区 | 性高潮视频在线观看 | 久久男人的天堂 | 日日射av | 巨胸喷奶水www久久久免费动漫 | 人妻视频一区二区 | 国产免费看黄 | 久草成人在线 | 国产精品福利影院 | 国产精品三级 | 中文字幕123 | 先锋资源av在线 | 黄色一级视频在线观看 | 丰满少妇影院 | 亚洲一区二区三区四区在线观看 | 午夜亚洲一区 | 中文字幕在线观看不卡 | 中文字幕第一页在线播放 | 欧美福利视频在线 | 手机av免费 | 灌篮高手全国大赛电影 | 少妇被黑人到高潮喷出白浆 | 国产欧美日 | 综合久久亚洲 | 在线亚洲精品 | 亚洲精品入口 | 日韩av在线看免费观看 | 99国产在线观看 | 一区二区高清视频 | 少妇高潮大叫好爽喷水 | 男女洗澡互摸私密部位视频 | 无码人妻精品一区二区三区99不卡 | 亚洲精品乱码久久久久久蜜桃91 | 国产老头老太作爱视频 | 国产大学生av | 国产精品一亚洲av日韩av欧 | a级黄色录像 | 日本高清不卡码 | 合欢视频在线观看 | 国产精品欧美日韩 | 美女被日网站 | 在线天堂在线 | 动漫一区二区三区 | 亚洲国产精品久久久久婷婷老年 | 国产伦精品一区二区三区妓女 | 国产黄色网址在线观看 | 严厉高冷老师动漫播放 | 桃花色综合影院 | 9999视频| 男人添女人荫蒂国产 | 国产又粗又黄又爽又硬 | 国产夫妻精品 | 99re这里只有精品在线 | av鲁丝一区二区鲁丝 | 国产精品一区二区在线播放 | 亚洲色欲一区二区三区在线观看 | 日本新japanese乱熟 | 国产精品久久久久久久妇 | 超碰在线国产 | 亚洲精品一区二区三区不卡 | 欧美又粗又大xxxxbbbb疯狂 | 三级免费网站 | 成人激情站| 欧美特黄一区二区三区 | 国产真人毛片 | 91精品国产色综合久久不卡98 | 日韩精品第二页 | 女~淫辱の触手3d动漫 | 国产综合在线播放 | 五月天激情丁香 | 青娱乐青青草 | 波多野结衣久久精品 | 一本大道久久久久精品嫩草 | 亚洲国产高清视频 | 丝袜脚交国产在线观看 | www网站在线观看 | a级片在线| 欧美亚洲国产一区二区三区 | 欧美精品在线一区二区三区 | 日本一区二区视频在线观看 | 国产精品后入内射日本在线观看 | 国产免费看av| 反差在线观看免费版全集完整版 | 懂色av一区二区三区免费 | 好吊色av| 国产小视频在线观看 | 性久久久久久久 | 污片免费在线观看 | 黄色精彩视频 | 国产在线拍揄自揄拍 | 三上悠亚三级 | 亚洲毛片在线播放 | 中文字幕人妻色偷偷久久 | 久久综合精品国产二区无码不卡 | 黄色片子一级 | 中文字幕亚洲乱码熟女1区2区 | 一区二区日韩电影 | 香蕉黄视频 | 少妇视频网站 | 欧美一区二区三区不卡视频 | 久久久成人免费 | 一级肉体全黄裸片中国 | 苏晴忘穿内裤坐公交车被揉到视频 | 国产在线免费观看 | 久久久久久国产 | 麻豆人妻少妇精品无码专区 | 久久综合五月 | 亚洲天堂精品在线 | 国产一区在线播放 | 亚洲欧美在线观看 | 亚洲国产天堂 | av网站在线观看免费 | 黄色高清网站 | 欧美sm极限捆绑bd | 国产日韩欧美精品在线 | 日本高清视频在线 | 性感美女在线观看 | 国产黄a三级三级看三级 | 激情亚洲色图 | 99视频免费观看 | 午夜天堂视频 | 午夜88 | 俄罗斯porn | 韩国三级hd中文字幕 | 亚洲区在线 | 日韩欧美国产亚洲 | 日韩欧美三级 | 男女又爽又黄 | 乱老熟女一区二区三区 | 国产tv在线观看 | 在线日韩一区 | 亚洲图片欧美另类 | 国内精品人妻无码久久久影院蜜桃 | 国产黄色影视 | 久久国产精品波多野结衣av | 久久欲 | 九九视屏| 精品国产亚洲一区二区麻豆 | 欧美色频 | 中文字幕亚洲乱码熟女1区2区 | 女人18毛片毛片毛片毛片区二 | 免费精品久久 | 四虎影院在线免费播放 | 免费污视频 | 国产一区二区女内射 | 99热黄色| 亚洲国产精品va在线看黑人 | 91美女在线视频 | 日韩欧美一二区 | 国产最新在线视频 | 国产睡熟迷奷系列精品视频 | 欧美一区二区在线看 | 欧美激情成人网 | 天堂在线视频观看 | 少妇人妻真实偷人精品视频 | 欧美激情校园春色 | 久久午夜免费视频 | 国内精品免费视频 | 福利视频网址 | 日韩一卡 | 国产伦精品一区二区三区免.费 | 三女警花合力承欢猎艳都市h | 糖心vlog精品一区二区 | 中文字幕精品三级久久久 | 操女人逼逼视频 | 白又丰满大屁股bbbbb | 黄色三级在线观看 | 午夜电影你懂的 | 成人无码精品1区2区3区免费看 | 色欲久久久天天天综合网 | 毛片动漫 | 亚洲精品日韩av | 国产涩涩| 成人性生交生交视频 | 欧美午夜性 | 午夜精品福利在线 | 成人在线免费看片 | 亚洲国产果冻传媒av在线观看 | 亚洲av女人18毛片水真多 | 欧美激情伊人 | 青青草成人影视 | 爽天天天天天天天 | 欧美专区在线 | 嫩草导航 | 久久人体视频 | 极品videosvideo喷水 | 插插插色综合 | 这里只有精品视频在线观看 | 日韩精品中文字幕一区二区三区 | 久久精品视频16 | 日韩无砖 | 亚洲青草| 99精品国自产在线 | 免费视频污| 亚洲av无码精品一区二区 | 熟女视频一区二区三区 | 秋霞影院av | 欧洲av一区二区 | 欧美一区二区三区久久久 | 欧美激情黑白配 | 国产在线三区 | 91国在线啪 | 91麻豆精品国产91久久久无需广告 | 少妇性高潮视频 | 亚洲 激情 小说 另类 欧美 | 亚欧成人 | 久久黑人| 久久久久久久一区二区 | 在线观看国产三级 | 亚洲精品乱码久久久久久国产主播 | 男男在线观看 | 天天撸一撸 | 欧美性xxxxx极品娇小 | 中文字幕乱视频 | 91深夜福利 | 亚洲欧美精品一区二区三区 | 狠狠五月天 | 亚洲AV无码成人片在线观看 | 九色在线观看视频 | 一区二区三区影院 | 日韩精品无码一区二区 | 男人与雌性宠物交啪啪 | 日韩第一区 | 国产精品国产三级国产 | 免费性爱视频 | 污污网站在线观看 | 国产精品久久久影院 | 亚洲婷婷丁香 | 13日本xxxxxⅹxxx20| 91成人精品一区在线播放 | 超碰黄色 | 91搞| 波多野结衣小视频 | 中文字幕在线有码 | 夜夜cao| 中文字幕在线观看免费视频 | 国产亚洲精品久久久久久打不开 | 日韩久久网 | 国产做爰高潮呻吟视频 | 国产污污视频 | 亚洲精品一区二区潘金莲 | 国产又黄又猛又粗又爽 | 日韩中文欧美 | 成人交配视频 | 日韩精品――色哟哟 | 亚洲偷拍一区 | 亚洲资源网站 | 亚洲精品免费在线观看 | av成人 | 18被视频免费观看视频 | 国产美女免费 | 久久天天干 | 91超碰国产在线 | 欧美另类亚洲 | 一级特黄色大片 | 久久久久久久91 | 国产成人福利在线 | 久久色网站 | 免费成人美女在线观看 | 欧美第三页 | 国产91色 | 牛牛精品视频 | 成人免费在线看片 | 日韩精品电影一区二区 | 国产精品伦理一区二区 | 麻豆视频二区 | 国产情侣自拍小视频 | 国产美女裸体无遮挡免费视频 | 麻豆久久久久久久 | 性欧美极品 | 一区二区在线视频 | 国产精品国语对白 | 日本在线播放一区 | 天堂av免费观看 | 未满十八岁勿进 | 天天操导航 | 日韩成人午夜影院 | 国产成人精品一区二区三区视频 | 中文字幕色哟哟 | 美女张开腿让人桶 | 九七影院在线观看免费观看电视 | 国产黄色免费 | 糖心视频在线 | 精品国产999久久久免费 | 国产精品成人久久久 | 亚洲精品国产无码 | 亚洲精品影片 | 国产77777 | 亚洲天堂一区二区三区 | 日本免费在线观看视频 | 黄色一级大片在线免费看产 | 色撸撸在线 | v8888av| 二区三区在线观看 | 国产精品无码在线 | 人妻av无码一区二区三区 | 精产国品一二三产区m553麻豆 | 天堂va欧美ⅴa亚洲va一国产 | 亚洲三区在线 | 制服丝袜在线视频 | 在线观看中文字幕一区 | 中文字幕无码毛片免费看 | 久久网中文字幕 | 狠狠噜噜 | 成人免费网站 | 色八戒av | 男女视频网站 | www.中文字幕在线观看 | 精品人妻无码一区二区色欲产成人 | 香港黄色网 | 91桃色网站 | 中出视频在线观看 | 激情久久综合 | 性精品 | 国产色在线视频 | 国产欧美久久久 | 久久精品视频一区 | av免费在线观看网址 | 国产精品久久久久久久久久久久久久 | 成人综合在线视频 | 国产肥老妇视频 | 欧美国产一区二区三区 | 免费日本黄色网址 | 婷婷在线视频观看 | 欧美日韩亚洲在线观看 | 色婷婷狠狠18禁久久 | 欧美美女一区二区 | 亚洲激情网 | 国产三级大片 | 91精品久久久久久粉嫩 | 成人视屏在线 | 日韩午夜精品 | 中文字幕免费在线视频 | 色老汉视频 | 反差在线观看免费版全集完整版 | 午夜av网址 | 亚洲AV无码成人精品区麻豆 | 在线成人福利 | 台湾三级伦理片 | 久久在线免费观看视频 | aa片在线观看视频在线播放 | 免费看一级黄色大片 | 高清中文字幕 | 国产精品va | 亚洲中文一区二区三区 | 杏导航aⅴ福利网站 | 超碰在线观看免费 | 99精品在线 | 亚洲成人高清 | 成年人拍拍视频 | av草逼| 国产卡一卡二在线 | aa视频免费观看 | 亚洲暴爽 | 青青草一区二区三区 | 国产剧情av引诱维修工 | gogo人体做爰大胆视频 | 99网站| 国产福利视频 | 亚洲色图美腿丝袜 | 毛片在哪看| 奇米影| 天天操天天插天天射 | 国产夫绿帽单男3p精品视频 | 日韩激情一区二区三区 | a人片| 国产在线视视频有精品 | 国产精品美女www爽爽爽视频 | 少妇高潮一区二区三区99 | 免费的性爱视频 | 在线观看免费福利 | 3级av| 天天色棕合合合合合合合 | 亚洲视频 中文字幕 | 午夜精品小视频 | 欧美日韩在线精品 | 337p日本欧洲亚洲大胆张筱雨 | 免费看av软件 | 中文字幕一区二区在线播放 | 免费日韩一级片 | 伊人青青操 | av高清不卡 | 国产成人精品免费看视频 | 欲涩漫入口免费网站 | 麻豆影视在线播放 | 成人做爰免费视频免费看 | 欧美视频一区二区三区 | 欧美日韩一级视频 | 日韩欧美成人网 | 亚洲香蕉在线观看 | 欧美成人乱码一区二区三区 | 黑森林福利视频导航 | 男人的网址 | 日韩蜜桃视频 | 91资源在线播放 | 污视频免费在线观看 | 亚洲精品成人在线 | 91黄色在线视频 | 免费在线播放av | 极品美女无套呻吟啪啪 | 无码人妻丰满熟妇区五十路 | 日韩免费一二三区 | 国产1区2区在线观看 | 青青草手机在线观看 | 伊人久久精品一区二区三区 | 日本黄色小视频 | 国产jjizz一区二区三区视频 | 欧美一级一区二区 | 国产亚洲小视频 | 制服丝袜国产在线 | 亚洲国产欧美日韩 | 婷婷在线观看视频 | 一二三区中文字幕 | 亚洲AV无码一区二区三区性 | 亚洲精品666| 精品日韩在线观看 | 动漫美女舌吻 | 久久伊人亚洲 | 国产又粗又猛又黄又爽无遮挡 | av在线资源网| 成人小视频在线播放 | 国产精品无遮挡 | 宅男视频在线免费观看 | 中文字幕观看视频 | 免费av电影网址 | 97超碰福利 | 四虎影院www| 国产久操视频 | 欧美大片xxx | 免费网站www在线观看 | 国产sm在线观看 | 欧美日韩大片 | 亚洲88 | 极品少妇视频 | 超碰在线观看97 | 日韩18p| 超碰免费在线观看 | 香蕉久久网 | 欧美美女性生活视频 | www.日日夜夜 | 久久2019 | 午夜影院一区二区三区 | 99免费视频 | 久久久一区二区三区 | 日本一区二区免费在线观看 | 美女100%露胸无遮挡 | 九九热视频在线观看 | 国产麻豆剧传媒精品国产av | 夜夜草导航 | 黄色av免费在线 | 久久久久久久久久久国产精品 | 免费中文字幕 | 台湾性生生活1 | 99国产精品一区二区三区 | 波多野结衣办公室双飞 | 一级黄色在线观看 | 天堂在线观看视频 | 日韩人妻精品一区二区 | 91久久久久久久久久 | 天天操人人射 | 欧美黄色影院 | 欧美午夜视频在线观看 | 黄色美女视频网站 | 九九热免费视频 | 亚洲av中文无码乱人伦在线观看 | 五月天婷婷色 | 国产成人精品视频ⅴa片软件竹菊 | 日本免费色 | 屁屁影院国产第一页 | 图书馆的女友在线观看 | 四虎永久在线观看 | 国产精品7 | 国产一级淫片a | 久久涩视频 | 国产观看 | 最近日本中文字幕 | 在线观看精品一区 | 人人插人人搞 | 麻豆精品在线播放 | 少妇又色又爽又高潮极品 | 亚洲无毛| 福利在线一区 | 国产性久久 | 一级黄色短视频 | 香蕉日日| 日韩专区在线 | 欧美一级免费视频 | 91片看| 鲁鲁在线 | 日韩中文字幕在线视频 | av一级大片 | 精品国产伦一区二区三区免费 | 国产午夜无码视频在线观看 | 国产一级美女 | 懂色av蜜臀av粉嫩av分享 | 91老女人 | 泽村玲子在线 | 在线观看一区二区三区四区 | 欧洲av一区二区三区 | 成人午夜免费视频 | 亚洲AV午夜福利精品一级无码 | 91av中文字幕 | 国产又大又粗又爽 | 免费日批视频 | free性丰满69性欧美 | 香蕉久久国产av一区二区 | 九九热这里只有精品6 | 国产激情久久久久 | 性史性dvd影片农村毛片 | 久久人妻少妇嫩草av无码专区 | 91精品国产综合久久香蕉 | 免费精品视频 | 99性视频 | 黑人操日本女优 | 男人网站在线观看 | 成人av一区二区三区 | 男女草逼视频 | 日韩免费网站 | 亚洲免费成人在线 | 在线观看www视频 | 不卡av一区二区 | 欧美一级大片 | 91呦呦| 亚洲天堂2013 | 成年人免费黄色 | 明星毛片 | 国产成人精品免费网站 | 名校风暴在线观看免费高清完整 | 色xxxxxx| 双性人bbww欧美双性 | 国产视频xxxx| 国产激情偷乱视频一区二区三区 | 日韩乱码人妻无码中文字幕 | 久操视频在线观看 | 人妻少妇无码精品视频区 | 亚洲色图25p| 男生吃小头头的视频 | 麻豆国产精品视频 | 成人动漫在线免费观看 | 69天堂| 91xxx在线观看 | 深夜视频在线免费观看 | 国产欧美视频在线观看 | 国产熟女高潮一区二区三区 | 日韩在线国产 | 欧美不卡视频 | 日本高清视频免费看 | 涩涩久久| 中文字幕av影片 | 一级片在线观看免费 | 国产美女作爱全过程免费视频 | 欧美日韩一区二区三区四区五区 | xxxx在线播放| 欧美色图在线播放 | 特大黑人巨人吊xxxx | 亚洲av人人澡人人爽人人夜夜 | 亚洲精品少妇 | 在线观看视频色 | 男人操女人的视频 | 日韩特黄毛片 | 九九免费在线视频 | 就是喜欢被他干 | 日本少妇在线观看 | 亚洲无码精品在线播放 | 资源av | 免费av资源 | 天天草夜夜草 | 女生裸体无遮挡 | 丝袜美腿中文字幕 | 久久视频精品 | www.av色| 亚洲免费婷婷 | 乱子伦一区二区三区 | 亚洲草逼| 欧美草逼视频 | 亚洲欧美a| 国产福利视频在线 | 久久免费电影 | 国产亚洲色婷婷久久99精品91 | 亚洲天堂女人 | 日韩天堂av | 国产99在线观看 | 国产suv精品一区二区 | 欧美日一本 | 欧美视频区 | av大帝 | 99久久久无码国产精品性黑人 | 日韩视频在线观看免费 | 人妻少妇精品视频一区二区三区 | 日韩美女性生活 | 欧美专区在线播放 | 青青操av在线 | 欧美精品免费在线 | 国产在线v | 欧美视频一二三 | 好男人资源 | 婷婷色一区二区三区 | 亚洲一区二区三区久久久 | 激情综合区 | h片在线免费 | 日韩欧美在线观看免费 | 欧美性bbw | 欧美巨大另类极品videosbest | 欧美亚洲另类在线 | 国产伦精品一区二区三区视频黑人 | 五月婷婷狠狠 | 久久久久成人网 | 欧美怡红院视频一区二区三区 | 国产成人无码一二三区视频 | 国产三级影院 | 自拍偷拍亚洲精品 | 亚洲午夜电影网 | 少妇精品久久久久久久久久 | 日本熟妇浓毛 | 后进极品白嫩翘臀在线视频 | 娇小萝被两个黑人用半米长 | 91久热| 精品国产九九九 | 国产日韩精品一区二区三区 | 亚洲一区二区三区四区不卡 | 男生吃小头头的视频 | 国产精品熟女久久久久久 | 精品亚洲天堂 | 欧美自拍视频在线观看 | 国产精品5 | 在线成人毛片 | 国产成人在线免费视频 | 亚洲av无码一区二区二三区软件 | 麻豆欧美 | 手机在线播放av | 六月婷婷色 | 天堂网视频 | 视频一区二区国产 | 丰满岳妇伦在线播放 | 欧美国产日韩视频 | 日本美女黄色一级片 | 91正在播放| 97超碰免费在线观看 | 欧美激情一级 | 国产极品一区二区 | 国产亚洲精品成人a | 野花视频在线免费观看 | 国产女人18毛片水真多18 | 久久久18禁一区二区三区精品 | 久久精品国产亚洲AV无码麻豆 | 善良的公与媳hd中文字 | 欧美成综合| 欧美成人黑人xx视频免费观看 | 色大师在线观看 | 可以看av的网址 | www.日本黄色 | 精品一二三四区 | 91一起草| 久青草免费视频 | 成人宗合网 | 亚洲av无码久久精品色欲 | 熟女性饥渴一区二区三区 | 韩国av免费观看 | 手机免费看av | 亚洲人成在线免费观看 | 国产精品久久久久999 | 处破女av一区二区 | 性一交一黄一片 | 久久久婷婷| 国产第3页 | 中国一及毛片 | 成人免费黄色片 | 亚洲综合激情小说 | 欧美老熟妇乱大交xxxxx | 国产小视频网址 | www色日本| 黄网站色视频 | 成人无码一区二区三区 | 日韩免费一级片 | 性网爆门事件集合av | 天天爽夜夜爽人人爽 | 乱妇乱女熟妇熟女网站 | 嫩草免费视频 | 99久久精品国产成人一区二区 | 欧美成人综合视频 | 亚洲精品视频一区 | 亚洲午夜久久久久久久久久久 | 国产特级黄色片 | 欧美一区久久 | 992在线观看 | 韩日在线视频 | 亚洲免费色图 | 欧美最猛黑人xxxx | 国产精品中文 | 欧美视频免费在线观看 | a毛片| juliaannxxxxx高清| 色吧久久| 国产婷婷综合 | 99久久99九九99九九九 | 第一页在线 | 成人乱人乱一区二区三区一级视频 | 久久综合婷婷 | 91久久综合 | 少妇高潮av久久久久久 | 蜜臀精品一区二区三区 | 亚洲一区二三区 | 国产让女高潮的av毛片 | 国产猛男猛女超爽免费视频 | 久久久久久网址 | 国产色诱视频 | 亚洲av无码一区二区三区在线播放 | 国产黄在线免费观看 | 99久久这里只有精品 | 色资源在线 | 天天躁日日躁狠狠躁免费麻豆 | 草啪啪 | www.色偷偷| 日韩电影中文字幕 | 麻豆国产尤物av尤物在线观看 | 国产一级自拍 | 久久视频免费观看 | 国产午夜影院 | 五月婷婷在线视频 | 亚洲人在线视频 | 99色网| 黄色大片一级片 | 91热精品| 国产精品一区二区三区免费在线观看 | 97精品一区二区视频在线观看 | 白浆一区 | 中文字幕欧美人妻精品 | 国产精品麻豆成人av电影艾秋 | 小萝莉末成年一区二区 | 射婷婷 | 国产 日韩 欧美 在线 | 美女在线播放 | 手机免费看av | www.久久伊人 | 99久久国| 成人黄色在线观看视频 | 网站av| 欧美黑人一区二区 | 天天色天天操天天 | 国产一区二区三区四 | 亚洲 激情| 欧美一区二区免费在线观看 | 国产呦系列 | 天堂av免费看| 国产免费av一区 | 3344成人 | 亚洲黄av | 国产传媒在线 | 日韩综合网站 | 国产综合视频 | 亚洲国产tv| 久久精品老司机 | 欧美午夜不卡 | 亚洲图片二区 | av白浆| 少妇一夜三次一区二区 | 亚洲欧美视频在线观看 | 女女互磨互喷水高潮les呻吟 | 色乱码一区二区三区在线男奴 | 青青久久久| chien国产乱露脸对白 | av在线免费不卡 | 18视频在线观看网站 | 超碰人人在线 | 暖暖日本在线 | 中文字av| 成年网站在线视频网站 | 姐姐的秘密韩剧免费观看全集中文 | 欧美一区二区三区四区在线 | 九九九九精品 | 影音先锋国产在线 | 国产伦精品一区二区. | 中国性xxx| 国产亚洲精品精品精品 | www伊人 | 风韵少妇性饥渴推油按摩视频 | 久久动态图 | 中文在线字幕av | 欧美亚洲另类视频 | 成人片免费看 | 久操视频网站 | 久久成年视频 | 午夜高清| 精品人妻久久久久一区二区三区 | 自拍偷拍综合 | 国产中文一区二区 | xxx性视频| 国产激情片 | 3d动漫精品啪啪一区二区下载 | 亚洲成人三区 | 日韩av一区在线 | 欧美自拍一区 | 看片国产| www污污 | 亚洲黄色免费观看 | 国产三级做爰高清在线 | a一级视频 | 尤物精品视频 | 露出调教羞耻91九色 | 久久久午夜视频 | 国产色一区 | 一区二区三区四区五区视频 | 98视频在线 | 啪啪的网站 | 三年中文免费观看大全动漫 | 看看黄色片 | 色狠av| 天堂成人在线 | 97视频免费观看 | 久久精品国产99国产精品 | 亚洲一区二区三区成人 | 色窝 | 亚洲骚 | 91桃色在线观看 | 国产无套粉嫩白浆内谢 | 亲子乱aⅴ一区二区三区 | 操欧美美女 | 国产a不卡 | 日韩在线国产精品 | 人人超碰在线 | 激情四射网| 精品国产乱码久久久久久牛牛 | 国产高清精品软件丝瓜软件 | 女生扒开尿口让男生桶 | 日本三区视频 | 黑人巨大猛烈捣出白浆 | ww欧美 | 国产经典久久 | 午夜激情视频在线 | 国产肉体xxxx裸体784大胆 | 亚洲欧美国产精品 | 欧美一区二区三区视频在线观看 | 特级西西444www大胆免费看 | 我要看一级黄色片 | 美女av一区二区 | 亚洲av女人18毛片水真多 | 蜜芽久久| 熟女熟妇伦久久影院毛片一区二区 | 亚洲综合色视频 | 波多野吉衣av无码 | 天天干中文字幕 | 久久久蜜桃一区二区 | 午夜久久久久久久 | 伊人网成人 | 色哟哟av| 亚洲欧洲天堂 | 日韩经典一区 | caoporn人人 | 国产8区| 日本少妇xxxxx | 亚洲成人动漫在线观看 | 国产九九久久 | 在线草| 丁香六月综合 | 免费成年人视频 | 国产精品久久久久久久久免费桃花 | 男生把女生困困的视频 | 国产精品www | 热热热色 | 91干视频 | 国产免费av电影 | 一级特黄特色的免费大片视频 | 亚洲 欧美 综合 | 五月香婷婷 | 国产自在线 | 亚洲xxx视频 | 在线天堂www在线国语对白 | 香蕉久久精品日日躁夜夜躁 | 成年人在线观看视频网站 | 黄色免费小视频 | 午夜免费网址 | 91色多多| 亚洲精品久久久久久久久久久 | av电影中文字幕 | 永久免费汤不热视频 | 五十路妻| 成人一级黄色 | 国产精品xxx在线观看 | 国产在线a| 人人做人人爱人人爽 | www青青草 | 国产自产自拍 | 欧美另类激情 | 狠狠干欧美| 无码人妻精品一区二区三应用大全 | 中文字幕人妻丝袜乱一区三区 | 亚洲伦乱 | 一级黄色在线视频 | jizzjizz日本人 | 日皮视频免费看 | 黄色一级片毛片 | 色哟哟精品观看 | 国产精品久久久久久久久夜色 | 久久av网 | 91视频免费 | 五月综合视频 | 尤物193.com| 国产成人精品自拍 | www国产无套内射com | 黄色三级av | 国产麻豆精品在线观看 | 人人看av | 欧美人与禽zoz0性3d | 韩国成人理伦片免费播放 | 黑人巨大猛烈捣出白浆 | 亚洲精品888| 亚洲黄色精品视频 | 国产午夜一区 | 在线观看视频一区 | 国产极品视频在线观看 | www.国产91| 簧片av| 国产麻豆精品一区 | 熟妇人妻无乱码中文字幕真矢织江 | 奴色虐av一区二区三区 | 日本熟女毛茸茸 | 色片免费看 | 亚州av | 九九av在线 | 五月天小说网 | 岛国av免费看 | 黄色av观看| 亚洲 欧美 激情 小说 另类 | 天天操婷婷 | 亚洲女人天堂 | 久久久一区二区三区四区 | 最新国产精品 | 亚洲黄色小视频 | 欧洲xxxxx | 希岛婚前侵犯中文字幕在线 | 欧美日韩精品一二三区 | 欧美黄色网络 | 日韩av电影一区 | 国产日韩亚洲欧美 | 欧美人与动物xxxx | aaa久久| 日本黄色片免费 | 欧美一区二区三区网站 | 久久久午夜视频 | 美景之屋电影免费高清完整韩剧 | 欧洲精品视频在线观看 | 久久99精品久久久 | 清纯唯美亚洲综合 | 国产传媒专区 | 黑人超碰 | 黄色一级片国产 | www久久久久久久 | 欧美一区二区三区四区在线观看 | 精品123区 | 亚洲一区二区三区在线观看视频 | 亚洲国产精品成人无久久精品 | 久久高清免费视频 | 日日狠狠久久偷偷四色综合免费 | 亚洲男人的天堂网站 | 免费黄色av片 | 97在线影院 | 中文字幕亚洲欧美日韩 | 热玖玖| 特级黄色网 | 双性受孕h堵精大肚生子 | 第一次破处视频 | 久久yy| 黑人操亚洲女人 | 国产无套在线观看 | 97精品超碰一区二区三区 | 伊人网在线免费观看 | 日本成人三级 | 欧美亚州 | 免费观看成年人视频 | 日本在线播放一区 | 亚洲人视频在线观看 | 亚洲精品久久久久久久久 | 91丨九色丨海角社区 | www.夜夜爽 | 免费网站在线观看视频 | 亚洲成人国产精品 | 蜜桃做爰免费网站 | 日韩永久| 亚洲中出 | 精品国产免费观看 | 黄色高潮 | 免费av在线 | 亚洲第一狼人区 | 久久高清精品 | 成人av手机在线 | 国产又黄又猛 | 亚洲av区无码字幕中文色 | 黄色一级免费 | 91抖音在线观看 | 男生裸体视频 | 亚洲第一成人在线 | 中文字幕无码乱码人妻日韩精品 | 国产精品黄色网 | 2021av在线 | 精品久久久久久久久久久久久久 | 国产做爰免费视频观看 | 国产精品免费网站 | 国产精品伦一区二区 | 欧美日韩中文字幕在线 | 日韩免费不卡视频 | 国产伦精品一区二区三区视频网站 | 人操人| 久久综合精品视频 | 亚洲精品在线视频观看 | 在办公室被c到呻吟的动态图 | 久久久久久99精品久久久 | 91在线无精精品白丝 | 999视频在线观看 | 777精品伊人久久久久大香线蕉 | 久久91视频| 综合色天天 | 在线观看日本一区 | 欧美日韩成人在线观看 | 国偷自产视频一区二区久 | 亚洲图片在线观看 | 黄色靠逼视频 | 欧美一区二区三区成人精品 | 国产精品久久久久久亚洲色 | 日韩免费高清一区二区 | 日本国产一区二区 | 一本毛片| 亚洲精品成人无码熟妇在线 | 重口h文 | av大片免费在线观看 | 欧美一区二区三区免费 | 中文字幕一区二区人妻痴汉电车 | 日本少妇色视频 | 香蕉国产 | 亚洲爆乳无码精品aaa片蜜桃 | 91免费影片 | 激情戏网站 | 男人插入女人阴道视频 | 亚洲美女性生活视频 | 久草久草 | 日韩精品久久久久久免费 | 91黄色大片| 欧美国产免费 | 亚洲女人天堂网 | 免费观看国产精品 | 91蝌蚪视频在线观看 | 人人爽人人干 | 国内自拍在线 | 欧美视频在线观看一区二区 | 免费中文字幕日韩欧美 | 黄色91在线观看 | √天堂资源地址在线官网 | 不卡在线播放 | 天天舔天天射 | 少妇特黄一区二区三区 | 亚洲二区视频 | 日韩一级高清 | 97精品在线视频 | 小妹色播影院 | 尤物在线观看视频 | av影视在线观看 | 男女做事网站 | 麻豆传媒一区二区三区 | 久久天天操| 日韩精品一区二区在线观看 | 蕾丝视频污 | 黑料福利 | 黑人巨大精品欧美一区二区免费 | 最新成人在线 | 日本xx视频 | av资源免费观看 | 男人操女人下面视频 | 91精品一区 | 成人看片泡妞 | 久久99精品久久久久久 | 国产日韩欧美日韩大片 | 日本亚洲网站 | 日韩中文字幕视频在线观看 | 裸体喂奶一级裸片 | 一区二区三区成人 | 天天干天天干天天干天天 | xxxx69视频 | 无码少妇一区二区三区 | 大陆一级黄色片 | 99爱在线| 五月婷婷综合激情 | 欧美 日韩 国产 精品 | 五月天社区| 国产一区在线免费观看 | 免费三级黄色 | 欧美一区二区三区公司 | 日韩欧美在线一区二区三区 | 国产伦理在线观看 | 韩日产理伦片在线观看 | 色呦呦网 | 95视频在线观看 | 成人av图片 | 中文字幕一区二 | 制服一区 | 成人在线国产 | 视频在线观看电影完整版高清免费 | 久草免费新视频 | 狂躁美女大bbbbbb黑人 | 精品少妇v888av | 日日日日日日bbbbbb | 亚洲精品ww | 激情五月激情综合网 | 日韩av免费在线 | 亚洲免费中文 | 老牛影视一区二区三区 | 精品无码黑人又粗又大又长 | 大奶在线观看 | 黄色成人免费网站 | 娇妻之欲海泛舟无弹窗笔趣阁 | 中文字幕一区二区三区不卡 | 亚洲黄色精品 | 精东影业一区二区三区 | 欧美三级网 | 国产999久久久 | av在线不卡免费 | 骚虎av | videos另类灌满极品另类 | 亚洲第一看片 | 成人黄色三级视频 | 亚洲国产久 | 日剧大尺度床戏做爰 | 在线观看福利网站 | 大又大粗又爽又黄少妇毛片 | 欧美日韩免费在线 | 亚洲区视频 | 中文字幕精品一区二 | 夜夜爱夜夜操 | 99re6热在线精品视频播放 | 伊人久久青青 | 岛国av在线免费观看 | 992在线观看 | 男人都懂的网站 | 亚洲欧美日本韩国 | 成人乱人乱一区二区三区一级视频 | 狠狠噜噜| 日日操夜夜操狠狠操 | 激情拍拍 | 强制高潮抽搐哭叫求饶h | 黄色一级片在线免费观看 | 国产又粗又猛又爽又 | 五月天丁香久久 | 波多野42部无码喷潮在线 | www.啪啪.com| 午夜影院在线播放 | 中文字幕在线观 | 视频免费观看在线 | 久色资源 | 欧美mv日韩mv国产网站 |