source: trunk/Cosy/incl/mitop.h@ 10766

Last change on this file since 10766 was 731, checked in by tbretz, 24 years ago
*** empty log message ***
File size: 26.6 KB
Line 
1/*-----------------------------------------------------------------------------
2mitop.h -- Top side (Host) of messaging interface to VMOD-ICAN
3
4Copyright (c) 1994 JANZ Computer AG
5All Rights Reserved
6
7Created 95/06/16 by Soenke Hansen
8Version 1.40 of 00/03/29
9
10Functions to fill messages which can be sent to VMOD-ICAN.
11Functions to format the contents of messages for printing.
12
13The relevance of messages depends on the firmware on VMOD-ICAN.
14The firmware discards messages which it does not understand.
15Through preprocessor directives the set of messaging interface
16functions are adapted to the firmware.
17
18This file contains prototype declarations for functions in mitop.c.
19
20-----------------------------------------------------------------------------*/
21
22
23#ifndef mitop_DEFINED
24#define mitop_DEFINED
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#include "defs.h"
31#include "dpm.h"
32
33/* Classes of messages. */
34#define MITOP_MGR 0x0001 /* module management */
35#define MITOP_ICANOS 0x0002 /* raw CAN access, SW CAN filtering, timers */
36#define MITOP_CAL 0x0004 /* CAL */
37
38#define MITOP (MITOP_CAL + MITOP_MGR + MITOP_ICANOS)
39/* Adapt the mesaging interface to the firmware capabilities.
40 The default is ICANOS and VMOD-ICAN management. */
41#ifndef MITOP
42#define MITOP (MITOP_MGR + MITOP_ICANOS)
43#endif
44
45/* Formatting functions are implemented if and only if
46 MITOP_FORMAT is defined. */
47#define MITOP_FORMAT
48
49
50#if MITOP & MITOP_MGR
51
52/* Request identity and version from module */
53extern void IdVersReq(Message *);
54extern void IdVersSniffReq(Message *);
55
56/* Request free memory size */
57extern void CheckFreeMem(Message *, int);
58
59/* Request host interface style */
60extern void InquiryHostInterface(Message *);
61
62/* Request CANbus bit rate, HW acceptance code/mask and termination state */
63extern void InquiryCANBitRateMasksTerm(Message *);
64
65/* Request CAN controllers / modules status */
66extern void InquiryStatus(Message *);
67extern void InquiryStatusSniff(Message *);
68extern void InquiryControllerStatusSniff(Message *m);
69
70/* Request setting of software acceptance filter */
71extern void InquiryAcceptanceFilter(Message *, WORD_t);
72
73#if MITOP & MITOP_CAL
74
75/* Install CAL master on module. By default the module implements
76 only CAL slave functionality. */
77extern void InstallCalMaster(Message *);
78
79/* Some host-guarding stuff */
80void InitHostGuarding(Message *, int, BYTE_t);
81void HostIsAlive(Message *);
82
83#endif
84
85
86void SwitchCanTermination(Message *, WORD_t);
87void SwitchSYSClkTermination(Message *, WORD_t);
88
89#endif
90
91#if MITOP & MITOP_ICANOS
92
93/* format sja1000 error-code-capture to readable form. */
94int sprintf_sja1000_ec(
95 char *dest, /* destination for description */
96 int ec, /* error code to format */
97 int n ); /* max length of description */
98
99/* Start periodical clock interrupt generation. */
100extern void IcStartTimer(
101 Message *, /* message buffer */
102 WORD_t ); /* max. clock period in 100 usec units */
103
104/* Stop periodical clock interrupt generation. */
105extern void IcStopTimer(
106 Message *); /* message buffer */
107
108/* Unset a user-defined timer. */
109extern void IcClearTimer(
110 Message *, /* message buffer */
111 WORD_t ); /* timer Id as confirmed on set timer req. */
112
113/* Set a timer. The alarm time "tleft" is in units of 100 usecs. */
114extern void IcSetTimer(
115 Message *, /* message buffer */
116 WORD_t , /* user request Id */
117 WORD_t ); /* time left until alarm */
118
119/* Issue request to send a CAN message. */
120extern void IcSendReqBCAN(
121 Message *, /* message buffer */
122 int , /* pos. confirm. or echo required? */
123 WORD_t , /* application request Id */
124 WORD_t , /* CAN descriptor (id,rtr,dlc) */
125 const BYTE_t *); /* data bytes to transmit */
126
127/* Abort transmit request. */
128extern void IcSendAbortBCAN(
129 Message *); /* message buffer */
130
131/* Switch CAN controller bus-on. */
132extern void IcBusOnBCAN(
133 Message *); /* message buffer */
134
135/* Switch CAN controller bus-off. */
136extern void IcBusOffBCAN(
137 Message *); /* message buffer */
138
139/* Set bit timing parameters in CAN controller. */
140extern void IcWriteBtrBCAN(
141 Message *, /* message buffer */
142 WORD_t ); /* BTR0 and BTR1 */
143
144/* Set error-warining limit in CAN controller. */
145void IcWriteEwlBCAN(
146 Message *m, /* message buffer */
147 BYTE_t ewl ); /* Error warning limit to set */
148
149/* Enable bus-error reporting. */
150void IcSwitchBerrBCAN(
151 Message *m, /* message buffer */
152 BYTE_t state ); /* 0: disabled, 1: enabled */
153
154/* Configure self test mode */
155void IcSwitchStmBCAN(
156 Message *m, /* message buffer */
157 BYTE_t state ); /* 0: disabled, 1: enabled */
158
159/* Configure listen-only mode */
160void IcSwitchLomBCAN(
161 Message *m, /* message buffer */
162 BYTE_t state ); /* 0: disabled, 1: enabled */
163
164/* Set hardware acceptance filter in CAN controller. */
165extern void IcWriteAcmBCAN(
166 Message *, /* message buffer */
167 WORD_t ); /* acceptance code and mask */
168
169/* Set extended hardware acceptance filter in CAN controller. */
170void IcWriteExtAcmBCAN(
171 Message *m, /* message buffer */
172 int mode, /* 0: dual-, 1: single-filter-mode */
173 LWORD_t ac, /* acceptance code */
174 LWORD_t am ); /* acceptance mask */
175
176/* Change software acceptance filter: accept all CAN messages
177 with given Id. */
178extern void IcOpenAfil(
179 Message *, /* message buffer */
180 WORD_t ); /* this Id passes the filter */
181
182/* Change software acceptance filter: reject all CAN messages
183 with given Id. */
184extern void IcCloseAfil(
185 Message *, /* message buffer */
186 WORD_t ); /* messages with this Id are rejected */
187
188/* Change software acceptance filter: accept all CAN messages
189 with IDs in specified range. */
190extern void IcRangeOpenAfil(
191 Message *, /* message buffer */
192 WORD_t , /* lower bound of Id range */
193 WORD_t ); /* upper bound of Id range */
194
195/* Change software acceptance filter: reject all CAN messages
196 with IDs in specified range. */
197extern void IcRangeCloseAfil(
198 Message *, /* message buffer */
199 WORD_t , /* lower bound of Id range */
200 WORD_t ); /* upper bound of Id range */
201
202/* Set software acceptance filter mask. */
203void IcSetAfil(
204 Message *m, /* message buffer */
205 WORD_t id, /* this Ids filter is set ... */
206 WORD_t mask /* ... to this value. */
207);
208
209/* Set software acceptance filter mask for a range of Ids. */
210void IcRangeSetAfil(
211 Message *m, /* message buffer */
212 WORD_t idl, /* this Ids filter is set ... */
213 WORD_t idh, /* this Ids filter is set ... */
214 WORD_t mask /* ... to this value. */
215);
216
217void IcCreateCycSendList(
218 Message *m, /* message buffer */
219 WORD_t cyctim /* cycle-time to send data */
220);
221
222void IcDeleteCycSendList(
223 Message *m, /* message buffer */
224 BYTE_t listNo /* number of list to delete */
225);
226
227void IcAddMsgToCycSendList(
228 Message *m, /* message buffer */
229 BYTE_t listId, /* list number where the message should */
230 /* be added to */
231 WORD_t id, /* CANbus id */
232 BYTE_t len, /* CANbus message length */
233 BYTE_t rtr, /* rtr bit [0,1] */
234 BYTE_t *data /* pointer to data */
235);
236
237/* Set priority boundaries. */
238void IcSetPrioBnd(
239 Message *m, /* message buffer */
240 WORD_t hi_mid_boundary, /* boundary between hi and mid prior. */
241 WORD_t mid_low_boundary /* boundary between mid and low prior.*/
242);
243
244
245/* Set host endianess. */
246void SetHostEndianess(
247 Message *m, /* message buffer */
248 BYTE_t endianess /* endianess */
249);
250
251/* Init bulk buffer with timeout only */
252void InitBulkBufferTimeout(
253 Message *m, /* message buffer */
254 WORD_t timeout /* time after bulk buffer message will be sent */
255);
256
257/* Init bulk buffer with timeout and sizes */
258void InitBulkBuffer(
259 Message *m, /* message buffer */
260 WORD_t timeout, /* time after bulk buffer message will be sent */
261 BYTE_t maxMsgInBulkMsg, /* max. number of bulk msgs. in one bulk message */
262 BYTE_t maxBulkMsgPreAlloc /* max. number of preallocated bulk messages */
263);
264
265/* Init sniff buffer */
266void InitSniffBufferTimeout(
267 Message *m, /* message buffer */
268 WORD_t timeout /* time after sniff buffer message will be sent */
269);
270void InitSniffBuffer(
271 Message *m, /* message buffer */
272 WORD_t timeout, /* time after bulk buffer message will be sent */
273 BYTE_t maxByteInSniffMsg, /* max. number of msg.-bytes in one sniff message */
274 BYTE_t maxSniffMsgPreAlloc /* max. number of preallocated sniff messages */
275);
276
277/* Config sniff buffer */
278void ConfigSniffBufferEcho(
279 Message *m, /* message buffer */
280 WORD_t echoFromQueue /* specifies the queues, a sent message should be echoed from */
281);
282
283void ConfigSniffBufferAfilStd(
284 Message *m, /* message buffer */
285 WORD_t idl, /* lower bound of Id range */
286 WORD_t idh, /* upper bound of Id range */
287 BYTE_t mask /* filter mask to use ([0..1] */
288);
289
290void ConfigSniffBufferAfilXtd(
291 Message *m, /* message buffer */
292 WORD_t idl, /* lower bound of Id range (13 MSB!) */
293 WORD_t idh, /* upper bound of Id range (13 MSB!) */
294 BYTE_t mask /* filter mask to use ([0..1] */
295);
296
297void InitBusLoadStatistic(
298 Message *m, /* message buffer */
299 WORD_t intTime, /* integration time (in times of 10 ms) */
300 BYTE_t flags /* some flags */
301);
302
303void InitSniffBusLoadStatistic(
304 Message *m, /* message buffer */
305 WORD_t intTime, /* integration time (in times of 10 ms) */
306 BYTE_t flags /* some flags */
307);
308
309void RequestBusLoadStatistic(
310 Message *m, /* message buffer */
311 BYTE_t choice /* choose the kind of statistics */
312);
313
314#endif /* MITOP & MITOP_ICANOS */
315
316
317#if MITOP & MITOP_CAL
318
319/* Create Node request */
320extern void NsCreateNodeReq(
321 Message *, /* message buffer */
322 int, /* module Id */
323 const char *, /* module name string (strlen==7) */
324 int); /* CAL node class */
325
326/* Create Node request */
327extern void NsCreateCOPNodeReq(
328 Message *, /* message buffer */
329 int, /* module Id */
330 const char *, /* module name string (strlen==7) */
331 int); /* CAL node class */
332
333/* Config NMT of CANopen slave node request */
334extern void NsConfigCOPNodeReq(
335 Message *m, /* message buffer */
336 WORD_t guard_time, /* guard time in ms */
337 int life_fac, /* life time factor */
338 int guard_start); /* timepoint of guarding start */
339
340/* Config CAL NMT slave node request */
341extern void NsConfigNodeReq(
342 Message *m, /* message buffer */
343 WORD_t mux, /* multiplexor */
344 WORD_t flags); /* flags */
345
346/* Configuration download acknowledge response */
347extern void NsConfigAck(
348 Message *m); /* message buffer */
349
350/* NMT slave configuration transfer abort request */
351extern void NsConfigAbort(
352 Message *m, /* message buffer */
353 int failureReason, /* failure reason */
354 int applSpecificReason); /* appl. specific failure reason */
355
356/* NMT slave configuration transfer verify response */
357extern void NsConfigVerify(
358 Message *m, /* message buffer */
359 int verificationResult, /* result of verification */
360 int reason); /* failure reason */
361
362/* Delete Node request */
363extern void NsDeleteNodeReq(
364 Message *); /* message buffer */
365
366/* Identify Node request */
367extern void NsIdentifyNodeReq(
368 Message *); /* message buffer */
369
370/* Connect Node request */
371extern void NsConnectNodeReq(
372 Message *, /* message buffer */
373 int , /* download requested? */
374 WORD_t , /* guard time in ms */
375 int ); /* life time factor */
376
377/* Disconnect Node request */
378extern void NsDisconnectNodeReq(
379 Message *); /* message buffer */
380
381/* Prepare Remote Node Response */
382extern void NsPrepareRemoteNodeRes(
383 Message *, /* message buffer */
384 int ); /* 0 or error code of CAL protocol */
385
386/* Delete User Definition request */
387extern void DsDeleteUserDefReq(
388 Message *, /* message buffer */
389 int ); /* node Id */
390
391/* Create all User Definitions request:
392 Initiate the Create User Definition service for the COB's
393 used by by the currently defined CMS objects. */
394extern void DsCreateAllUserDefReq(
395 Message *); /* message buffer */
396
397/* Get Checksum request */
398extern void DsGetChecksumReq(
399 Message *, /* message buffer */
400 int ); /* node Id */
401
402/* Delete User Definition request */
403extern void DsVerifyCobClassReq(
404 Message *); /* message buffer */
405
406/* Set Bit Timing and Attach CAN controller to CAN bus */
407extern void LsBusOnReq(
408 Message *, /* message buffer */
409 WORD_t ); /* Bit timing parameters */
410
411/* Detach CAN controller from CAN bus */
412extern void LsBusOffReq(
413 Message *); /* message buffer */
414
415/* Control bus error generation */
416void LsSwitchBerrReq(
417 Message *m, /* message buffer */
418 BYTE_t state ); /* 0: disabled, 1: enabled */
419
420/* Set Error warning limit threshold */
421void LsSetEwlReq(
422 Message *m, /* message buffer */
423 BYTE_t ewl ); /* Error warning limit to set */
424
425/* Control self-test mode */
426void LsSwitchStmReq(
427 Message *m, /* message buffer */
428 BYTE_t state ); /* 0: disabled, 1: enabled */
429
430/* Control listen-only mode */
431void LsSwitchLomReq(
432 Message *m, /* message buffer */
433 BYTE_t state ); /* 0: disabled, 1: enabled */
434
435/* Add Remote Node request */
436extern void NmAddRemoteNodeReq(
437 Message *, /* message buffer */
438 int, /* module Id */
439 const char *); /* module name string (strlen==7) */
440
441/* Add Remote CANopen Node request */
442extern void NmAddRemoteCOPNodeReq(
443 Message *, /* message buffer */
444 int, /* module Id */
445 const char *, /* module name string (strlen==7) */
446 WORD_t, /* default guard time */
447 int ); /* default node class */
448
449/* Add Remote CANopen Node request with user given guarding IDs */
450extern void NmAddRemoteCOPNodeGidReq(
451 Message *, /* message buffer */
452 int, /* module Id */
453 const char *, /* module name string (strlen==7) */
454 WORD_t, /* default guard time */
455 int, /* default node class */
456 WORD_t); /* user given guarding ID */
457
458/* Remove Remote Node request */
459extern void NmRemoveRemoteNodeReq(
460 Message *, /* message buffer */
461 int , /* module Id */
462 const char *); /* module name string (strlen==7) */
463
464/* Connect Remote Node request */
465extern void NmConnectRemoteNodeReq(
466 Message *, /* message buffer */
467 int , /* module Id */
468 const char *); /* module name string (strlen==7) */
469
470/* Prepare Remote Node request */
471extern void NmPrepareRemoteNodeReq(
472 Message *, /* message buffer */
473 int ); /* node Id */
474
475/* Start Remote Node request */
476extern void NmStartRemoteNodeReq(
477 Message *, /* message buffer */
478 int ); /* node Id */
479
480/* Stop Remote Node request */
481extern void NmStopRemoteNodeReq(
482 Message *, /* message buffer */
483 int ); /* node Id */
484
485/* Disconnect Remote Node request */
486extern void NmDisconnectRemoteNodeReq(
487 Message *, /* message buffer */
488 int ); /* node Id */
489
490/* Enter preoperational state request */
491extern void NmEnterPreOperationalStateReq(
492 Message *, /* message buffer */
493 int ); /* node Id */
494
495/* Reset node request */
496extern void NmResetNodeReq(
497 Message *, /* message buffer */
498 int ); /* node Id */
499
500void NmStartGuardRemoteCOPNodeReq(
501 Message *, /* message buffer */
502 int ); /* node Id */
503
504/* Reset communication request */
505extern void NmResetCommunicationReq(
506 Message *, /* message buffer */
507 int ); /* node Id */
508
509/* Identify Remote Nodes request */
510extern void NmIdentifyRemoteNodesReq(
511 Message *, /* message buffer */
512 int , /* min. node Id in range */
513 int ); /* max. node Id in range */
514
515/* Get NMT Remote Nodes request */
516extern void NmGetRemNodes(
517 Message *, /* message buffer */
518 int ); /* node Id (0 to get all) */
519
520/* Configure NMT master behaviour */
521extern void NmConfig(
522 Message *m, /* message buffer */
523 WORD_t timeout, /* service timeout (in milliseconds) */
524 WORD_t gt, /* guard time (in milliseconds) */
525 int lf, /* life time factor */
526 WORD_t flags /* configuration flags */
527);
528
529
530/* Start Nmt configuration download request */
531extern void NmConfigDownloadStartReq(
532 Message *m, /* message buffer */
533 int nid, /* node ID of slave node to dwonload to */
534 int size, /* size of whole configuration data chunk */
535 int dblk, /* size of configuration data in this message */
536 int more, /* set to one if other datablocks will follow */
537 const void *data /* data block */
538);
539
540/* Start subsequesnt Nmt configuration download continue response */
541extern void NmConfigDownloadContRes(
542 Message *m, /* message buffer */
543 int nid, /* node ID of slave node to dwonload to */
544 int dblk, /* size of configuration data in this message */
545 int more, /* set to one if other datablocks will follow */
546 const void *data /* data block */
547);
548
549/* NMT master configuration transfer abort request */
550extern void NmConfigAbort(
551 Message *m, /* message buffer */
552 int nid, /* node id of peer node */
553 int failureReason, /* failure reason */
554 int applSpecificReason); /* appl. specific failure reason */
555
556extern void NmConfigVerify(
557 Message *m, /* message buffer */
558 int nid, /* remote node of interest */
559 int checksum); /* checksum */
560
561/* Create COB Definition request */
562extern void DmCreateCobDefReq(
563 Message *, /* message buffer */
564 WORD_t , /* low COB-ID */
565 WORD_t , /* high COB-ID */
566 int ); /* min. inhibit time */
567
568/* Delete COB Definition request */
569extern void DmDeleteCobDefReq(
570 Message *, /* message buffer */
571 WORD_t , /* low COB-ID */
572 WORD_t ); /* high COB-ID */
573
574/* Create Predefinition request */
575extern void DmCreatePreDefReq(
576 Message *, /* message buffer */
577 WORD_t, /* COB-ID */
578 const char *); /* COB-Name string (strlen==14) */
579
580/* Delete Predefinition request */
581extern void DmDeletePreDefReq(
582 Message *, /* message buffer */
583 const char *); /* COB-Name string (strlen==14) */
584
585/* Get COB Database request */
586extern void DmGetCobDbReq(
587 Message *); /* message buffer */
588
589void DmConfig(
590 Message *m, /* message buffer */
591 WORD_t timeout, /* service timeout (in milliseconds) */
592 WORD_t flags /* configuration flags */
593);
594
595void CmsPatchHostId(
596 Message *m, /* message buffer */
597 WORD_t hid /* ID to be assigned to object */
598);
599
600/* Define a Domain */
601extern void CmsDomain(
602 Message *, /* message buffer */
603 const char *, /* CMS name string (strlen==13) */
604 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
605 int , /* muxlen ? ? */
606 int /* priority */
607);
608
609/* Define a multipexed Domain */
610extern void CmsMultiplexedDomain(
611 Message *, /* message buffer */
612 const char *, /* CMS name string (strlen==13) */
613 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
614 int , /* muxlen ? ? */
615 int /* priority */
616);
617
618/* Define a multipexed Domain for CANopen SDO */
619extern void CmsMultiplexedDomainSDO(
620 Message *, /* message buffer */
621 const char *, /* CMS name string (strlen==13) */
622 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
623 int , /* muxlen ? ? */
624 int , /* priority */
625 WORD_t, /* Tx_SDO_ID as seen by node */
626 WORD_t, /* Rx_SDO ID as seen by node */
627 BYTE_t /* dbt_cap - DBT capibility of CANopen node */
628);
629
630/* Change a multipexed Domain's ID for CANopen SDO */
631extern void CmsMultiplexedDomainChangeIdSDO(
632 Message *, /* message buffer */
633 WORD_t , /* object id */
634 WORD_t, /* Tx_SDO_ID as seen by node */
635 WORD_t /* Rx_SDO ID as seen by node */
636);
637
638/* Define a Basic Variable */
639extern void CmsBasicVariable(
640 Message *, /* message buffer */
641 const char *, /* CMS name string (strlen==13) */
642 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
643 WORD_t , /* CMS_READ_ONLY,... (see: cms.h) */
644 int , /* length of data type */
645 int ); /* priority */
646
647/* Define a Basic Variable with predefined CobId */
648extern void CmsBasicVariablePredefCobId(
649 Message *, /* message buffer */
650 const char *, /* CMS name string (strlen==13) */
651 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
652 WORD_t , /* CMS_READ_ONLY,... (see: cms.h) */
653 int , /* length of data type */
654 int , /* priority */
655 WORD_t ,
656 WORD_t ,
657 BYTE_t );
658
659/* Define a Multiplexed Variable */
660extern void CmsMultiplexedVariable(
661 Message *, /* message buffer */
662 const char *, /* CMS name string (strlen==13) */
663 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
664 WORD_t , /* CMS_READ_ONLY,... (see: cms.h) */
665 int , /* length of data type */
666 int ); /* priority */
667
668/* Define an Uncontrolled Event */
669extern void CmsUncontrolledEvent(
670 Message *, /* message buffer */
671 const char *, /* CMS name string (strlen==13) */
672 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
673 int , /* length of data type */
674 int ); /* priority */
675
676/* Define a Controlled Event */
677extern void CmsControlledEvent(
678 Message *, /* message buffer */
679 const char *, /* CMS name string (strlen==13) */
680 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
681 int , /* length of data type */
682 int ); /* priority */
683
684/* Define a Stored Event */
685extern void CmsStoredEvent(
686 Message *, /* message buffer */
687 const char *, /* CMS name string (strlen==13) */
688 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
689 int , /* length of data type */
690 int ); /* priority */
691
692/* Define a Stored Event with predefined CobId */
693extern void CmsStoredEventPredefCobId(
694 Message *, /* message buffer */
695 const char *, /* CMS name string (strlen==13) */
696 WORD_t , /* CMS_CLIENT, CMS_SERVER (see: cms.h) */
697 int , /* length of data type */
698 int , /* priority */
699 WORD_t ,
700 WORD_t ,
701 BYTE_t );
702
703void ConfigDomainObject(
704 Message *m, /* message buffer */
705 WORD_t cid, /* object id */
706 WORD_t mux, /* multiplexor */
707 WORD_t flags /* parameter flags */
708);
709
710void ConfigCmsObject(
711 Message *m, /* message buffer */
712 WORD_t cid, /* object id */
713 WORD_t mux, /* multiplexor */
714 WORD_t param /* parameter */
715);
716
717void CmsConfig(
718 Message *m, /* message buffer */
719 WORD_t flags /* parameter flags */
720);
721
722/* Update Variable in server of a Read-Only Variable */
723extern void CmsUpdateVariable(
724 Message *, /* message buffer */
725 WORD_t , /* Id of CMS Variable */
726 int , /* length of data type */
727 const BYTE_t *); /* value matching data type */
728
729/* Write Variable request by client of a Basic Variable */
730extern void CmsWriteVariable(
731 Message *, /* message buffer */
732 WORD_t , /* Id of CMS Variable */
733 int , /* length of data type */
734 const BYTE_t *); /* value matching data type */
735
736/* Read Variable request by client of a Basic Variable */
737extern void CmsReadVariable(
738 Message *, /* message buffer */
739 WORD_t ); /* Id of CMS Variable */
740
741/* Write Multiplexed Variable request by client of a Basic Variable */
742extern void CmsWriteMultiplexedVariable(
743 Message *, /* message buffer */
744 WORD_t , /* Id of CMS Variable */
745 int , /* length of data type */
746 int , /* multiplexor */
747 const BYTE_t *); /* value matching data type */
748
749/* Read Mulitplexed Variable request by client of a Basic Variable */
750extern void CmsReadMultiplexedVariable(
751 Message *, /* message buffer */
752 WORD_t , /* Id of CMS Variable */
753 int ); /* multiplexor */
754
755void CmsWriteVariableRes(
756 Message *m, /* message buffer */
757 WORD_t cid, /* Id of CMS Variable */
758 int dlen, /* length of data type */
759 int stat, /* operation status */
760 const BYTE_t *value /* value matching data type */
761);
762
763void CmsReadVariableRes(
764 Message *m, /* message buffer */
765 WORD_t cid, /* Id of CMS Variable */
766 int dlen, /* length of data type */
767 int stat, /* operation status */
768 const BYTE_t *value /* value matching data type */
769);
770
771
772/* Notify Event to clients */
773extern void CmsNotifyEvent(
774 Message *, /* message buffer */
775 WORD_t , /* Id of CMS Variable */
776 int , /* length of data type */
777 const BYTE_t *); /* value matching data type */
778
779/* Store and Notify Eventy to clients */
780extern void CmsStoreEvent(
781 Message *, /* message buffer */
782 WORD_t , /* Id of CMS Variable */
783 int , /* length of data type */
784 const BYTE_t *, /* value matching data type */
785 int ); /* !=0 for immediate notification */
786
787/* Read Event */
788extern void CmsReadEvent(
789 Message *, /* message buffer */
790 WORD_t ); /* Id of CMS Variable */
791
792/* Set Event Control State Request */
793extern void CmsSetControlEventReq(
794 Message *, /* message buffer */
795 WORD_t , /* Id of CMS Variable */
796 int ); /* !=0 to enable event in server */
797
798/* Set Event Control State Response */
799extern void CmsSetControlEventRes(
800 Message *, /* message buffer */
801 WORD_t , /* Id of CMS Variable */
802 int , /* !=0 to indicate error */
803 int , /* !=0 to enable event in server */
804 const BYTE_t * /* reason in case of error */
805);
806
807
808extern void CmsDomDownloadStart(
809 Message *,
810 WORD_t , /* Id of CMS Domain */
811 int , /* option flags */
812 int , /* domain multiplexor */
813 int , /* whole data length */
814 int , /* data length of current message */
815 const void * /* data block */
816);
817
818extern void CmsDomDownloadCont(
819 Message *,
820 WORD_t , /* Id of CMS Domain */
821 int , /* option flags */
822 int , /* data length of current message */
823 const void * /* data block */
824);
825
826extern void CmsDomUploadStart(
827 Message *m,
828 WORD_t cid, /* Id of CMS Domain */
829 int mux /* Multiplexor type */
830);
831
832void CmsDomUpload(
833 Message *m,
834 WORD_t cid, /* Id of CMS Domain */
835 int cs, /* option flags */
836 int size, /* whole data length */
837 int dblk, /* data length of current message */
838 const void *data /* data block */
839);
840
841void CmsDomUploadCont(
842 Message *m,
843 WORD_t cid, /* Id of CMS Domain */
844 int cs, /* option flags */
845 int dblk, /* data length of current message */
846 const void *data /* data block */
847);
848
849void CmsDomainAck(
850 Message *m,
851 WORD_t cid
852);
853
854void CmsDomainRcptAck(
855 Message *m,
856 WORD_t cid
857);
858
859void CmsDomAbort(
860 Message *m,
861 WORD_t cid, /* Id of CMS Domain */
862 const void *data /* data block pointer or zero */
863);
864
865#endif /* MITOP & MITOP_CAL */
866
867#ifdef MITOP_FORMAT
868
869/* Format the contents of messages for display. */
870#if MITOP & MITOP_MGR
871extern void format_modulmgr(char *, int, const Message *);
872#endif /* MITOP & MITOP_MGR */
873#if MITOP & MITOP_ICANOS
874extern void format_icanos(char *, int, const Message *);
875#endif /* MITOP & MITOP_ICANOS */
876#if MITOP & MITOP_CAL
877extern void format_nmts(char *, int, const Message *);
878extern void format_dbts(char *, int, const Message *);
879extern void format_lmts(char *, int, const Message *);
880extern void format_nmtm(char *, int, const Message *);
881extern void format_dbtm(char *, int, const Message *);
882extern void format_cmsdef(char *, int, const Message *);
883extern void format_cmsdata(char *, int, const Message *);
884
885/* Formatted output */
886extern void printf_cob_db(FILE *, int, const BYTE_t *);
887extern void printf_nmtm(FILE *, int, const BYTE_t *);
888#endif /* MITOP & MITOP_CAL */
889
890#endif /* MITOP_FORMAT */
891
892
893void Cust1Init(Message *, int);
894void Cust1StartTimestampPeriod(Message *, WORD_t);
895
896void COPStartPeriodical(Message *, BYTE_t, WORD_t);
897void COPStartSingleShot(Message *, BYTE_t);
898void COPMapHiResTimestamp(Message *, WORD_t);
899
900/*
901 * CANopen process picture interface
902 */
903extern void COPDeleteAllPDOMappingEntries(Message *, WORD_t);
904extern void COPAddPDOMappingEntry(Message *, WORD_t, WORD_t, BYTE_t, BYTE_t, LWORD_t);
905extern void COPAddPDOLength(Message *, WORD_t, BYTE_t);
906extern void COPAddPDOTransmType(Message *, WORD_t, BYTE_t);
907extern void COPAddPDOInhibTime(Message *, WORD_t, WORD_t);
908extern void COPControlPDO(Message *, WORD_t, BYTE_t);
909extern void COPAdjustCobIdPDO(Message *, WORD_t, LWORD_t);
910extern void COPSetSyncToHostSending(Message *, BYTE_t);
911extern void COPTriggerTPDO(Message *, WORD_t);
912extern void COPTriggerRPDO(Message *, WORD_t);
913
914#ifdef __cplusplus
915}
916#endif
917
918#endif /* mitop_DEFINED */
Note: See TracBrowser for help on using the repository browser.