|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
в общем и целом умею работать с ком портом. но необходимо организовать перебор указанных ком портов и все их опросить Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 08:50 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roer Очень смутно у вас написано, и без понимания. Таймер вот разве можно так использовать - создавать новый в цикле, присваивать обработчик, запускать и выходить из цикла..... Какую вообще пробему вы решаете таким образом? Что же касается всей задачи - то чтобы предложить что-то оптимальное надо знать больше про ваши требования. Например - эта апликация все время запущена, или должна подняться - сделать работу -упасть? А между обработками портов база данных может измениться? (Мне кажется что врядли - но всякое бывает...) И так далее. Если вы учитесь - попробуйте подумать об обьекте, который может выполнить всю работу с любым ком портом сам. Если у вас будет такой обьект, то вы сможете организовать коллекцию таких обьектов, а не писать замусоренные подключениями-отключениями циклы.... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 11:57 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roer, соглашусь с коллекцией наблюдателей, принцип хоть отсюда http://stackoverflow.com/questions/15124132/serial-port-polling-and-data-handling, над таймером тоже посмеялся )) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 12:34 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
дело такое - сервис получает список компортов, получает что он должен отправить на эти компорты. затем что получил то пишет в базу. если с обработкой опс серверов проблем не возникло (там в цикле довольно просто оббежать все порты), то тут необходимо создавать это событие eventhandler (вот тут то и главная загвоздка) к одному то подцепиться проблем не возникает, необходимо в цикле перебирать все полученные компорты\что посылать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 12:37 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
таймер нужен чтобы постоянно опрашивать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 12:39 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roer, наблюдатель ( как единица) должен быть самодостаточным, он должен сам знать что ему делать в каких ситуациях куда писать и что отвечать, это все естественно присваивается ему ( учим его как поступать) при инициализации ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 12:45 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
ну я ему даю значение ком порта, что посылать пишу, таймер устанавливаю. но не известно будет ли один ком порт, а сколько их будет не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 12:52 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roer, тут и напрашивается ответ, если наблюдатели изолированы между собой ( ну может в екшене где пересекаются с аккумулятором) на каждый порт вешаем наблюдателя: 100 портов 100 наблюдателей ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 12:59 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
это крайне плохое решение мне кажется. есть 1 сервис - он может опрашивать все опс сервера что к нему подключены, все железяки по ip, необходимо еще и все com порты просматривать. т.е. как нибудь в цикле перебирать к какому порту цепляться и что посылать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:14 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerэто крайне плохое решение мне кажется. Обоснуйте. У вас будет коллекция обьектов, которые могут быть подключены к своим портам, могут быть не подключены - это все пишется. Во внешнем коде будет только перебор этих обьектов (любого их количества). Что вы боитесь растратить? Память? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:20 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
вы предлагаете мне создать порядка 20-30 объектов для компортов, при реальном существовании 6-7 и не факт что не будет компорта от какого нить индусского производителя за номером 123 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:29 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
D129, авторвы предлагаете мне создать порядка 20-30 объектов для компортов, при реальном существовании 6-7 гыггы, Данатос, тут бесполезно спорить, то о чем мы говорим по существу не несет никакого предмета обучения или получения навыков для ТА, только время, пустая епля в пустую и попытки прикрутит тесты к расползающемуся киселю, вставят в мозг принятия правильных решений. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:39 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
мне нужно то поменять в трех местах переменную чтобы другой ком порт указать Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:40 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
о чем вы говорите? вы действительно для каждого компорта создаете своего слушателя? а если они (считай все) - виртуальные. и число их может впоследствии расти - и COM200 не будет являться чем то сверхъестественным? как такое написать? ну или может как нибудь динамически слушателей добавлять что бы не врукопашную все забивать7 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:43 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roer и не факт что не будет компорта от какого нить индусского производителя за номером 123 Важно другое - когда появится компорт за номером 123? На каком этапе жизни аппликации? Вариантов много. Например - на этапе кодирования. Тогда, чисто технически, можно и захардкодить все. :-) На этапе, когда сервис запущен? (А компорты разве подключаются динамически? может я чего и не знаю... ) При запуске сервиса? В любом случае - количество обьектов будет зависеть только от конфигурации, а она, как я понимаю, читается из базы данных? Тогда почему вы считаете что обьектов может "больше чем нужно" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:48 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
Где-то в степи тут бесполезно спорить... :-) Ну а вдруг. Я конечно, мало спрашивал на форумах, больше читал. И тоже иногда у меня возникала мысль "О чем вы говорите!" .... Ну поломаюсь чуть, для приличия, да и соглашаюсь... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:54 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
да, сервис получает данные из базы, динамически. сервис один раз написан - и все, его не трогают, только перезапускают чтобы новые данные подхватил. необходима максимальная гибкость. соответственно, нагрузка будет большая и чем меньше размер программы тем лучше. т.е в прога в цикле должна уметь читать данные с портов. и да. порты могут меняться, может меняться оборудование и могут меняться цифры. вполне реально ситуация com1, com15 и com 45 на одном серваке и com2, com3, com 4 на другом, причем данные должны распарсиватьяс по разному в зависимости от полученных данных с сервера ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:56 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerо чем вы говорите? вы действительно для каждого компорта создаете своего слушателя? Боюсь вас удивить - но современная мода программирования создает "своего слушателя" практически для каждой кнопки на окне. В WPF например, паттерн Command.... Я даже начинаю догадываться, что именно вы называете "динамическим" и почему вы считате предложенную вам коллекцию "ручным" способом.... :-/ :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:58 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
может хоть подскажете где эмулятор ком порта взять? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:58 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
может я чего то не понимаю. но вот пример в начале статьи - это один слушатель по вашему? по моему это один слушатель ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 14:00 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roer, Ну а мы вам о чем? Расскажите, что вы подумали, раз несогласны. А мы вам с позиции своего опыта (ну какой уж есть) развеем ваши опасения по поводу производительности и "размера программы". :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 14:02 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerможет я чего то не понимаю. но вот пример в начале статьи - это один слушатель по вашему? по моему это один слушатель да, это один слушатель. Он коряво получает настройки, неоптимально инициализируется (каждый раз создается обьект, который вовсе не протух с предыдущего использования), и рискованно вызывается. Всех достоинств - что он один. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 14:05 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
так вот читаю про эмулятор : Возможность создания до 255 виртуальных COM-портов; т.е. вы мне предлагаете создать 255 слушателей на каждый компорт? даже если оптимизировать мое "творение", то чето много быдлокода получается ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 14:22 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerтак вот читаю про эмулятор : Возможность создания до 255 виртуальных COM-портов; т.е. вы мне предлагаете создать 255 слушателей на каждый компорт? даже если оптимизировать мое "творение", то чето много быдлокода получается А я догадался, что вы не знаете, как использовать такую конструкцию, как класс... :-) Я вам сейчас солюшен накидаю - а вы уже доводите до ума. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 15:21 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115.
Солюшен не обязательно посылать, у вас же сервис, а не винформы ... Я оставляю на вашей совести доступ в базу - тоже не все айс, но это можно потом. и получении данных - если вы там пишете в базу, то надо открывать новое соединение - евент ведь вызывается в другом потоке. Если диалоговое окно - ни в коем случае, тем более сервису не положено окнами кидаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 16:17 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
спасибо огромное попробую разобраться ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2014, 06:24 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
кстати вот оригинальный код проги Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2014, 07:15 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
нашел еще такое --- Вот готовая оболочка, которую я когда-то использовал для работы с СОМ-портами (если нужно, то есть классы, выкусывающие пакеты по признаку начала и конца, а также по заданному тайм-ауту): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2014, 10:25 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
D129 или кто-нибудь еще. А какая прелесть все static указывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2014, 10:47 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerD129 или кто-нибудь еще. А какая прелесть все static указывать? старые привычки,ИМХО ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2014, 10:50 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerD129 или кто-нибудь еще. А какая прелесть все static указывать? Хороший вопрос. В вашем случае функция main - статическая. И находится в классе Program. Она может использовать напрямую только статические переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2014, 10:59 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
Изопропилdes1roerD129 или кто-нибудь еще. А какая прелесть все static указывать? старые привычки,ИМХО Нет, просто не хотел усложнять. По идее, надо создать еще один класс, который менеджер над OneCOMSpectator, А в функции main - создавать экземпляр этого менеджера и тогда все можно делать динамическим. Тут мы уже выходим на уровень, когда у нас может быть коллекция менеджеров, которые (например) отличаются друг от друга коллекциями портов и интевалами опроса. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2014, 11:05 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
D129, сегодня со свежей головой посмотрел, сделал на основе вашего класса. вроде классно получилось. имхо, статик тут не очень нужен как я понял. еще пришлось добавить имя тэга, чтобы в базу заносить ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2014, 13:27 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
в общем и в целом необходимо тему воскресить что имел до этого Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405.
в общем работает с несколькими ком портами. но появилась прелесть в виде ОДНОГО ком порта, на который надо слать данные ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:21 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerв общем работает с несколькими ком портами. но появилась прелесть в виде ОДНОГО ком порта, на который надо слать данные Задача ОДНОГО компорта - это частный случай задачи НЕСКОЛЬКИХ портов. Задача решена ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:24 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
мне необходимо - получить все данные о компорте из бд, ну это самое легкое. затем запустить поток, отправить конкретное значение, получить данные, прибить(приостановить?) поток и запустить поток для следующего порта. и так по интервалу. то есть опросили порт, отключились, опросили следующий и так до восьми. 30 секунд прошло - начали снова. прога работает, но как то глючно, периодически порт отваливается. подскажите хоть как сделать работу с потоками и классом, работу с ком портом вроде понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:24 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
вот не хочет она корректно закрывать и открывать порт. через короткое время выскакивает 09/05/2014 12:16:26|Debug|Execute() System.UnauthorizedAccessException: Access to the port 'COM17' is denied. at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str) at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace) at System.IO.Ports.SerialPort.Open() at Srvc_MOF_Com.Service1.MyComReader.Execute() in E:\proj\Srvc_MOF_Com\Srvc_MOF_Com\Service1.cs:line 278 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:29 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
может как пошагово решить проблему? ну то есть сделать 146% правильный опрос 1 ком порта, затем создать решение с потоком, переключающимся через 1 секунду на следущий. затем объеденить полученнное - и вуаля, 8 потоков, не знающих друг о друге и работающих попеременно? как сделать такую магию? вроде видел примеры с потоками да сейчас найти не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:31 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
Лично я в процессе работы программы не закрываю ком-порты. Открыв один раз, так и держу. Проблем не испытываю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:32 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
и еще я запутался с потоками c wh.set, wh.waitone ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:35 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
des1roerи еще я запутался с потоками c wh.set, wh.waitone Что не ясно? В двух словах поток висит на waitone, пока где-то не сделаешь wh.set. Я бы посоветовал отойти от этого подхода и сделать через события. А то это одноногая многопоточность получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:40 |
|
Com port работа с несколькими
|
|||
---|---|---|---|
#18+
а можно пример? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2014, 11:44 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402505]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
others: | 333ms |
total: | 511ms |
0 / 0 |