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. }

日本一区二区三区免费在线观看 | 草莓视频在线观看入口w | heyzo在线播放 | 午夜私人福利 | 巨大乳の揉んで乳榨り奶水 | 国精产品一区一区三区有限公司杨 | 国产一级黄色录像 | 成人免费视频毛片 | 天海翼一区| 久久久二区 | 久久久精品影院 | 色噜噜狠狠一区二区三区牛牛影视 | аⅴ天堂中文在线网 | 久久久久久久久久久久Av | www男人天堂| 亚洲AV无码国产精品午夜字幕 | 日韩乱码一区二区三区 | 成人资源在线观看 | 五十路av | av三级在线观看 | a天堂在线| 成人免费超碰 | 极品销魂美女少妇尤物 | 免费看污视频的网站 | 黄色一级大片在线免费看国产一 | 可以免费看av | 黑料网在线观看 | 国产91丝袜在线播放0 | 成人免费视频国产免费麻豆 | 国产91在线观看丝袜 | 国产麻豆精品久久一二三 | 全部孕妇毛片丰满孕妇孕交 | 法国经典free性复古xxxx | 蜜桃精品久久久久久久免费影院 | 五月激情网站 | 日韩一级大片 | 伊人久久大香线蕉 | 成人啪啪18免费游戏链接 | 69毛片| www.avcao| 日韩一区二区在线观看视频 | 欧美日韩高清不卡 | 中文字幕欧美人妻精品 | 国产区视频在线观看 | 日本熟妇人妻中出 | 欧美我不卡| 亚洲一区二区久久 | 久久激情网站 | 国产中文字幕免费 | 黄色一区二区三区四区 | 麻豆一区产品精品蜜桃的特点 | jizz国产视频 | 亚洲精品电影在线观看 | 麻豆app在线观看 | 欧美日韩国产成人在线 | 在线视频一区二区三区四区 | 国产一区二区免费在线观看 | 欧美一级一区二区三区 | 99爱国产 | 精品91在线 | 国产又粗又大又硬 | www.av网站| 澳门超碰| 和黑帮大佬的365 | 欧美一区二区三区视频在线观看 | 免费无遮挡网站 | 精品国产免费一区二区三区 | 精品人妻一区二区三区日产乱码 | 日本不卡在线视频 | 中文字字幕在线中文乱码 | а√天堂资源中文最新版地址 | 免费毛片一区二区三区 | 内射国产内射夫妻免费频道 | 69视频网 | 蜜乳av一区二区 | 污污内射久久一区二区欧美日韩 | 国产精品自拍区 | 日本不卡一区在线观看 | 奇米色影视 | 浪潮av网站 | 18性xxxxx性猛交 | 欧美人与动物xxx | 国产黄色在线播放 | 国产资源在线观看 | 琪琪色网| 激情五月婷婷小说 | 欧美人xxxx| 手机看片1024久久 | 69毛片| 99成人精品视频 | 黄色免费视频 | 亚洲图片在线播放 | 日韩最新av | 亲子乱子伦xxxx | 青青草国产在线观看 | 中文在线一区 | 国产精品老牛影视 | 51自拍视频 | 亚洲琪琪| 特级性生活片 | 亚洲欧美一区二区三区情侣bbw | 女人张开腿让男人桶爽 | 狼人综合网 | 中文在线免费看视频 | 免费成人在线观看视频 | 久久黄色小视频 | 日韩一区欧美 | 日本三级在线视频 | 初尝黑人巨炮波多野结衣 | 污视频免费看 | 中文字幕首页 | 欧美精品二区三区四区免费看视频 | av一起看香蕉 | 在线你懂的| 国产精品无码免费专区午夜 | 少妇被爽到高潮动态图 | 日本三级久久久 | 97人妻精品一区二区三区 | 欧美区一区二区 | 一个色综合网 | 99视频在线观看免费 | 999久久精品 | 成人必看www. | 欧美福利在线 | 色中文字幕在线观看 | 亚洲婷婷丁香 | 新中文字幕 | 老熟女重囗味hdxx69 | 韩日在线| 精品视频一区二区三区在线观看 | 日本欧美在线视频 | 欧美在线一卡 | 欧美色图五月天 | 日韩小视频在线观看 | 超碰成人免费 | 精品久久久久久久久久久久久久久久 | 日韩欧美高清片 | 性做久久 | aaaaaabbbbbb毛片 | 日韩偷拍一区 | 亚洲我射 | 久久av免费 | 麻豆小视频 | 天天射日| 天天干天天色天天射 | 美女福利网站 | 日韩五码| 国内爆初菊对白视频 | 欧美精品久久久久久久 | 中文区中文字幕免费看 | 每日av更新| 日本大尺度做爰呻吟舌吻 | 99久久夜色精品国产亚洲 | 中文字幕一区二区人妻电影丶 | aaaaaav| 伊人tv| 最新在线黄色网址 | 风韵少妇性饥渴推油按摩视频 | www.成人av | 人人人超碰 | 免费视频www在线观看网站 | 日本免费黄视频 | 亚洲调教 | 超碰国产人人 | 粗大挺进潘金莲身体在线播放 | 国产一级免费观看 | 日韩亚洲在线 | 成人av一区二区三区在线观看 | 日批免费观看 | 国产露脸91国语对白 | 北条麻妃久久精品 | 黄色aaa视频 | 午夜激情欧美 | 日韩乱论| 99日韩 | 欧美日韩国产精品一区 | 国产精品久久久久久久免费看 | 国产又粗又猛又爽又黄 | 亚洲在线观看一区 | 国产观看 | 中文字字幕在线中文乱码 | 国产精品伦一区二区三区 | 亚洲在线日韩 | 亚洲av无码国产综合专区 | www.黄色在线 | 青草福利| а天堂中文在线官网 | 欧美大片黄色 | 国产真实在线 | 亚洲天堂黄 | 都市激情校园春色 | 欧美一线高本道 | 找国产毛片看 | 中文字幕一区二区三区乱码不卡 | 91禁看片| 日批免费观看 | 性巴克成人免费网站 | 九九国产视频 | 91九色网| 日本黄色xxx | 九九九九九九精品 | 日韩1024| 夜夜精品视频 | 不卡的av在线播放 | 日韩久久一区 | 一道本在线视频 | 久久久久久激情 | 天天插天天色 | 国产毛片毛片毛片毛片毛片 | 三级av| 美女被啪啪 | 波多野结衣片子 | 国产免费a级片 | 国产美女福利视频 | 国产乱国产乱 | 激情av一区| 久久精品国产亚洲av蜜臀色欲 | 伊人中文在线 | 久久成人久久 | 国产精品1000部啪视频 | 日本五十路在线 | avtt一区 | 欧美成人黄色片 | 深夜在线 | 亚洲精选在线观看 | 亚洲最新中文字幕 | 一本到av| 逼逼爱插插网站 | 玖玖精品在线 | 日本中文字幕第一页 | 纯爱无遮挡h肉动漫在线播放 | 国产福利小视频在线观看 | 777精品 | 97人人爽人人爽人人爽人人爽 | 欧美va天堂 | 亚洲永久免费网站 | 成人性爱视频在线观看 | 男男做爰猛烈叫床爽爽小说 | 久久对白| 精品久久在线观看 | 91精品国产色综合久久不8 | 91精品综合久久久久久五月天 | 久久网av | 亚洲欧美va天堂人熟伦 | 亚洲精品偷拍 | 成人高清视频在线观看 | 一卡二卡三卡四卡五卡 | 全黄一级男人和女人 | 激情图片在线视频 | 国产美女无遮挡永久免费观看 | chinese xxxx videos andvr| 久久国产传媒 | 黑人一级| 久久久1 | a√在线视频 | 亚洲天堂激情 | 一本色道久久综合亚洲 | 久热这里有精品 | 中文字幕影片免费在线观看 | 日韩av影片 | 日韩的一区二区 | 中文在线观看视频 | 男人天堂视频在线观看 | 极品尤物一区二区三区 | 麻豆av影视 | yy6080午夜| 免费无码毛片一区二区app | 奇米影视在线视频 | 亚洲午夜网 | 欲色av | 五月婷婷激情小说 | 国产男女爽爽爽 | 国产日韩欧美视频在线观看 | 欧美大片免费观看 | xxx综合网 | 91调教打屁股xxxx网站 | 人妻 日韩精品 中文字幕 | 丰满少妇被猛烈进入无码 | 男人天堂视频网站 | 海角社区在线视频播放观看 | 变态 另类 国产 亚洲 | 亚洲午夜精品久久久久久浪潮 | 久久久久在线视频 | 色欲av无码一区二区三区 | 久久久久亚洲精品中文字幕 | 99er精品视频 | 五月天一区二区 | 四虎色| av大片在线观看 | 涩涩视频网站在线观看 | 日韩欧美在线视频观看 | 亚洲插插 | 男女在线观看视频 | 中国免费黄色 | 丁香激情五月 | 一级aaa毛片 | 狠狠干一区二区 | 国产成人精品电影 | 狠狠人妻久久久久久 | 青娱乐97| 国产福利在线导航 | 99热这里只有精品7 精品国产aⅴ | 国产精品v欧美精品v日韩精品 | 2019毛片 | 欧美综合久久 | 能免费看黄色的网站 | 性按摩玩人妻hd中文字幕 | 毛片在线网| 亚洲午夜在线观看 | 自拍偷在线精品自拍偷无码专区 | 色妞网| 欧美偷拍另类 | 亚洲国产毛片 | 三上悠亚激情av一区二区三区 | 国产精品毛片视频 | 国产网站免费 | 日本少妇裸体做爰 | 日韩成人午夜影院 | 中文字幕33页| 国产激情视频一区 | 美女十八毛片 | 老司机精品福利视频 | 亚洲欧美日韩精品永久在线 | 一二三区中文字幕 | 午夜老司机福利 | 农村一级毛片 | www.199麻豆 | 国产情侣一区二区 | 都市激情校园春色 | 亚洲精品在线一区二区 | 韩国女同性做爰三级 | 久久在草 | 国产一级美女 | 亚洲一区免费观看 | www中文字幕在线观看 | 久久成人久久爱 | 欧美精品久久久久久久久老牛影院 | 国产视频一二 | 日本免费天堂 | 在线你懂的视频 | 欧美淫视频 | 国产女人18水真多18精品一级做 | 鬼灭之刃柱训练篇在线观看 | 亚洲最新中文字幕 | 色播导航 | 色妞综合 | 青青草国产在线观看 | 日韩3区 | 欧美一区亚洲 | 日本草逼视频 | 日韩欧美国产成人精品免费 | 免费毛片a | 人妻妺妺窝人体色www聚色窝 | 精品国产第一页 | 久久久久久久久久久久久女国产乱 | 明星双性精跪趴灌满h | 欧美一级片a | 精品一区二区精品 | 放几个免费的毛片出来看 | 18成人免费观看视频 | 成人在线高清 | 久热这里只有精品6 | 黄色日批 | 欧洲精品码一区二区三区免费看 | 久久久亚洲国产 | 蜜桃综合网 | 91九色网| 干干干日日日 | 打开每日更新在线观看 | 91精品国产一区二区三区 | 影音先锋人妻啪啪av资源网站 | 激情综合五月婷婷 | 青青青视频在线 | 久久91亚洲 | 人操人操 | 天天插综合 | 久久夜色精品 | 欧美日韩1 | 久久噜噜色综合一区二区 | 精品国产无码在线观看 | 在线91视频 | 6699嫩草久久久精品影院 | 精品福利在线视频 | 免播放器在线视频 | 青青草手机在线 | 国产日产精品一区二区三区 | 日日夜夜天天综合 | 天干夜天干天天天爽视频 | 亚洲aaa视频 | 校园sm主奴调教1v1罚视频 | 中文字幕免费高清 | 日韩欧美国产视频 | 国产奶水涨喷在线播放 | 黄色wwww | 裸体女人a级一片 | 免费av一区二区三区 | 国产精品不卡在线观看 | 黑人精品一区二区三区 | 91成人在线观看喷潮蘑菇 | 欧美亚洲另类在线 | 2017狠狠干 | 在线精品一区 | 精品爆乳一区二区三区 | 欧美 在线 | 国产激情四射 | 亚洲福利视频一区 | 国产av无码专区亚洲av毛网站 | 三级福利视频 | 亚洲视频免费在线播放 | 免费日本黄色网址 | 性色av网| 欧美全黄 | 天堂网站 | 日本色视 | 黄色成人毛片 | 午夜8888| 欧美日韩在线视频一区二区 | 日韩性xxxx| 色哟哟精品一区 | 欧洲亚洲视频 | 日本黄色免费 | 超污视频在线观看 | 麻豆蜜臀| 国产99久久久 | 日韩欧美精品在线观看 | 久久久精品一区二区三区 | 少妇精品在线 | 青青草好吊色 | 深夜成人在线观看 | 动漫女被黄漫免费视频 | 99re久久 | 欧美成人激情在线 | 色久阁| 动漫精品一区二区三区 | 日本男女激情视频 | 久久久精品一区二区涩爱 | 亚洲操片 | 久久免费视频网站 | 国产在线拍揄自揄拍无码视频 | 日本熟妇毛耸耸xxxxxx | 久草最新网址 | 国产不卡在线视频 | 美女精品一区二区 | 久草影视在线观看 | 蜜臀久久99精品久久久画质超高清 | 色哟哟免费 | 色爽视频| 亚洲视频观看 | 欧美成人免费高清视频 | 国产午夜手机精彩视频 | 久久久久久久久久久久Av | 亚洲熟女一区二区 | 国产在线精品观看 | 金鱼妻日剧免费观看完整版全集 | 亚洲欧美一级 | 超碰在线97国产 | 午夜国产福利视频 | 天天爽一爽| 69色视频| 久久久久久久久久久网 | 视频在线观看免费 | 综合精品| 亚州综合网 | 成人欧美一区二区三区在线观看 | 国产aa大片| 久久无码专区国产精品s | 日韩在线高清视频 | 日韩一区二区在线播放 | 日本大尺度床戏揉捏胸 | 久草91| 99超碰在线观看 | 五月天婷婷丁香 | 国产美女一区二区三区 | aaa一区二区 | 尤物在线 | 日本亚洲黄色 | 欧美猛操| 桃谷绘里香番号 | 日韩精品国产一区二区 | freesexvideos第一次 | 女女h百合无遮羞羞漫画软件 | 成人欧美一区二区三区 | 福利色播| 成人av综合网 | 极品人妻videosss人妻 | 成人av自拍 | 大尺度做爰床戏呻吟舒畅 | 色婷婷av777 国产精品久久一区二区三区 | 久久精品3| 亚洲第九十九页 | 亚洲欧洲自拍 | 操操干干| 少妇av一区二区 | 色婷婷狠狠干 | 天堂资源av| 成人在线综合 | 午夜精品福利一区二区 | 视频精品久久 | 一区二区福利 | 亚洲精品成人无码 | 中文天堂在线视频 | 激情小说在线观看 | 久久激情免费视频 | 无码人妻精品一区二区三 | 成人av国产 | 日韩精品――色哟哟 | 男男play呻吟动漫网站 | 一区二区三区四区视频 | 封神榜二在线高清免费观看 | 91吃瓜在线| 先锋影音中文字幕 | 成年人三级视频 | 国产在线视频资源 | 182tv午夜福利在线观看 | 美女扒开尿口让男人捅爽 | 91原创视频在线观看 | 中文av在线播放 | 国产一区二区高清 | 欧美极品一区 | 日本视频在线观看 | 亚洲爱| 狠狠撸狠狠操 | 一级肉体全黄裸片 | 久久精品在线视频 | 久久无码精品丰满人妻 | 成人国产精品免费观看动漫 | 国产一区二区三区四区五区在线 | 久久久久久久久久久国产精品 | 岛国精品一区二区三区 | 国产美女久久久 | 精品国产精品国产偷麻豆 | 67194成人| 精品久久电影 | 精品欧美一区二区精品少妇 | 麻豆国产一区二区三区四区 | 黄色成人av网站 | 男人的天堂2018 | 高清18麻豆 | 亚洲人成电影网站 | 97久久久久 | 国产乡下妇女做爰 | 婷婷国产视频 | 麻豆精品网站 | 精品毛片一区二区三区 | 国产成人精品久久久 | 97精品在线观看 | 黄色片在哪里看 | 欧美国产激情 | 偷偷操99 | 日韩国产精品一区二区三区 | 青青草国产在线观看 | 成人颜色网站 | 欧美日韩激情视频 | 欧美黄色大片网站 | 国产在线拍揄自揄拍无码视频 | 99久久黄色 | 三级黄色片网站 | 色99999| 手机免费av| 一级美女黄色片 | 蜜桃一区二区三区 | 亚洲专区一区 | 天天色网站 | 性欧美1819性猛交 | 中文字幕免费在线 | 日韩午夜激情电影 | 免费在线色 | 亚洲精品成人在线视频 | 老司机精品在线 | 欧美日韩伊人 | 伊人久综合 | 九九爱国产 | 国产亚洲精品熟女国产成人 | 欧美经典一区二区三区 | 中文字幕av不卡 | 成人精品网址 | 俺也来俺也去俺也射 | 中文字幕二区三区 | 午夜亚洲一区 | 久久永久视频 | 国产91久久久 | 黄瓜污视频 | 精品国产一区二区三区久久狼黑人 | 我和我的太阳泰剧在线观看泰剧 | 国产一区二区三区视频在线 | www.youjizz.com中国 | 免费一级片网址 | av免费在线观看不卡 | 天天爱天天做天天爽 | 中文字幕人妻一区 | 日韩在线一卡 | 国产精品亚洲αv天堂无码 免费色网址 | 国产精品资源 | 免费黄色在线网址 | 熟妇无码乱子成人精品 | 午夜视频网站在线观看 | 国产三级国产精品 | 91九色丨porny丨肉丝 | 日韩精品高清在线 | 免费在线观看国产精品 | 色老板最新地址 | 91视频专区 | 神马午夜精品 | 天堂一区 | 国产一卡二卡 | 人妻一区二区三区 | 日韩不卡一区二区三区 | 最好看的日本字幕mv视频大全 | 中文在线一区二区三区 | 老熟女高潮一区二区三区 | 亚洲第一av | 青青草视频免费 | 黄页网站在线播放 | 国产极品在线观看 | 久久久免费精品 | 亚洲黄色录像片 | 欧洲久久久 | 中国黄色小视频 | 东北熟女一区二区三区 | 粗大挺进潘金莲身体在线播放 | 91夜色| 在线免费视频 | 中文在线观看免费 | 在线看黄的网站 | 一区二区三区久久久 | 人妻av无码一区二区三区 | 久久黄色影院 | 亚洲欧美一区二区视频 | 亚洲女人天堂色在线7777 | 成人精品免费 | 免费看黄色的网址 | 在线黄视频 | 黄页在线播放 | 久久av在线播放 | 色网站免费观看 | 91国模| 美女流白浆视频 | 亚洲一区二区三区人妻 | 天天爽天天摸 | 成人自拍视频在线 | 欧洲天堂网| 亚洲久久在线观看 | 日本不卡123| 中文字幕一区av | 婷婷五月综合缴情在线视频 | 亚洲免费一级片 | 久久99日韩 | av电影在线观看不卡 | 777视频在线观看 | 成年人网站免费观看 | 亚洲第一视频在线播放 | 日韩高清国产一区在线 | 超碰成人免费 | 欧美激情一区二区三区 | 久久视频免费 | 四虎影院在线观看免费 | 一区二区三区精品国产 | 丰满的女人性猛交 | 日本aaa级片| 美女啪啪免费视频 | 国产精品高清在线观看 | 中文字幕在线视频网站 | 成人午夜精品一区二区 | 亚洲欧美黄 | 亚洲精品乱码久久久久久麻豆不卡 | 久久久久成人网 | 永久免费看黄网站 | 2020av在线| 丰满人妻一区二区三区53视频 | 免费看毛片的网站 | www.亚洲欧美 | 亚洲男人皇宫 | 日韩av色图| 日本我不卡 | 久久免费资源 | 免费看91的网站 | 亚洲最大的av网站 | 美女免费av | 天天射夜夜操 | 黄色尤物视频 | 国产欧美一区二区三区精华液好吗 | 最新av网站在线观看 | 色爱综合 | 绝顶高潮videos合集 | 特级西西444www大胆免费看 | 成人中文网 | 国产在线看片 | 国产一级做a爱片久久毛片a | 久久不射影院 | 在线干| 制服丝袜先锋 | 国产精品xxx视频 | 色妞综合 | 91久久久久久久久久 | 日本色婷婷 | 国模视频一区 | 永久免费看黄 | 天天曰夜夜操 | 欧美激情一区二区三区免费观看 | 青青草黄色 | 欧美一区二区三区精品 | 97成人超碰 | 中文在线第一页 | 国产伦理精品 | 日本精品在线播放 | 国产在线观看中文字幕 | 日本丰满熟妇bbxbbxhd | 激情开心成人网 | 国产福利视频一区二区 | 日韩黄色短片 | 懂色av一区二区三区免费 | 看全色黄大色黄大片大学生 | 在线不卡视频 | 一品毛片 | 欧美在线观看一区二区 | 一区二区三区精品在线观看 | 中文字幕一区二区视频 | 麻豆久久精品 | 色欲av伊人久久大香线蕉影院 | 我和我的太阳泰剧在线观看泰剧 | 成年人在线视频免费观看 | 国产午夜小视频 | 国产a级片| 黄色一及毛片 | 欧美性xxxxxxxxx | 欧美另类日韩 | 91丝袜一区二区三区 | 日日日日操 | 女人扒开腿让男人桶爽 | 视频一二区 | 在线观看av片 | 日韩二三区 | 蜜臀久久精品久久久久久酒店 | 一级免费大片 | 末发成年娇小性xxxxx | 精品偷拍网 | 二区中文字幕 | 日韩逼| 69视频免费在线观看 | 国产亚洲精品成人a | 成年精品| 麻豆视频免费入口 | 亚洲人成电影网 | 伊人色在线 | av九九九| 国产精品一二三区在线观看 | 激情天堂网 | 久久久久香蕉 | 黄色片aaa| 精品国产乱码一区二区三 | 色撸撸在线 | 精品国产aⅴ一区二区三区四川人 | 最新超碰在线 | 大地资源高清播放在线观看 | 一级黄色小视频 | 亚洲精品在线免费观看视频 | 久久精品一 | 欧美一区一区 | 91老师片黄在线观看 | 老女人丨91丨九色 | 国产在线精品一区二区 | 伊人影院亚洲 | 天天天天天天天干 | 91麻豆网 | 国产一区二区三区视频 | 奇米影视亚洲 | 人人草人人爱 | 毛片一二三区 | 国产午夜精品一区二区三区 | 国产永久av | www.欧美国产| 国产在线观看免费视频软件 | 无码少妇精品一区二区免费动态 | 久久久免费av | 亚洲福利网 | 雪花飘电影在线观看免费高清 | 米奇av| 合欢视频污 | 网站在线免费观看 | 日本青青草视频 | www.四虎影视 | 亚洲一区二区三区麻豆 | 99国产精品久久久久久久成人 | 国产精品一区二区av日韩在线 | 婷婷中文网 | 二级毛片 | 午夜网址 | av国产在线观看 | a级片免费看 | 欧美激情免费视频 | 日韩和欧美的一区二区 | 国产无套内射普通话对白 | 超碰在线免费公开 | 超碰在线观看97 | 农村老妇性真猛 | av中文字幕第一页 | 日本a一级 | 国产高潮国产高潮久久久 | 国产v片| 国产97免费视频 | 免费网站观看www在线观看 | 人人干人人草 | 日韩一级在线 | 日韩一级久久 | 嫩草影院在线观看视频 | 亚洲中字| 成人a在线| 久久久久99| 美女黄视频大全 | 都市激情亚洲色图 | www.桃色av嫩草.com | 美女张开腿露出尿口 | 日本成人社区 | 久久久久久久国产精品 | 日日夜精品 | www.youjizz.com在线| 99国产精品99久久久久久粉嫩 | 视频国产精品 | 国产精品电影 | 蜜桃av在线免费观看 | 夜夜免费视频 | 成人免费看片载 | 99热8| 亚洲精品久久久久 | 国产呦小j女精品视频 | 女王脚交玉足榨精调教 | 国产成人精品一区二三区四区五区 | 成人看的视频 | 操网站 | 国产激情免费视频 | 日韩成人综合网 | 日本 在线 | 午夜视频精品 | av一二三区 | 成年女人免费视频 | 日日拍拍| 国产精品18久久久 | 久久久久99精品成人片毛片 | 放荡的少妇2欧美版 | 中文字幕丰满人伦在线 | 日韩免费视频一区二区视频在线观看 | 亚洲精品乱码久久久久久国产主播 | 欧美性受xxxx狂喷水 | 免费高清视频在线观看 | 国产日韩在线观看视频 | 欧美高清一级 | 国产精品96久久久久久 | 天天天天天操 | 澳门av在线 | 性高潮在线观看 | 97人人超| 欧美另类在线观看 | 亚洲一区二区视频在线 | 91porny在线 | 欧美日韩不卡合集视频 | 美女扒开内看个够网站 | 粗暴video蹂躏hd| 69精品无码成人久久久久久 | 草比网站 | 四虎综合网 | 国精产品一区一区三区有限公司杨 | 热玖玖 | 狠狠干影院 | 电家庭影院午夜 | 亚洲福利在线视频 | 久久国产精品电影 | 精品乱人伦一区二区三区 | av在线资源 | 最好看的中文字幕国语电影mv | caoprom超碰 | 91视频青青草 | 99re6在线视频 | 手机看片日韩福利 | 18深夜在线观看免费视频 | 日韩欧美一区二区三区 | 午夜激情福利视频 | 日本japanese极品少妇 | 欧美男优 | 中文字幕日韩高清 | wwwxxx欧美 | 97成人免费视频 | 在线免费日韩 | 咪咪色图 | 国产精品高潮视频 | 天天舔天天射 | 日本特级黄色录像 | 人人妻人人藻人人爽欧美一区 | 亚洲天堂久久久 | 嫩模啪啪| 尹人综合| 女同性做爰全过程 | 粗大黑人巨茎大战欧美成人 | 69精品无码成人久久久久久 | 欧美专区视频 | 高潮爽爆喷水h | 国产精品视频不卡 | 日本精品影院 | 天堂网视频 | 亚洲黄色网页 | 日韩三级大片 | 亚洲xxxx天美 | 日本精品不卡 | 精品国产一区二区在线观看 | 国产免费视频一区二区三区 | 国产精品一二区 | 欧美日本日韩 | 性色AV无码久久一区二区三 | 国产传媒av在线 | 亚洲一区二区三区四区 | 伊人久久一区二区 | 男女深夜福利 | 在线观看国产区 | 国产理论精品 | 天天插天天干天天操 | 日韩小视频 | 香蕉视频免费在线看 | 午夜久久久久久久久久影院 | 日韩av在线天堂 | 成人免费在线视频 | 日本高清免费aaaaa大片视频 | 绝顶高潮合集videos | 四虎影视免费观看 | 日本在线不卡一区 | 免费成人一级片 | 99精品久久毛片a片 亚洲精品综合 | 天堂色在线 | 殴美一级特黄aaaaaa | 齐天大性床战铁扇公主 | 高h校园不许穿内裤h调教 | 激情网五月 | 新x8x8拨牐拨牐永久免费影库 | 香蕉亚洲 | 免费黄av | 九九视频免费在线观看 | 毛片在线观看视频 | 九九综合视频 | 成人高潮片 | 住在隔壁的她动漫免费观看全集下载 | 激情网络 | 精品国产精品三级精品av网址 | 日本精品视频在线播放 | 久久精品视频中文字幕 | 国产毛片在线视频 | 亚洲伊人天堂 | 97成人超碰 | 国产精品乱码久久久 | 美国做爰xxxⅹ性视频 | 蜜桃成人在线观看 | 亚洲区偷拍 | 性感美女在线观看 | 国产专区一区二区 | 国产精品国产馆在线真实露脸 | 最新视频 - 88av | 想要xx在线观看 | 我想看毛片 | 手机在线亚洲 | 国产在线一二 | 少妇福利视频 | 51精品| 亚洲精品影片 | 天堂网在线最新版www中文网 | 国产日产精品一区二区 | 精品福利电影 | 精品国产一区二区三区av性色 | 色91| 欧美视频在线观看一区二区三区 | 久久夜色精品国产欧美乱极品 | 在线免费看黄色 | 国产午夜福利一区 | 99资源在线 | 四虎av| 人成在线观看 | 尹人久久 | 精品成人免费视频 | 九九在线观看免费高清版 | 深爱综合网| 精品国产99 | 亚洲精品久久久久久久久久久久久 | av电影在线观看网址 | feel性丰满白嫩嫩hd | 日韩三级视频在线观看 | 无码日韩精品一区二区 | 手机av免费看 | 欧美大片高清免费观看 | 欧美成人精品一区二区三区在线看 | 成人做爰www免费看视频网站 | 天天做天天爱夜夜爽 | 日韩天天操 | 色婷婷91 | 玖玖国产精品视频 | 欧美成人免费 | 国产三级自拍 | 国产精品一二三四五 | 中文字幕二 | 老司机福利院 | 中国a一片一级一片 | 怡红院男人的天堂 | 欧美天堂在线观看 | 日本午夜啪啪 | 欧美日韩a级 | 免费黄色a| 天天爽 | 米奇色| 日韩av免费在线 | 亚洲av无码成人精品区 | 色小姐在线视频 | 欧美三级日本三级 | 欧美91av| 亚洲综合色在线 | 在线成人小视频 | 成人做爰视频www | 欧美一区二区在线免费观看 | 成人在线毛片 | 日韩成人在线播放 | 久久久久久91亚洲精品中文字幕 | 五十路av在线 | 亚洲色欲一区二区三区在线观看 | 成人欧美在线 | 夜夜爽妓女8888视频免费观看 | 无套内谢的新婚少妇国语播放 | 久久久精选 | 国产丝袜av| 亚洲成人一区在线观看 | 麻豆国产原创 | 妺妺窝人体色777777 | 国产精品99精品无码视亚 | 天天摸天天干天天操 | 国产美女视频免费观看下载软件 | 窝窝午夜精品一区二区 | 欧美人与动物xxxx | 西西人体44www大胆无码 | 国产一级高清 | 日韩精品视频免费看 | 久久高清av| 中文字幕一区二区三区电影 | 天天做天天爱天天爽 | 午夜一级黄色片 | 国产精品黄色片 | 国产精品资源在线观看 | 热久久最新网址 | 老女人毛片 | 少妇姐姐 | 国偷自拍 | 91在线精品播放 | 大胸喷奶水www视频妖精网站 | 国产成人一区二区三区 | 中文字幕一区二区三区乱码 | 欧美天堂在线 | 色图在线观看 | 国产精品123区 | 亚洲一区二区三区免费 | 在线观看你懂得 | 亚洲精品鲁一鲁一区二区三区 | 亚欧视频在线观看 | 免费20分钟超爽视频 | 91久久精品国产 | 国产免费av网址 | 亚洲国产成人精品激情在线 | 福利社av| 亚洲卡一卡二 | www.97视频| 黄色三级图片 | 日韩精品一区二区在线观看 | 潘金莲一级淫片免费放动漫 | 香蕉视频ap| 成人午夜毛片 | 天天综合91 | 久久国产柳州莫菁门 | 91九色视频 | 日韩一级在线观看视频 | 国产成人精品毛片 | 伊人一二三 | 国产性猛交xxxx免费看久久 | 婷婷激情综合网 | 久久久高清| 91私密视频| 亚洲自拍在线观看 | 亚洲国产精品综合久久久 | 精品国产一区一区二区三亚瑟 | 成人一二区 | 99爱视频 | 色窝窝无码一区二区三区 | 婷婷激情六月 | 91麻豆产精品久久久久久 | av网站入口| 欧美熟妇激情一区二区三区 | 免费黄色网页 | 国产精品美女久久久久久 | 久久久久久久久久久久久女国产乱 | 性视频网| 日本美女动态 | 少妇精品视频一区二区 | 国产成人精品一区二区三区四区 | 91久久久久久久久久久久 | 天堂网在线最新版www中文网 | 亚洲五月婷 | 天天射狠狠干 | 男人在线视频 | 亚洲一区二区三区 | 欧美一级二级三级视频 | 99亚洲欲妇| 天堂中文字幕 | 中文字幕在线视频一区 | 黄色短视频在线观看 | 色中文字幕在线观看 | 多啪啪免费视频 | 快播久久| 女人的毛片 | 久久av红桃一区二区小说 | 最新天堂av | 91精品福利视频 | 日韩av高清在线观看 | 亚洲三级电影网站 | 中文人妻熟妇乱又伦精品 | 天堂社区av | 亚洲风情第一页 | 欧日韩av | 天堂在线视频网站 | 色美av| 69国产在线 | 男女一起插插插 | 色5566| 三级av网站 | 欧美一级片在线 | 婷婷中文字幕 | 最全aⅴ番号库网 | 久久精品久久精品 | 中文国产字幕 | 污网站在线看 | 在线看av网址 | 国产xxxx| 李丽珍裸体午夜理伦片 | 国产精品一区在线免费观看 | 欧美日韩国产网站 | 调教91| 伊人狠狠操 | 日韩在线视频免费播放 | a级片毛片 | 亚洲人成在线免费观看 | 91啦丨九色丨刺激 | 美女扒开腿让人桶爽 | 欧美精品99久久久 | 午夜精品久久久久久久99热黄桃 | 亚洲h片| 亚洲国产成人自拍 | 久久99精品久久久久久水蜜桃 | 美国一级黄色大片 | 国产奶头好大揉着好爽视频 | 亚洲熟妇无码乱子av电影 | www.成人免费 | 婷婷啪啪 | 日韩欧美理论片 | 91成人精品视频 | 超碰2019 | 久久国产一区二区 | 四虎精品久久 | 国产精品扒开腿做爽爽爽视频 | 中文字幕一区二区三区乱码不卡 | 青草青草视频 | 国内外成人在线视频 | 欧美jizz18性欧美 | 蜜臀久久99静品久久久久久 | 天天干天天爱天天射 | 亚洲免费观看高清完整 | 日韩一区二区三区精 | 久久午夜网 | 欧美高清不卡 | av先锋影音 | 国产精品成人免费视频 | 天操夜夜操 | 日韩高清在线播放 | 伊人久久久久久久久久久久久 | 91精品一区二区三区四区 | 中文字幕乱码人妻一区二区三区 | 一级特黄aaa| 亚洲九九| 白峰美羽在线播放 | 国产精品情侣自拍 | 嫩草嫩草嫩草 | 久久久久久久久久影视 | 欧美日韩成人 | 成人激情av | 古装做爰无遮挡三级聊斋艳谭 | 国产精品爽爽 | 美女av免费看 | 亚洲一区二区久久 | 老熟女一区二区三区 | 伊人久久大香线蕉 | 337p日本欧洲亚洲大胆张筱雨 | 久久夜色网 | 午夜爱 | 无遮挡裸光屁屁打屁股男男 | 蜜桃视频在线入口www | 欧美日韩一区二区在线观看 | 婷婷丁香久久 | 高清乱码免费网 | 日韩av免费一区 | 男生和女生一起搞鸡 | 国产三级精品视频 | 国产又粗又猛又黄视频 | 综合av在线 | 毛片www| 男女无遮挡做爰猛烈视频 | 亚洲欧美激情视频 | 最近更新中文字幕 | 国产精品一品二区三区的使用体验 | 欧美精品网站 | 一级肉体全黄裸片 | 黄色激情网址 | 人人做人人爱人人爽 | 欧洲色av| 精一区二区 | 中文字幕在线一区二区三区 | 欧美在线综合 | 91成人精品一区在线播放 | 懂色av粉嫩av蜜乳av | 欧美激情首页 | 亚洲精品无码永久在线观看 | 久久影视精品 | 国产日产亚洲精品 | 一区在线观看 | 国产综合精品在线 | 午夜久久久久久 | 91日日| 五月天国产精品 | 欧美精品久久久 | 少妇的激情 | 禁断介护av| 97国产精品| 久久久久久久久久久久久久免费看 | 国产精品久久久久久久久久免费 | 一本不卡 | 午夜插插插 | 少妇毛片一区二区三区 | 桃色网址 | 免费三级黄 | www.国产| 免费观看一区二区 | 成人免费视频网站 | 成人av综合网 | 韩国一级片在线观看 | 91精品国产综合久久福利软件 | 91成人久久 | 骚鸭av| 日韩免费一级 | 国产一级视频在线播放 | 夜夜草| 亚洲手机av | 亚洲aa视频 | 超碰男人天堂 | 污污的视频网站在线观看 | 天堂亚洲 | 美女试爆场恐怖电影在线观看 | 亚洲欧美视频在线观看 | 女同一区二区三区 | 黄色午夜 | 逼逼av| 国产欧美一区二区在线 | 男插女视频网站 | 无码人妻一区二区三区线 | 国产视频一区二区视频 | 国产成人精品电影 | 免费的av网址 | 91肉色超薄丝袜脚交一区二区 | 国产三级三级在线观看 | 视频在线观看一区二区 | 亚洲乱码中文字幕 | 久久中文精品 | 欧美一级片网站 | 动漫毛片 | 91丨九色丨丰满人妖 | 最新中文字幕2019 | 色www.| 91热精品 | 日韩毛片儿 | 国产欧美日韩精品在线观看 | 三级黄色片网站 | 欧美黑人xxx | av观看在线免费 | 欧美狂猛xxxxx乱大交3 | 天天干干干干干 | 欧美日韩首页 | 午夜刺激视频 | 青草一区| 国产绳艺sm调教室论坛 | 欧美日韩精品一区二区三区蜜桃 | 邻居校草天天肉我h1v1 | 天天拍夜夜拍 | 久久综合加勒比 | 尤物在线视频观看 | 午夜免费毛片 | 国产午夜精品一区二区三区嫩草 | 一级片毛片 | 日韩最新在线 | a毛片视频| 天堂素人约啪 | 大黑人交交护士xxxxhd | 亚洲综合一区二区三区 | 日韩女优中文字幕 | 久久最新网址 | a免费视频 | 欧美日本黄色 | 天天操人人爽 | 调教少妇视频 | av在线小说 | 亚洲v视频| 免费一级淫片 | 亚洲国产欧美日韩在线 | 尤物视频在线播放 | 亚洲第三十七页 | 亚州精品国产精品乱码不99按摩 | 国产亚洲精品久久久 | 色综合91| 无码精品视频一区二区三区 | 自拍偷拍第五页 | 日本中文字幕在线看 | www天堂av| 亚洲天堂男人av | 蜜臀视频在线观看 | 亚洲精品午夜国产va久久成人 | 亚洲女人网 | 亚洲成a人片在线 | 日韩女优在线观看 | 美日韩精品| 在线观看的av网站 | 欧美一区二区三区成人精品 | 亚洲美女福利视频 | 一区中文字幕 | 天天搞夜夜爽 | 波多野 在线 | 国产欧美一区二区在线 | 日本视频在线观看 | 成年人免费看毛片 | jizzjizz国产 | 成人在线免费网站 | 打屁屁日本xxxxx变态 | a级在线观看网站 | 国产精品亚洲AV色欲三区不卡 | 亚洲中文字幕无码一区 | 精品无码久久久久 | 亚洲一二三四在线 | 欧美黑人一级 | 久久久.www| 婷婷综合影院 | 奇米影视播放器 | 特级西西444www大精品视频免费看 | 亚洲黄色av网站 | 一级特级毛片 | 神马影院一区二区 | 国语对白91 | 伊人久久大香线蕉 | 青青99| 麻豆成人在线视频 | 亚洲精品视频免费在线观看 | 欧美三区四区 | 91av官网| 伦理片一区二区三区 | 无套白嫩进入乌克兰美女 | 草逼视频网 | 精品日韩在线 | 内射无码专区久久亚洲 | 四虎精品在线播放 | 国产成人精品一区二区三区 | 91欧美激情一区二区三区成人 | 一区欧美 | 欧美大片黄色 | 欧美精品一区二区三区视频 | 99视频在线 | 亚av| 大伊人久久 | 深爱五月激情五月 | 美女校花脱精光 | 调教撅屁股啪调教打臀缝av | 日韩在线观看视频免费 | 国产伦理自拍 | 精品久久影院 | 国产1区2区在线观看 | 国产欧美精品在线观看 | 日韩最新视频 | 激情自拍视频 | 久插视频 | 精品国产污污免费网站入口 | 国产精品区一区二 | 国产伦精品一区二区三区精品 | 欧美影院一区二区 | 在线观看免费高清在线观看 | 中文字幕第一页在线播放 | 亚洲精品福利在线 | 久草热播| 中文字幕在线观看播放 | 欧美xxxx网站 | 大地资源二中文在线影视观看 | 女人舌吻男人茎视频 | 日韩黄色视屏 | 亚洲色图激情小说 | 欧美videossex另类 | 91欧美国产 | av小说区| 香蕉视频官方网站 | 亚洲欧美电影 | 91精品国产乱码久久久 | 一本加勒比北条麻妃 | 任你操精品 | 99国产精品一区二区三区 | 午夜在线一区二区 | 丨国产丨调教丨91丨 | 天天爽夜夜爽夜夜爽 | 91亚洲国产成人久久精品网站 | 九草视频在线 | 最新不卡av | av在线播放一区二区三区 | www视频在线观看 | 亚洲色诱 | 黄色国产一级片 | 日本精品在线播放 | 亚洲毛茸茸 | 午夜动态图| 久久人妻少妇嫩草av | 亚洲成人18| 在线观看无遮挡 | 自拍偷拍综合 | 欧美人与动物xxxx | 就操网 | 国产综合久久久久 | 国产成人区 | 久久国产一区二区三区 | 亚洲国产91 | 99国产精品99久久久久久粉嫩 | 最好看的2019年中文在线观看 | 日韩高清不卡 | 丰满岳乱妇一区二区 | 免费黄色欧美 | 欧美日韩在线第一页 | 免费在线成人网 | av片在线免费看 | 青青草原在线免费 | 国产冒白浆 | 精品无码国产一区二区三区51安 | 国产无遮挡又黄又爽免费网站 | 亚洲一个色 | 波多野一区二区三区 | jizzjizz在线观看 | 在办公室被c到呻吟的动态图 | 天天干天天做 | 国产精品啊啊啊 | 九一九色国产 | 亚洲天堂免费 | 久久精品国产99精品国产亚洲性色 | 欧美福利网站 | 亚洲麻豆一区二区三区 | 亚洲国产精品人人爽夜夜爽 | 欧美激情在线看 | 好看的中文字幕电影 | 91打屁股| 欧美日韩在线视频一区二区 | 精品综合久久久 | 蜜臀av性久久久久av蜜臀妖精 | 亚洲色图插插插 | 蜜桃av免费| 大学生一级一片全黄 | 欧美人与性动交a欧美精品 大片av | 日韩高清久久 | 日本肉体xxxx裸体137大胆图 | 99热国产 | 国产一区二区波多野结衣 | 浓精喷进老师黑色丝袜在线观看 | 国产草草影院ccyycom | 大尺度在线观看 | 明星毛片 | 欧美日韩在线一区 | 中文字幕乱码无码人妻系列蜜桃 | 欧美在线一二三 | 亚洲精品观看 | 手机在线看片福利 | 午夜视频精品 | 日本成人黄色片 | 亚洲欧美中文字幕 | 亚洲精品午夜国产va久久成人 | 中文字幕乱码免费 | 成人精品在线播放 | 秘密基地免费观看完整版中文 | 国产在线精品二区 | 神马久久久久久久久久 | 黄色av免费看 | 亚洲欧美校园春色 | 欧美日韩免费高清一区色橹橹 | 少妇一级淫片免费视频 | 一区视频在线播放 | av性色 | wwwxxx日韩 | 欧美极品在线观看 | 95久久| 日本精品三级 | 久久国产影院 | 久久久久久国产 | 亚洲色欲色欲www | 午夜伦伦电影理论片费看 | 超碰免费视| 性欧美精品男男 | 久久视频免费 | 色图网址| 中文字幕免费av | 欧美视频你懂的 | 亚洲人成电影一区二区在线 | 欧美精品乱码视频一二专区 | 国产精品111 | 国产精品一线二线三线 | 久久精品女人 | 大尺度做爰无遮挡露器官 | 国产性猛交╳xxx乱大交 | 久操免费在线 | 91精品一区 | 西西毛片 | 中文在线字幕av | 污视频网站免费看 | 四十路av| 国产区一区二区三区 | 别揉我奶头啊嗯一区二区 | 亚洲色图36p| 国产精品毛片一区视频播 | 精品毛片一区二区三区 | 天天干影院 | 久久爱99 | 国产精品99久久久久久久久久久久 | 国产成人精品一区二区三区在线 | 日本黄色xxx | 日韩精品福利在线 | 日韩精品一卡二卡 | 中文字幕一区二区三区视频 | 亚洲情欲网 | 99热这里只有精品7 精品国产aⅴ | heyzo在线播放 | 五月开心婷婷 | jzzijzzij亚洲成熟少妇18 91色视频在线 | 日本视频黄色 | 亚洲AV第二区国产精品 | 自拍亚洲国产 | 大地资源影视在线播放观看高清视频 | 三级视频在线 | 日本黄色片免费看 | 日韩极品在线 | 日韩视频一 | 秋霞午夜影院 | 奇米精品一区二区三区四区 | 国产欧美一区二区精品性色超碰 | 国产精品99久久 | 日韩精品极品视频在线观看免费 | 欧美一区二区黄色 | 欧美日韩国产一中文字不卡 | 靠逼视频网站 | 亚洲自拍偷拍第一页 | 国产视频一区二区三区在线播放 | 天堂一二三区 | 精品人妻在线一区二区三区 | 美女一区二区三区 | 中文字幕精品在线观看 | 日本激情小视频 | 无码国产69精品久久久久网站 | 欧美一区二区三区公司 | 亚洲欧美在线视频免费 | 午夜亚洲国产 | 亚洲熟妇一区二区 | sm久久捆绑调教精品一区 | 日韩精品一区二区三 | 爱爱中文字幕 | 日本特黄一级片 | 亚洲精品网站在线观看 | 91亚色视频 | 日本天堂在线 | 丰满少妇在线观看bd | 黄色高潮 | 自拍偷拍在线播放 | 天天玩天天操 | 激情图片在线观看 | 日韩性爰视频 | 亚洲精品高清在线 | 午夜在线免费观看 | 99久久国产视频 | 男人插女人下面视频 | 91丝袜呻吟高潮美腿白嫩在线观看 | 国产丰满大乳奶水在线视频 | 久久网站视频 | 中文字幕视频 | 精品人妻一区二区三区久久 | 亚洲免费小视频 | 亚洲自啪 | 毛片无码一区二区三区a片视频 | 精品二区在线观看 | 亚洲黄色在线观看 | 欧美麻豆视频 | 国产无限制自拍 | 亚洲天堂精品一区 | 毛片官网 | 国产精品扒开腿做爽爽爽视频 | 9i看片成人免费看片 | 交专区videossex农村 | 亚洲国产影院 | 黄色大毛片 | 秋葵视频在线 | 麻豆精品视频免费观看 | 欧美人妖xxxx| 热久久久| 麻豆视频免费入口 | 真人毛片97级无遮挡精品 | 日本免费在线视频 | 国产一区二区在线观看免费 | 久久国产精品久久久久久 | 久久免费看少妇高潮v片特黄 | 日本不卡一区在线 | 超碰97人人在线 | 华人永久免费视频 | 精品在线免费观看视频 | 无码粉嫩虎白一线天在线观看 | 欧洲金发美女大战黑人 | 91蝌蚪网| 亚洲色图欧美另类 | 亚洲精品国产精品国自产观看 | 你懂的国产视频 | 96亚洲精品久久久蜜桃 | 精品国产99久久久久久 | 特黄级| 欧美一级黄色录像 | 欧美精品小视频 | 久久久久人 | 日日夜夜综合 | 欧美成人综合在线 | 泰国午夜理伦三级 | 午夜剧场在线 | 91天天综合 | 亚洲播放器 | 亚洲精品成人久久 | www日日日| 久在线观看 | 欧美三级一区 | 影音先锋国产 | 国产成年妇视频 | 自拍偷拍20p | 另类ts人妖一区二区三区 | 玖玖综合网| 性欧美日本 | 欧美三日本三级少妇三99 | 靠逼网站| 澳门av在线 | 久久久亚洲国产 | 男人天堂久久 | 草草影院地址 | 国产精成人品免费观看 | 久久国产精品久久精品国产 | 97国产在线观看 | 91精品人妻一区二区三区果冻 | av手机在线免费观看 | 免费av福利| 国产黄色三级 | 天天躁日日躁狠狠很躁 | 橹图极品美女无圣光 | 拔插拔插华人 | 国产精品伊人久久 | 西方裸体在线观看 | 成a人v| 999久久精品 | 中文字幕乱码一区二区三区 | 女同一区 | 色综合网站 | 亚洲一区色| 亚洲欧美日韩综合在线 | 国产精品一二三区在线观看 | 国产精品成人免费视频 | 日韩伦理av| 伊人久久一区 | 欧美另类69xxxx | 456av| 亚洲尤物在线 | 欧美a级在线 | 最近免费中文字幕中文高清百度 | 欧美性做爰大片免费 | 日本一区视频在线 | 北条麻妃青青久久 | 本道综合精品 | 亚洲精品字幕在线观看 | 日干夜干天天干 | 国产小视频在线播放 | 午夜激情福利电影 | 小向美奈子在线观看 | 亚洲熟女一区二区三区 | 欧美色图日韩 | 国产精品一区二区在线播放 | 国产三级自拍 | 国产精品500部 | 日本午夜精品理论片a级app发布 | 日韩专区欧美专区 | 免费看黄色的视频 | 毛片无码免费无码播放 | 黄91在线观看 | 涩涩天堂 | 亚洲三级在线看 | 亚洲午夜无码久久久久 | 第九色| 亚洲三级中文字幕 | 男女激情实录 | 成年人午夜影院 | 中文字幕日韩欧美 | 无套内谢老熟女 | 欧美视频xxx | 国产理论视频 | 日韩欧美国产综合 | 日韩欧美国产综合 | 久久久久久久久久影院 | 成人a级大片 | 欧美日韩在线观看一区二区三区 | 欧美人吸奶水吃奶水 | 欧美在线www | 亚洲同性gay激情无套 | 精品欧美 | 亚洲国产日韩一区无码精品久久久 | 爱情岛论坛亚洲品质自拍 | 女优在线观看 | 亚洲精品视频久久久 | av手机免费在线观看 | 在线免费观看av的网站 | 国产成人在线免费观看视频 | 性久久| 国产视频一二三四区 | 我们的2018在线观看免费高清 | 特级毛片av | 爱看av在线 | 成人三级电影网站 | 91久久精品日日躁夜夜躁欧美 | 992av| 久久1234| 日韩av手机在线免费观看 | 韩国伦理中文字幕 | 摸一摸操一操 | 国产成人中文字幕 | 婷婷爱五月 | 奇米影视77777 | 亚洲午夜久久久久久久久红桃 | 蜜桃一区二区三区 | 嫩草嫩草嫩草嫩草嫩草 | 免费成人深夜夜 | 色资源网站 | 亚洲免费色视频 | 在线观看香蕉视频 | 久久天天躁狠狠躁夜夜av | 成人激情自拍 | 欧美日韩一区在线观看 | 亚洲欧美在线观看 | 自拍偷拍激情 | 丁香伊人网 | 一路向西在线看 | ass极品水嫩小美女ass | 亚洲av色香蕉一区二区三区 | 推特裸体gay猛交gay | 中文字幕精品无码一区二区 | 久久久久久久久久影院 | 性开放耄耋老妇hd | 久草资源在线观看 | 玉足脚交榨精h文 | 日本加勒比一区 | 国产一区二区三区在线观看 | 99er这里只有精品 | 日韩精品在线观看一区 | 神宫寺奈绪一区二区三区 | 麻豆最新网址 | 亚洲男人天堂影院 | 好看的黄色网址 | 久久精品国产av一区二区三区 | 青青久视频 | 久久大胆人体 | 伊人色综合网 | 欧美cccc极品丰满hd | 成人动漫一区二区 | 国产伦精品一区二区三区视频网站 | 性高潮在线观看 | 午夜性色福利影院 | 天天爱天天射 | 日韩高清精品免费观看 | 成年人视频在线免费看 | 亚洲一区二区在线 | 色婷婷麻豆 | 欧美日韩第一页 | 久草中文网 | www.蜜桃av.com | 男生草女生视频 | 成人欧美精品一区二区 | 嫩草av在线| 亚洲一级av毛片 | 色就色综合| 黑人导航 | 中文字幕人妻丝袜乱一区三区 | 少妇搡bbbb搡bbb搡澳门 | 一级a性色生活片久久无 | 免费一级肉体全黄毛片 | 欧美乱轮视频 | 久草热视频 | a级黄色片 | 国产精品精品久久久久久 | 午夜一级影院 | 在线观看免费视频黄 | 国产在线小视频 | 欧美激情性做爰免费视频 | 麻豆短视频 | 性xx紧缚网站 | 在线视频天堂 | 少妇精品一区 | 爱视频福利网 | 欧美综合日韩 | 日韩国产在线播放 | 无码熟妇人妻av | 黄色免费在线看 | 一级片麻豆 | 久草影视在线观看 | av中字在线 | 久久机热这里只有精品 | 操女网站 | 日本在线不卡一区二区 | 变态另类丨国产精品 | 麻豆国产一区 | 日韩一区在线播放 | 婷婷社区五月天 | 午夜视频在线播放 | 超碰首页| 粗大挺进潘金莲身体在线播放 | japanese国产| 中文字幕三区 | 69国产视频 | 免费在线观看日韩 | 三级伦理片 | 99精品一区 | 久久2018| 黄色片www | 国产主播一区二区三区 | 亚洲综合色婷婷 | 激情a | 瑟瑟网站在线观看 | 浪浪视频在线观看 | 日韩三级成人 | 中文字幕视频免费观看 | 在线观看亚洲天堂 | 欧美一区视频在线 | 欧美精品videosex极品 | 97影院 | 男人猛吃奶女人爽视频 | 激情视频免费观看 | 国产精品欧美综合亚洲 | 中国女人特级毛片 | 日韩视频一区二区 | 亚洲欧美自拍另类 | 国产又黄又骚 | 99riav1国产精品视频 | 男人爱看的网站 | 欧美精品亚洲精品日韩精品 | 五月婷婷六月天 | 亚洲一区网 | 91国在线| 亚洲系列中文字幕 | 特种兵之深入敌后高清全集免费观看 | 亚洲激情在线观看 | 精品一区二区三区在线视频 | 国产精品666| 免费日韩一区二区 | 久久综合视频网 | 四川黄色一级片 | 日本高清无吗 | av成人毛片 | 欧美性生交xxxxxdddd | 成人性生生活性生交全黄 | 毛片av免费看 | 久久黑丝 | av在线色 | 久久精品精品 | 青娱乐在线播放 | 高潮爽爆喷水h | 国产精品一区二区三区高潮 | 亚洲精品91天天久久人人 | 蜜桃视频欧美 | 亚洲成人激情视频 | 久久久国产精品黄毛片 | 亚洲欧美日韩一区二区 | 欧美精品成人一区二区在线观看 | 免费av福利| 97精品人妻一区二区三区香蕉 | 欧美成人一区二免费视频软件 | 精品久久久久久国产 | 欧美韩一区二区 | wwwsss在线观看 | 激情一级片| www.婷婷.com | 久久av秘一区二区三区 | 成人不卡视频 | 一区二区精 | 一区二区免费在线观看视频 | 成人三级黄色 | 黄色特级视频 | 亚洲一区二区观看 | 人人干人人草 | 99国产精品免费 | 天干夜夜爽爽日日日日 | h片在线观看| 成人麻豆视频 | 啪视频在线观看 | 一区二区中文字幕 | 九一九色国产 | 激情区| 欧美性天天影院 | 凹凸精品熟女在线观看 | 欧美日韩亚洲一区 | 亚洲影院一区二区三区 | 国产色在线| 欧美一区二区三区免费视频 | 欧美极品jizzhd欧美仙踪林 | 夫妻黄色片 | 欧美日韩一区二区三区在线电影 | 中文在线最新版天堂 | 黑名单上的人全集免费观看 | v天堂中文在线 | 大乳女喂男人吃奶视频 | 日韩色在线 | 图片区视频区小说区 | 日韩女优一区 | 精品一区久久久 | 免费人成 | 先锋资源av在线 | 国产精品一区麻豆 | 日韩欧美中文在线观看 | 亚洲videos| 97影院 | 鬼眼 电影 | 国产一区二区三区高清 | 欧美老司机 | 一级片一区二区三区 | 日韩免费网 | 人妻91麻豆一区二区三区 | 国产黄色录像片 | 五月婷婷六月激情 | 久久偷看各类女兵18女厕嘘嘘 | 亚洲国产日韩在线一区 | 久久看av| 日韩激情av| 国产乱子伦精品无码码专区 | 最新福利视频 | 日韩69视频| 精品人妻互换一区二区三区 | 91网站视频在线观看 | 瑟瑟av| 青春草久久 | 国产一区二区三区免费播放 | 人人爱av | 波多野结衣一区在线 | 激情欧美日韩 | 国产吞精囗交久久久 | 牛牛电影国产一区二区 | 又紧又大又爽精品一区二区 | 欧美国产在线观看 | 男女国产视频 | 一本加勒比波多野结衣 | 亚洲一久久 | 射影院 | 麻豆国产一区二区三区 | 亚洲一区二区三区高清 | 欧美一级啪啪 | 日本午夜免费福利视频 | 日韩一区二区三区三四区视频在线观看 | 免费欧美一区 | 不卡免费视频 | 一级性生活黄色片 | 有奶水的迷人少妇 | 热久久久久久 | 一区二区欧美精品 |