Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there any documents #1662

Open
RobbieDragon233 opened this issue Jul 6, 2021 · 8 comments
Open

Is there any documents #1662

RobbieDragon233 opened this issue Jul 6, 2021 · 8 comments

Comments

@RobbieDragon233
Copy link

Hey, I am new here. It's pretty shy to ask about this question.

now, I have some work about resoure finding, so i try to learn abou californium. In the Internet, nearly no quick start or api documents. All I know is that Californium is the implement of RFC7252. Maybe I should read RFC7252. But I am not sure that it helps me understand Californium.

so, can anyone provide me something more specific about californium. Thanks a lot!!

@boaks
Copy link
Contributor

boaks commented Jul 6, 2021

:-) that seems to be a duplicate of the oldest, still open issue, #306

Unfortunately, there is still not much docu. CoAP (RFC7252 ) is very similar to HTTP, and so coap.technologystates:

Existing skills transfer

From a developer point of view, CoAP feels very much like HTTP. Obtaining a value from a sensor is not much different from obtaining a value from a Web API.

That's very true.

For Californium we mainly have a lot of javadoc and some examples in demo-apps to start with.

HelloWorldServer

GETClient

And I try to answer questions ...

@RobbieDragon233
Copy link
Author

Yeah, I have use some demo-apps. It's easy to start with.

But in some cases, such as cocoa, extplugtest-client, i have no idea why there is only server or client(the relationship between other example/ jar package). Maybe it's specific for some functions, but i am not familiar with that.

In general, if there is no annotations, I usually don't know how to run/ what args should I provide/ why these examples? Do you have some suggests for me. Thanks a lot!

@boaks
Copy link
Contributor

boaks commented Jul 7, 2021

In general, if there is no annotations, I usually don't know how to run/ what args should I provide/ why these examples? Do you have some suggests for me. Thanks a lot!

Many examples have a "xx-aaa-bb.jar" in their target folder. Usually they started with

java -jar target/xx-aaa-bb.jar

e.g.

java -jar target/cf-plugtest-client-3.0.0-SNAPSHOT.jar

To get some help, the more complex examples have a -h

java -jar target/cf-plugtest-client-3.0.0-SNAPSHOT.jar -h

Usage: PlugtestClient [-hvV] [--help-auth] [--help-cipher] [--[no-]ping]
                      [-C=FILE] [--cid-length=<cidLength>]
                      [--dtls-auto-resumption=<dtlsAutoResumption>]
                      [-i=<identity>] [--local-port=<localPort>] [--mtu=<mtu>]
                      [--proxy=<proxy>] [--psk-index=<pskIndex>]
                      [--psk-store=<pskStore>]
                      [--record-size=<recordSizeLimit>] [--tag=<tag>]
                      [-a=<authenticationModes>[:<authenticationModes>...]]...
                      [--cipher=<cipherSuites>[:<cipherSuites>...]]...
                      [--anonymous | [[-c=<certificate>]
                      [--private-key=<privateKey>]]] [-t=<trusts>
                      [-t=<trusts>]... | --trust-all] [-s=<text> |
                      --secrethex=<hex> | --secret64=<base64>] [URI]
      [URI]                  destination URI. Default californium.
                               eclipseprojects.io
  -a, --auth=<authenticationModes>[:<authenticationModes>...]
                             use authentikation modes. '--help-auth' to list
                               available authentication modes.
      --anonymous            anonymous, no certificate.
  -c, --cert=<certificate>   certificate store. Format
                               keystore#hexstorepwd#hexkeypwd#alias or keystore.
                               pem
  -C, --config=FILE          configuration file. Default CaliforniumPlugtest3.
                               properties.
      --cid-length=<cidLength>
                             Use cid with length. 0 to support cid only without
                               using it.
      --cipher=<cipherSuites>[:<cipherSuites>...]
                             use ciphersuites. '--help-cipher' to list
                               available cipher suites.
      --dtls-auto-resumption=<dtlsAutoResumption>
                             enable dtls auto-resumption. Value in
                               milliseconds. Default disabled. Recommended
                               value to use 30000 (30s).
  -h, --help                 display a help message
      --help-auth            display a help message for authentication modes
      --help-cipher          display a help message for cipher suites
  -i, --identity=<identity>  PSK identity
      --local-port=<localPort>
                             local porty. Default ephemeral port.
      --mtu=<mtu>            MTU.
      --[no-]ping            use ping.
      --private-key=<privateKey>
                             private key store. Format
                               keystore#hexstorepwd#hexkeypwd#alias or keystore.
                               pem
      --proxy=<proxy>        use proxy. <address>:<port>[:<scheme>]. Default
                               env-value of COAP_PROXY.
      --psk-index=<pskIndex> Index of identity in PSK store. Starts at 0.
      --psk-store=<pskStore> PSK store. Lines format: identity=secretkey (in
                               base64).
      --record-size=<recordSizeLimit>
                             record size limit.
  -s, --secret=<text>        PSK secret, UTF-8
      --secret64=<base64>    PSK secret, base64
      --secrethex=<hex>      PSK secret, hexadecimal
  -t, --trusts=<trusts>      trusted certificates. Format
                               keystore#hexstorepwd#alias or truststore.pem
      --tag=<tag>            use logging tag.
      --trust-all            trust all valid certificates.
  -v, --[no-]verbose         verbose
  -V, --version              display version info

And sure, more documentation is always a n improvement. Just some must take the time to do so.

@boaks
Copy link
Contributor

boaks commented Jul 7, 2021

The cocoa client is experimental client and demonstrates IETF - draft - core-cocoa. It may be used with any coap-server, which is able to process a GET request. That client may be currently broken. I'm on PR #1653 and after that I may check, the coca demo.

The plugtest-client and -checker require the plugtest-server to run. These test-clients implements the test specification for the ETSI IoT CoAP Plugtests, London, UK, 7--9 Mar 2014. You may check the compatibility with other implementations using it.

@boaks
Copy link
Contributor

boaks commented Jan 12, 2022

I've started to provide some documentation. FMPOV, javadoc is still the best place to put the details. For an overview I added now some readmes.

DTLS
CoAP

@lonerzzz
Copy link

lonerzzz commented May 3, 2022

Hi, I looked all over for documentation on Californium to simply find a place to start. Your second documentation link just above (https://github.com/eclipse/californium/tree/master/californium-core) is helpful, but the page does not contain the word documentation and there is no link from https://www.eclipse.org/californium/ to that page. Making those two changes would help others in getting started.

@boaks
Copy link
Contributor

boaks commented May 4, 2022

About the link in https://www.eclipse.org/californium/ I will try to add that.

About the "word documentation" that is more a question, if there is a tool, which converts the README.md into doc or pdf.

@boaks
Copy link
Contributor

boaks commented May 4, 2022

I added an "Introduction" button to the web-site, maybe that helps others as well to find it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants